Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


103 / 3841 ページ ←次へ | 前へ→

【80422】検索フォームの動作について
質問  tarutaru  - 19/2/13(水) 13:36 -

引用なし
パスワード
   VBA初心者です。
入力フォームと検索フォームを作成し、データ処理を行おうと思っています。
問題は、検索フォームの方なのですが、フォームにはComboBox、TextBox等を配置し
入力が終わった後、CommandButtonをクリックすると、ListBoxに結果が表示され、
別のCommandButtonをクリックすると"Sheet3"にその結果が転記されるようにしたいのですが、 以下の問題が発生し、解決できず困っています。

1.検索フォームのListBoxには各入力Boxの結果が反映されているのだが、"Sheet3"にそのまま反映されない。 ※AutoFilter Fieldを2列目に指定しているため、Range("B3:T3")計19項目(うち検索フォームは10項目)の検索ができていない。

2.AListBoxに表示されているListをダブルクリックしてもデバックが発生し該当行が変化しない。

3."Sheet3"に反映させるには、一度ListBoxのListを選択し、CommandButtonを押さないといけない。
ネットで色々と調べてはいるのですが、思っているような答えが見つからずにいます。
どなたかお詳しい方がいらっしゃればご教示お願い致します。
よろしくお願いいたします。

Option Explicit
‘-------------------------------------------------------------------------------------
Private Sub CommandButton1_Click()
 Dim LastRow As Long  
 Dim myData, myData2(), myno  
 Dim i As Long, j As Long, cn As Long  
 Dim key1 As String, key2 As String, key3 As String, key4 As String, key5 As String, key6 As String, _
    key7 As String, key8 As String, key9 As String, key10 As String
 Dim ListNo As Long

  ListNo = ComboBox1.ListIndex  
  If ListNo < 0 Then      
   key1 = "*"
  Else
   key1 = ComboBox1.List(ListNo)
  End If
  
    Dim ListNo1 As Long
     ListNo1 = ComboBox3.ListIndex
     If ListNo1 < 0 Then
      key2 = "*"
     Else
      key2 = ComboBox3.List(ListNo1)
     End If
   
 If TextBox1.Value = "" Then key3 = "*" Else key3 = "*" & TextBox1.Value & "*" 

 Dim ListNo2 As Long
  ListNo2 = ComboBox4.ListIndex
  If ListNo2 < 0 Then
   key4 = "*"
  Else
   key4 = ComboBox4.List(ListNo2)
  End If
 
    Dim ListNo3 As Long
     ListNo3 = ComboBox2.ListIndex
     If ListNo3 < 0 Then
      key5 = "*"
     Else
      key5 = ComboBox2.List(ListNo3)
     End If
 
       Dim ListNo4 As Long
        ListNo4 = ComboBox7.ListIndex
        If ListNo4 < 0 Then
         key6 = "*"
        Else
         key6 = ComboBox7.List(ListNo4)
        End If

    Dim ListNo5 As Long
     ListNo5 = ComboBox8.ListIndex
     If ListNo5 < 0 Then
      key7 = "*"
     Else
      key7 = ComboBox8.List(ListNo5)
     End If

  If TextBox2.Value = "" Then key8 = "*" Else key8 = "*" & TextBox2.Value & "*"

  If TextBox3.Value = "" Then key9 = "*" Else key9 = "*" & TextBox3.Value & "*"

  If TextBox5.Value = "" Then key10 = "*" Else key10 = "*" & TextBox5.Value & "*"
  
With Worksheets("2019.4")
   LastRow = .Cells(Rows.Count, 2).End(xlUp).Row  
  myData = .Range(.Cells(3, 1), .Cells(LastRow, 20)).Value 
 End With

ReDim myData2(1 To LastRow, 1 To 10)
For i = LBound(myData) To UBound(myData)  
 If myData(i, 2) Like key1 And myData(i, 3) Like key2 And myData(i, 5) Like key3 And myData(i, 9) _
 Like key4 And myData(i, 20) Like key5 And myData(i, 16) Like key6 And myData(i, 17) Like key7 _
And myData(i, 10) Like key8 And myData(i, 11) Like key9 And myData(i, 8) Like key10 Then
  cn = cn + 1                                   
  myData2(cn, 1) = myData(i, 2)
  myData2(cn, 2) = myData(i, 3)
  myData2(cn, 3) = myData(i, 5)
  myData2(cn, 4) = myData(i, 9)
  myData2(cn, 5) = myData(i, 20)
  myData2(cn, 6) = myData(i, 16)
  myData2(cn, 7) = myData(i, 17)
  myData2(cn, 8) = myData(i, 10)
  myData2(cn, 9) = myData(i, 11)
  myData2(cn, 10) = myData(i, 8)
 End If
Next i

 With ListBox1
  .ColumnCount = 10  
  .ColumnWidths = "45;40;65;20;20;60;60;60;60;20"
  .List = myData2  
 End With
TextBox7.Value = Worksheets("2019.4").Cells(Rows.Count, 2).End(xlUp).Row - 2
End Sub
‘------------------------------------------------------------------------------------------------------
Private Sub CommandButton2_Click()
ComboBox1 = ""
ComboBox2 = ""
ComboBox3 = ""
ComboBox4 = ""
ComboBox5 = ""
ComboBox6 = ""
ComboBox7 = ""
ComboBox8 = ""
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox5 = ""
TextBox6 = ""
ListBox1.Clear

Worksheets("2019.4").Activate  
End Sub
‘-----------------------------------------------------------------------------------------------------
Private Sub CommandButton3_Click()
Dim myFld, myCri
Dim myRow4 As String
Dim Sh2 As Worksheet, Sh3 As Worksheet

 Set Sh2 = Worksheets("2019.4")
 Set Sh3 = Worksheets("Sheet3")
 
  myFld = 2
 
  myCri = UserForm2.ListBox1.Value
 
   With Sh2
  .Range("A1").AutoFilter Field:=myFld, Criteria1:=myCri 
   myRow4 = .Range("A" & Rows.Count).End(xlUp).Row
  
     Sh3.Range("A:T").ClearContents
   
    .Range("A1:T" & myRow4).Copy Sh3.Range("A1")
   
   TextBox6.Value = Worksheets("sheet3").Cells(Rows.Count, 2).End(xlUp).Row - 2     
   .Range("A1").AutoFilter
  End With
 
 Sh3.Activate  
 Range("A1").Select

End Sub
‘--------------------------------------------------------------------------------------------------
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) 
With Worksheets("2019.4")
  .Range(.Cells(ListBox1.List(ListBox1.ListIndex, 0) + 2, 2), .Cells(ListBox1.List(ListBox1.ListIndex, 0) + 2, 20)).Select
End With
End Sub
‘----------------------------------------------------------------------------------------------------
Private Sub userform2_initialize()

Dim LastRow As Long
Dim myData, mayData2(), myno
Dim i As Long, j As Long, cn As Long

 With Worksheets("2019.4")
   LastRow = .Cells(Rows.Count, 2).End(xlUp).Row 
  myData = .Range(.Cells(3, 1), .Cells(LastRow, 20)).Value 
End With

ReDim myData2(1 To LastRow, 1 To 10)
 For i = LBound(myData) To UBound(myData) 
   myData2(i, 1) = myData(i, 2)
   myData2(i, 2) = myData(i, 3)
   myData2(i, 3) = myData(i, 5)
   myData2(i, 4) = myData(i, 9)
   myData2(i, 5) = myData(i, 20)
   myData2(i, 6) = myData(i, 16)
   myData2(i, 7) = myData(i, 17)
   myData2(i, 8) = myData(i, 10)
   myData2(i, 9) = myData(i, 11)
   myData2(i, 10) = myData(i, 8)
   
  Next i
 
 With ListBox1  
  .ColumnCount = 10  
  .ColumnWidths = "45;40;65;20;20;60;60;60;60;20"
  .List = myData2  
 End With

Dim lastRow2 As Long
Dim myData3

End Sub
・ツリー全体表示

【80421】Re:見積FMの情報を集計したい
発言  マナ  - 19/2/12(火) 19:36 -

引用なし
パスワード
   ▼mkmk さん:

>ただ、速さはあまり変わらないように感じました。
>

100回のコピペなら1秒もかからないと思います。
どのくらい時間がかかっているのでしょうか?
・ツリー全体表示

【80420】Re:カレンダーに予定を自動入力したい
発言  マナ  - 19/2/12(火) 19:30 -

引用なし
パスワード
   ▼VBA初心者 さん:

>Worksheet(1月〜12月)にカレンダーを表示させてあります。

まず、1月のシートだけで、ちゃんと動くものにしてください。
・ツリー全体表示

【80419】Re:分類表示を並び替えたい2
質問  riki7 E-MAIL  - 19/2/12(火) 10:40 -

引用なし
パスワード
   マナ先生
可能であれば、またマクロ式でご教授お願い致します。

▼マナ さん:
>▼riki7 さん:
>
>用意する配列を大きくすれば同じロジックで可能です。
>配列(大大分類,大分類,中分類,小分類,品物,大きさ,単価,個数,掲載,別掲載)
・ツリー全体表示

【80418】Re:カレンダーに予定を自動入力したい
回答  VBA初心者  - 19/2/12(火) 9:28 -

引用なし
パスワード
   ▼マナ さん:
>▼VBA初心者 さん:
>
>>原因として考えられるのは、検索した結果(rngFound)がdと一つも当てはまらなかった場合の処理が入っていないということかなと思うのですが、その場合どうすればいいでしょうか?
>>
>>自分としてはIf Not rngFound Is Nothing Thenを使えばいいと思い、何度か組んでみたのですがすべてエラーになってしまうので、教えていただきたいです。
>
>最初の検索の直後に挿入するのでは?
>どのように試したのか提示してください。


マナ様

いつもお世話になっております。

Worksheet("Sheet1")に日付とスケジュール
Worksheet(1月〜12月)にカレンダーを表示させてあります。


Sub カレンダー入力新規()
  Dim ws1     As Worksheet
  Dim ws2     As Worksheet
  Dim lastRow   As Long
  Dim rngCalendar As Range
  Dim rngFound  As Range
  Dim rngFirstcell As Range
  Dim d      As Long
  Dim s      As String
  Dim k      As Long
  Dim i      As Long
  Dim j      As Long
  
  
  For j = 1 To 12

  Set ws1 = Worksheets("Sheet1")
  Set ws2 = Worksheets(j & " " & "月")
  lastRow = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row
  
  Set rngCalendar = ws2.Range("A1:H14")


   For k = 1 To lastRow
     d = ws1.Cells(k, 1).Value '日付け
     s = ws1.Cells(k, 2).Value 'スケジュール
     i = CLng(d) '日付をシリアル値に変更
    
    
     Set rngFound = rngCalendar.Find(i, After:=rngCalendar(1), _
      LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, _
      MatchCase:=False, MatchByte:=False, SearchFormat:=False)
  
    
    If d = rngFound.Value Then
      Call setSchedule(rngFound.Offset(1, 0), s)
    
    Else
      Set rngFound = rngCalendar.FindNext(rngFound)
      
      If Not rngFound Is Nothing Then
        
        If d = rngFound.Value Then
          Call setSchedule(rngFound.Offset(1, 0), s)
    
        End If
      
      End If
    
    End If
  
   Next k
   
  Next j
  
End Sub

Function setSchedule(r As Range, s As String)
  If r.Value = "" Then
    r.Value = s
  Else
    r.Value = r.Value & vbLf & s
  End If
End Function
・ツリー全体表示

【80417】Re:見積FMの情報を集計したい
回答  mkmk  - 19/2/12(火) 0:52 -

引用なし
パスワード
   ありがとうございます。

SELECT記述をしないとすっきりしますね。
ただ、速さはあまり変わらないように感じました。

他に良い方法があると良いのですが・・・
・ツリー全体表示

【80416】Re:分類表示を並び替えたい2
発言  マナ  - 19/2/11(月) 23:26 -

引用なし
パスワード
   ▼riki7 さん:

用意する配列を大きくすれば同じロジックで可能です。
配列(大大分類,大分類,中分類,小分類,品物,大きさ,単価,個数,掲載,別掲載)
・ツリー全体表示

【80415】分類表示を並び替えたい2
質問  riki7  - 19/2/11(月) 23:14 -

引用なし
パスワード
   /は列区切りです
以下の並びがあります
1/大大分類名1
2/大分類名1
3/中分類名1
4/小分類名1
/品物名X/大きさ/単価/個数=2/掲載ページ/別掲載ページ
/品物名Y/大きさ/単価/個数=1/掲載ページ/別掲載ページ
4/小分類名2
/品物名Y/大きさ/単価/個数=3/掲載ページ/別掲載ページ
4/小分類名3
/品物名X/大きさ/単価/個数=2/掲載ページ/別掲載ページ
/品物名Z/大きさ/単価/個数=3/掲載ページ/別掲載ページは無いのでブランク
3/中分類名2
4/小分類名1
/品物名X/大きさ/単価/個数=1/掲載ページ/別掲載ページ
/品物名Y/大きさ/単価/個数=1/掲載ページ/別掲載ページ
2/大分類名2
3/中分類名2
4/小分類名1
/品物名X/大きさ/単価/個数=3/掲載ページ/別掲載ページ
/品物名Y/大きさ/単価/個数=2/掲載ページ/別掲載ページ
この並びを下記の一覧に変換させるマクロを作るにはどうしたら良いでしょうか?
以前似たような質問をして解決したのですが
今度は
品物名の横のセルから品物の情報や個数が横に並べて表示してあるケースにてまた悩んでしまいました。
大大分類名1/大分類名1/中分類名1/小分類名1/品物名X/大きさ/単価/個数=2/掲載ページ/別掲載ページ
大大分類名1/大分類名1/中分類名1/小分類名1/品物名Y/大きさ/単価/個数=1/掲載ページ/別掲載ページ
大大分類名1/大分類名1/中分類名1/小分類名2/品物名Y/大きさ/単価/個数=3/掲載ページ/別掲載ページ
大大分類名1/大分類名1/中分類名1/小分類名3/品物名X/大きさ/単価/個数=2/掲載ページ/別掲載ページ
大大分類名1/大分類名1/中分類名1/小分類名3/品物名Z/大きさ/単価/個数=3/掲載ページ/別掲載ページは無いのでブランク
大大分類名1/大分類名1/中分類名2/小分類名1/品物名X/大きさ/単価/個数=1/掲載ページ/別掲載ページ
大大分類名1/大分類名1/中分類名2/小分類名1/品物名Y/大きさ/単価/個数=1/掲載ページ/別掲載ページ
大大分類名1/大分類名2/中分類名2/小分類名1/品物名X/大きさ/単価/個数=3/掲載ページ/別掲載ページ
大大分類名1/大分類名2/中分類名2/小分類名1/品物名Y/大きさ/単価/個数=2/掲載ページ/別掲載ページ
・ツリー全体表示

【80414】Re:見積FMの情報を集計したい
発言  マナ  - 19/2/11(月) 22:51 -

引用なし
パスワード
   ▼mkmk さん:

とりあえず、こんな感じで
selectしない記述にしてください。

で、規則性がわかるように2シート分作成してみてください。

  Sheet11.Range("C1:C2").Copy
  Sheets("date集計").Range("B5:C17").PasteSpecial Paste:=xlPasteValues, Transpose:=True
・ツリー全体表示

【80413】Re:見積FMの情報を集計したい
回答  mkmk  - 19/2/11(月) 22:22 -

引用なし
パスワード
   早速のご返答ありがとうございます。

実は項目はもう少し多くありまして、
一つのsheetで下記の記述になっています。
sheet12〜は貼り付け先の場所を変えています。

引き続き宜しくお願い致します。

Sheet11.Select
  Range("C1").Select
  Selection.Copy
  Sheets("date集計").Select
  Range("B5:B17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Sheet11.Select
  Range("C2").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("C5:C17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Sheet11.Select
  Range("C9").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("D5:D17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Sheet11.Select
  Range("C10").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("E5:E17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Sheet11.Select
  Range("C50").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("F5:F17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Sheet11.Select
  Range("C51").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("G5:G17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Sheet11.Select
  Range("C52").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("H5:H17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Sheet11.Select
  Range("C53").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("I5:I17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Sheet11.Select
  Range("C54").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("J5:J17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Sheet11.Select
  ActiveWindow.SmallScroll Down:=-24
  Range("B14:E14").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("K5:N17").Select
  Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
  Sheet11.Select
  Range("C16").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("O5:O17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  ActiveWindow.SmallScroll ToRight:=7
  Sheet11.Select
  Range("E16").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("P5:P17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Sheet11.Select
  Range("B21:N33").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("Q5").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  ActiveWindow.SmallScroll ToRight:=11
  Sheet11.Select
  ActiveWindow.SmallScroll Down:=9
  Range("B37:N48").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("AD5").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False


▼マナ さん:
>▼mkmk さん:
>
>>excelのマクロ登録でsheet1のコピペを登録し、
>>sheet2〜は貼り付け先の場所の場所の変更で記録を
>>したのですが、実行に時間がかかってしまいます。
>
>全部で5×20回のコピペですよね。
>時間がかかると思えないのですが?
>
>>繰り返しの記述等で簡素化できる方法を教えて下さい。
>
>まずは、現在のコードを提示お願いします。
・ツリー全体表示

【80412】Re:見積FMの情報を集計したい
発言  マナ  - 19/2/11(月) 21:53 -

引用なし
パスワード
   ▼mkmk さん:

>excelのマクロ登録でsheet1のコピペを登録し、
>sheet2〜は貼り付け先の場所の場所の変更で記録を
>したのですが、実行に時間がかかってしまいます。

全部で5×20回のコピペですよね。
時間がかかると思えないのですが?

>繰り返しの記述等で簡素化できる方法を教えて下さい。

まずは、現在のコードを提示お願いします。
・ツリー全体表示

【80411】見積FMの情報を集計したい
質問  mkmk  - 19/2/11(月) 21:34 -

引用なし
パスワード
   vba超初心者です。
何卒ご教授下さい。

EXCELでの見積書フォーマットを作成(20シート分)し、
最後のシートで集計するVBAを作成したいです。

FMシート(sheet1-20)
C1 提出日
C9 企業CD
D10 企業名
B21:N33 商品見積内容

集計シート(sheet21)
sheet1〜
提出日 B5:B17
企業CD C5:C17
企業名 D5:D17
商品別見積内容F5:R17
:
:
sheet2
提出日 B18:30

という形で集計したく、
excelのマクロ登録でsheet1のコピペを登録し、
sheet2〜は貼り付け先の場所の場所の変更で記録を
したのですが、実行に時間がかかってしまいます。

繰り返しの記述等で簡素化できる方法を教えて下さい。
お願いします。
・ツリー全体表示

【80410】Re:複数条件で一致を見つけ、特定の条件...
発言  マナ  - 19/2/11(月) 18:19 -

引用なし
パスワード
   ▼もち吉 さん:

>小計機能を使う事でどのように共通項目を1行にまとめ、
>非共通項をその下に続けるのか、イメージがつかず、

小計のあとは、地道に、コピーペーストの繰り返しです。
共通項目は、1行だけ選んでコピーすればよいのです。
・ツリー全体表示

【80409】Re:複数条件で一致を見つけ、特定の条件...
回答  もち吉  - 19/2/11(月) 17:41 -

引用なし
パスワード
   ご返信ありがとうございます。

理解力が不足しており申し訳ありません。

マナ様からいただいたアドバイスの通り、
小計機能を使う事でどのように共通項目を1行にまとめ、
非共通項をその下に続けるのか、イメージがつかず、
ご教示いただけないでしょうか?

よろしくお願い申し上げます。
・ツリー全体表示

【80408】Re:複数条件で一致を見つけ、特定の条件...
発言  マナ  - 19/2/11(月) 17:34 -

引用なし
パスワード
   ▼もち吉 さん:

わたしなら「小計」機能を利用するというだけで、
他にも方法はあると思います。
他の方からの回答をお待ち下さい。
・ツリー全体表示

【80407】Re:複数条件で一致を見つけ、特定の条件...
発言  もち吉  - 19/2/11(月) 17:20 -

引用なし
パスワード
   実はその後にも作業がありまして…
フォーマットの読みかえなので、コピーペーストする場所も異なっております。(行は同じですが、セルが異なります)
最終的にバイト数での読み返で、そのセルがなんバイト以下なら、何バイトにし、何バイト以上なら何バイトに読み換える…などと複雑な作業が待っているのですが
とはいえ、今は並び替えができないことには始まらないため、
ご質問させていただきました。
合計を出す事が目的ではなく、端末に読み込んでもらう形式でデータを流し込むための作業です。

データベース会社から還元されてくるのでおおよそ、ソートはされてるのですが、
おおよそ3000行ほどデータがあるのですが、
手動で行うイメージがついておりません。
並び替えだけではなく、共通項は1行にまとめ(ヘッダーのようなイメージ)、非共通項を並び替えるというところに難しさを感じています。

どのように行うのかご教示いただけますでしょうか。
・ツリー全体表示

【80406】Re:複数条件で一致を見つけ、特定の条件...
発言  マナ  - 19/2/11(月) 17:04 -

引用なし
パスワード
   ▼もち吉 さん:

ということは、条件リストのようなものはなく
今あるデータをすべて、並べ替えるという作業ですね。

「並べ替え」と「小計」機能を使って、
各条件ごとの合計を出して、
あとはコピーペーストの繰り返し

が簡単そうです。
どんな操作になるかイメージできますか。

まずは手動で試してみるとよいです。

 
・ツリー全体表示

【80405】Re:複数条件で一致を見つけ、特定の条件...
発言  もち吉  - 19/2/11(月) 16:48 -

引用なし
パスワード
   ご返信ありがとうございます。

抽出条件は、日付、企業名、IDのみです。
純粋に並び替えが目的でして、次の抽出結果は
13行目に続けたいです。

最近始まった作業でして、暫定的に
今現在は
1.まず条件にあてはまるものだけをフィルターで抜き出します
(会社名でソートをかけ、日付、IDでさらに条件を整理します)
2.別シートの1行目に共通項目貼り付け
3.2行目以降に、非共通項目をコピーして並べ・・・・
4.件数合計をだし
5.1.の作業を繰り返す…

です。

ご質問の回答となっておりますでしょうか?

よろしくお願いいたします。
・ツリー全体表示

【80404】Re:複数条件で一致を見つけ、特定の条件...
発言  マナ  - 19/2/11(月) 16:38 -

引用なし
パスワード
   ▼もち吉 さん:

>1.日付、企業名、IDが一致しているデータを抜き出す

>を、ループで繰り返したいです。

抽出条件はリスト化されているのでしょうか。
次の抽出結果は、13行目に続けるのでしょうか。

>マクロ化しなければとてもじゃないけれどミスが起きてしまいそうな

現在は、手作業でしているのでしょうか。
その手順を具体的に説明してください。
・ツリー全体表示

【80403】複数条件で一致を見つけ、特定の条件で並...
質問  もち吉  - 19/2/11(月) 16:18 -

引用なし
パスワード
   はじめまして、VBA初心者ですが、
マクロ化しなければとてもじゃないけれどミスが起きてしまいそうな
データ加工業務があり、お力添えいただければと思います。


列項目で
日付・企業名・ID・振込元・振込先・振込金額・・・・15列ほど


と並んでいるデータがあるのですが

1.日付、企業名、IDが一致しているデータを抜き出す
2.抜き出したデータが10個あったとする
3.10個のデータの共通データ(日付、企業名、ID、振込元)は1行目に記載し
異なる部分(振込先、振込金額)を2行目から10個繰り返し
4.その件数の合計を12行目に掃き出す

を、ループで繰り返したいです。


※最終的には、固定長読み込みのシステムに流し込むのですが
改行を無視してくれる仕組みになっているので
はきだした先の1行目と2行目の列項目が相違していて問題ないです。

よろしくお願いいたします。
・ツリー全体表示

103 / 3841 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free