|
▼Yuki さん:HAM、ももさんありがとうございます。
コマンドボタンを使用しないとやはりダメでしょうか・・?
アクセスDBからデータをひっぱて来てまずワークシートAに貼り付けます。
その後、検索(日付検索等)して、その結果をワークシートBに貼り付けます。
この時に同時にカウント(集計)したいと思ってます。
もうちょっと整理しますと・・
千葉(ユーザーフォームに最初から表示) ○○(ラベルに数字を表示)
栃木(ユーザーフォームに最初から表示) ○○(ラベルに数字を表示)
群馬(ユーザーフォームに最初から表示) ○○(ラベルに数字を表示)
東京(ユーザーフォームに最初から表示) ○○(ラベルに数字を表示)
・ ・
・ ・
・ ・
の様に表示したいと考えてます。
ちなみに日付検索の構文は次の通りです。
この構文に組み込むことは可能でしょうか?
Private Sub CommandButton44_Click()
Dim myRow As Long
With Application.WorksheetFunction
If .CountIf(Worksheets("WA").Range("A2:K2500"), Me.TextBox48.Text) > 0 Then
With Worksheets("WA")
Intersect(.UsedRange, .Columns("A:AY")).ClearContents
End With
Worksheets("WA").Range("A1").AutoFilter _
Field:=3, _
Criteria1:=">=" & Me.TextBox48.Text, _
Operator:=xlAnd, _
Criteria2:="<=" & Me.TextBox48.Text
Worksheets("WA").Range("A1").CurrentRegion.Copy Destination:=Worksheets("WB").Range("A1")
' myRow = Worksheets("WB").Range("A1").CurrentRegion.Rows.Count
' Me.ListBox1.RowSource = "TEMP!A2:J100" & myRow
Worksheets("WB").Range("A1").AutoFilter
Else
Exit Sub: Rem textbox1にリストに対する値がなかった場合の処理
End If
End With
With Worksheets("WB")
IRow = .Range("A" & Rows.Count).End(xlUp).Row + 1
End With
With ListBox1
.ColumnHeads = True
.ColumnCount = 8
.ColumnWidths = "30;80;55;60;60;60;65;45;"
'.Text = "DATA!A2:K2500"
.RowSource = "WAREA!A2:H2500"
End With
End Sub
よろしくお願いいたします。
>▼経理担当 さん:
>>▼Yuki さん:
>>県名はユーザーフォーム上に(ラベルとして)配置してます。
>>件数は県名の隣にラベルで表示を考えております。
>
>では県名のラベルのコントロール名は
>Label1 〜 Label10
>それで件数のラベルのコントロール名は
>Label11 〜 Label20
>とします。
>コマンドボタンで処理します。
>
>Private Sub CommandButton1_Click()
> Dim Dic As Object
> Dim v1 As Variant
> Dim v2 As Variant
> Dim i As Long
>
> Set Dic = CreateObject("Scripting.Dictionary")
> For i = 1 To 10
> Dic(Me.Controls("Label" & i).Caption) = 0
> Next
> ' シート名は環境に合わせて変更
> With Worksheets("Sheet2")
> ' 集計用のデータ
> v2 = .Range("H1", "H" & .Range("H" & Rows.Count).End(xlUp).Row).Value
> End With
> ' データ加算
> For i = 1 To UBound(v2)
> ' 同一ITEMに追加
> If Dic.Exists(v2(i, 1)) Then
> Dic(v2(i, 1)) = Dic(v2(i, 1)) + 1
> End If
> Next
> v2 = Dic.Items
>
> For i = LBound(v2) To UBound(v2)
> ' ラベルに表示
> Me.Controls("Label" & i + 11).Caption = vbTab & v2(i)
> Next
>End Sub
|
|