エクセルについて ユーザーフォームで登録した情報を自動で昇順にするにはどうすべきか? 画像添付しましたが、ユーザーフォームで登録した情報を希望納品日が近い順に上から並べたいです。
エクセルについて ユーザーフォームで登録した情報を自動で昇順にするにはどうすべきか? 画像添付しましたが、ユーザーフォームで登録した情報を希望納品日が近い順に上から並べたいです。 受注・出庫の管理をエクセルで行っているのですが、 より使いやすくするために試行錯誤しております。 マクロのコードを変えて打てばよいのか、他に最適な方法があるのか、、、 現状は登録した情報が他の情報と重ならないように、一番下に来るようにはなったのですが、件数が多くなった場合見づらくなってしまいました。 動画やインターネットで調べてやってみたものの、理想にはまだまだでした、、、 よければアドバイスを頂けると幸いです。
今のところ入れているマクロはこちらです。 Private Sub CommandButton1_Click() Dim row_no As Long For row_no = 2 To 200 If Cells(row_no, 1) = "" Then Exit For End If Next row_no 'MsgBox row_no Cells(row_no, 1) = UserForm1.TextBox1 Cells(row_no, 2) = UserForm1.TextBox2 Cells(row_no, 3) = UserForm1.TextBox3 Cells(row_no, 4) = UserForm1.TextBox4 UserForm1.TextBox1 = "" UserForm1.TextBox2 = "" UserForm1.TextBox3 = "" UserForm1.TextBox4 = "" End Sub 補足入力の文字数の関係でtextbox5は消してあります。
Excel・94閲覧
ベストアンサー
ソートのコードは With Sheets("Sheet1") .Cells(1, 1).Currentregion.Sort _ key1:=.Cells(1, 2), order1:=xlAscending, Header:=xlYes End With でどうでしょう?バージョンで動かない場合はご返信ください。 あとは補足のコード Cells(row_no, 1) = UserForm1.TextBox1 Cells(row_no, 2) = UserForm1.TextBox2 Cells(row_no, 3) = UserForm1.TextBox3 Cells(row_no, 4) = UserForm1.TextBox4 UserForm1.TextBox1 = "" UserForm1.TextBox2 = "" UserForm1.TextBox3 = "" UserForm1.TextBox4 = "" のところは Dim tbName As String Dim i As Long と変数を宣言したうえで With UserForm1 For i = 1 To 4 tbName = "TextBox" & i Cells(row_no, i) = .Controls(tbName).Value .Controls(tbName) = "" Next i End With と記述できるんじゃないかな?
早い返信ありがとうございます。 早速やってみたのですが、コードをどこに入れれば正しく動くか分からず困ってます。 既存のコード Private Sub CommandButton1_Click() Dim row_no As Long For row_no = 2 To 200 If Cells(row_no, 1) = "" Then Exit For End If の後にコピぺし、sheet3で作業してるので、 With Sheets("Sheet3")としたものの登録されるのは 最も下のセルに入力されます。 既存コードをすべて消してご回答いただいたコードと補足コードをすべて入れてみたところエラーが出てしまいます。 拙い説明ですだ、よろしくお願いします。
質問者からのお礼コメント
大変お世話になりました。 教えていただいた内容を私が良く理解出来ない部分も ご丁寧にご教授いただき、ありがとうございます。 ご返信も早くスムーズに解決出来ました。 勉強させていただきました。 ありがとうございました。
お礼日時:5/26 10:28