- ベストアンサー
VBAでドライバーが持ち出す荷物の非表示を行う方法
- VBAを使用して、ドライバーが持ち出す荷物の数量チェックを行うためのExcelチェック表を作成しています。
- しかし、持ち出す荷物の数量が多くなるため、印刷する枚数が増えてしまいます。
- そこで、ドライバーが持ち出す荷物の個数と、特定のコードまたは未入荷の商品のみを表示するような条件を設定する必要があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
済みません。再解凍が遅れました。 >最初の方法ではフィルターをかけた時に小計をかけている数量が変化してしまいます その通りですね。これは使えませんね。マクロも上げておいてよかった。 >1111や未入庫の場合を表示させているE列の数量は白色にして と書いてありますが、 これは違う話です。別質問にして下さい。どうせ質問はただだし。 補足かお礼があればメールが来るようにしてあるので、ここに新しい質問番号を書いていただければ、見落とすことはありません。
その他の回答 (1)
- SI299792
- ベストアンサー率47% (780/1630)
集計と1111と未入庫を残せばいいのですね。 G2:=OR(RIGHT(C2,1)="計",D2=1111,F2="未入庫") 下へコピペ、 G列でフィルターをかけ、TRUEを洗濯すればできます。 VBA なら Option Explicit ' Sub Macro1() Dim Row As Long ' For Row = 2 To [C1].End(xlDown).Row ' If Not Cells(Row, "C") Like "*計" And _ Cells(Row, "D") <> 1111 And _ Cells(Row, "F") <> "未入庫" Then Rows(Row).Hidden = True End If Next Row End Sub しかし、メンテナンスの面からも、上の方法をお勧めします。
お礼
すみません 違う表で実行していました 最初に添付したデータの表ではどこもE列の数量は白色になりませんでした 私が書いたコードでは、商品列が1111かつ入庫状況が未入庫になっている場合にE列が白色になるのですね そのあと、色々やってみたのですが、どうも私の希望のようになりません
補足
SI299792さん、コメントありがとうございます 教えて頂いた方法を試したところ、最初の方法ではフィルターをかけた時に小計をかけている数量が変化してしまいます コードで教えて頂いた方は、私が希望している通リの結果を返してくれます ありがとうございました ところで、ここから更に表を見やすくする為に、明細行となる部分の数量をフォントの色を白色にして印刷時に見やすくしようと思いました(つまり、数量はドライバーが持ってゆく数量の合計だけが表示されて1111や未入庫の場合を表示させているE列の数量は白色にして見えないようにしたいという事です) 教えて頂いたコードを変更して下記のようなコードを実行させてみました Dim Row As Long For Row = 2 To [C1].End(xlDown).Row If Cells(Row, "D") = 1111 And _ Cells(Row, "F") = "未入庫" Then Cells(Row, "E").Font.ColorIndex = 2 End If Next Row これを実行させると、表の一番上のドライバー佐藤の数量4の部分だけしかフォントの色が変わってくれないのですが、コードではFor文で最後の行まで色の変化させるようにはしていませんか? 明細行の数量部分を色を抜いて見やすい表として印刷するにはどのようなコードが適切なのでしょうか?
お礼
はいわかりました 今回はどうもありがとうございました