Excel VBA質問箱 IV

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

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


37493 / 76732 ←次へ | 前へ→

【44404】Re:訂正と2項目の行挿入
質問  素人じゅうすけ E-MAIL  - 06/11/15(水) 9:37 -

引用なし
パスワード
   ▼yata さん:
yataさん こんにちわ。返信有難うございます。

2項目の件についてですが、結果的には数量の合計を基準にして並べ替えがしたいのです。
例:
A氏 850(これは合計値です。例:100+500+250) 9/1
     9/23
     10/1
    ↓
C氏 1000 9/2
      9/31

A氏 850  9/1
      9/23
      10/1
といった感じにしたいのです。やはり難しいのでしょうか?
>素人じゅうすけ さん こんばんわ
>最初に
>>一つ問題があります。マクロを記入したのですが、「R=UsedRange.Rows.Count」のところで実行不能になります。「R=Rows.Count」と書き換えましたが、そのときに「Case DateValue(md1)」の部位にて実行不能になります。
>>何がどのようにいけないのでしょうか?
>R=Range("A1").CurrentRegion.Rows.Count
>または
>R=Range("A65536").End(xlUp).Row
>にしてください
>>Case DateValue(md1)」の部位にて実行不能になります。
>InputBoxには 9/1 又は 9月1日 の日付形式で入力して下さい。
>元のA列は日付形式で入力されていると思いますが。それで日付形式で入力された文字列をシリアル値にする必要があるためです。
>------------------------------------
>次に
>>例えば、A氏が三件だとしますと、C列にその日付(縦に、つまりは1行目からスタートの場合は、
>
>1行目から3行目まで)早いもの順にすべて表示させたいのです。
>>その下、一行開けて次の人を表示させたいのです。次の人は5行目からのスタートと言うわけです。
>
>そうすると並べ替えというのは何を基準にするのですか?
>先に提示したコードでは
>
>名前指定 A氏 A氏が3件あったら合計して2行目に表示
>人名 数量 日付
>A   600
>次にC氏を指定 2件で 合計850なら A氏より大きいからC氏が上になる。
>人名 数量 日付
>C   850
>A   600
>と並べ替えていますが、
>
>ご説明の通りだと並び替えは必要なくて
>人名 数量 日付
>A   250  8/12
>A   50  8/20
>A   300  9/1
>1行空ける
>C   400  8/15
>C   450  8/30
>ということですか?
>そうでしたら下記コードで
>
>Sub Test2()
> Dim R As Long, R2 As Long '元データの行数と表示先の最終の行番号
> Dim 人名 As String
> '表示先Sheet4に項目が入っていなかったら実行しない
> If Sheets("Sheet4").Range("A1") = "" Then Exit Sub
>
> R = Range("A65536").End(xlUp).Row
> 人名 = InputBox("抽出する人")
>
> '元データから拾い出してSheet4に表示
> For Each Rng In Range(Range("C2"), Cells(R, 3))
>   If Rng.Value = 人名 Then
>    With Sheets("Sheet4")
>     .Activate
>     R2 = .Range("A65536").End(xlUp).Offset(1, 0).Row
>   
>     .Cells(R2, 1) = 人名
>     .Cells(R2, 2) = Rng.Offset(0, 4)  '数量
>     .Cells(R2, 3) = Rng.Offset(0, -2)  '日付
>    End With
>   End If
> Next
>
> '人名が2つ以上あったら間に行を挿入する
> Sheets("Sheet4").Activate
> With ActiveSheet
> If Range("A3") = "" Then Exit Sub
> For i = 3 To .Range("A65536").End(xlUp).Row
>  If .Cells(i, 1) <> "" And .Cells(i - 1, 1) <> "" Then
>    If .Cells(i, 1) <> .Cells(i - 1, 1) Then
>    .Cells(i, 1).EntireRow.Insert
>    End If
>  End If
> Next i
> End With
>End Sub
>
>行挿入部分でエラー対策
> 1.A3が空白 詰まりデータが1件しか表示されていないので、行挿入は不要
> 2.iが3 詰まりA2とA3が空白でない時で人名が異なっている場合は 行を挿入
> 3 以下同様
>と処理されます
>-------------------------------------------------------
>最初に並べ替えということでしたが、これからどこを基準にして並べ替えをしたらいいですか?
>もしかして C氏の合計が大きいから
>人名 数量 日付
>C   400  8/15
>C   450  8/30
>1行空ける
>A   250  8/12
>A   50  8/20
>A   300  9/1
>ということですか?
>これはかなり難しいと思います。人名毎にデータ件数がバラバラだから。
>新たに質問を立てて、詳しい方にお願いされるほうが良いかと思います。

0 hits

【44202】別のSHEETへの答え記入 素人じゅうすけ 06/11/8(水) 20:58 質問
【44206】Re:別のSHEETへの答え記入 りん 06/11/9(木) 12:02 発言
【44208】Re:別のSHEETへの答え記入 素人じゅうすけ 06/11/9(木) 18:01 お礼
【44215】Re:勘違いかもしれませんが yata 06/11/9(木) 22:13 回答
【44251】Re:勘違いかもしれませんが 素人じゅうすけ 06/11/10(金) 19:11 質問
【44255】Re:勘違いかもしれませんが yata 06/11/10(金) 22:44 回答
【44266】Re:勘違いかもしれませんが 素人じゅうすけ 06/11/11(土) 14:11 質問
【44289】Re:取り敢えず1項目だけ yata 06/11/12(日) 8:42 回答
【44291】Re:取り敢えず1項目だけ 素人じゅうすけ 06/11/12(日) 9:36 回答
【44293】Re:取り敢えず1項目だけ 素人じゅうすけ 06/11/12(日) 10:30 質問
【44301】Re:1項目の説明と2項目 yata 06/11/12(日) 19:10 回答
【44313】Re:1項目の説明と2項目 素人じゅうすけ 06/11/13(月) 9:30 回答
【44383】Re:1項目の説明と2項目 素人じゅうすけ 06/11/14(火) 17:21 質問
【44389】Re:訂正と2項目の行挿入 yata 06/11/14(火) 19:51 回答
【44404】Re:訂正と2項目の行挿入 素人じゅうすけ 06/11/15(水) 9:37 質問
【44420】Re:2項目の日付表示では yata 06/11/15(水) 21:34 回答
【44486】Re:2項目の日付表示では 素人じゅうすけ 06/11/18(土) 14:53 お礼
【44542】Re:2項目の日付表示では 素人じゅうすけ 06/11/21(火) 9:43 質問
【44568】Re:2項目の日付表示では yata 06/11/21(火) 22:46 回答
【44590】Re:2項目の日付表示では 素人じゅうすけ 06/11/22(水) 17:40 お礼

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