戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
当日の数値を比較して、マイナス数値を別シートに表示させる

    [192315] 当日の数値を比較して、マイナス数値を別シートに表示させる-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ こんにちは -(2020/06/28(15:51))
    □U R L/
      こんにちは。
      お手数ですが、初心者VBAの質問にお付き合い下さい。
      当日の日付の数値がプラスだったら、何もせず、
      数値がマイナスだったら別のシートにマイナス数値を表示するということをしたいのですが、
      方法がわかりません。
      別のシートに表示するときはマイナス数値のみが表示される表にしたいです。
      表現方法がわからないため、下の表をご覧ください。よろしくお願いします。
      ボタン設置(当日6/2の場合)
      A列 B列 C列 D列 E列 F列
      名前 日付 得点 名前 日付 得点
      伊藤 6/1 100 田中 6/1 -20
         6/2 -10      6/2   -30
         :  :     :  :
      結果後、マイナス数値のみを
      別のシートに表示したいです。
      A列 B列 C列
      鈴木 6/2 -10
      田中 6/2 -30
      
      VBAで表現したいのですが、
      どのようにプログラムを書いて良いか、
      わかりません。よろしくお願いします。




    [192316] Re[1]: 当日の数値を比較して、マイナス数値を別シートに表示させる-

    記事引用/メール受信=OFF■

    □投稿者/ コロナから国民を守る -(2020/06/28(17:08))
    □U R L/
      Sub Test()
        Dim oSht1 As Excel.Worksheet
        Dim oSht2 As Excel.Worksheet
        Dim lCol1 As Long
        Dim lRow1 As Long
        Dim lRow2 As Long
        '入力シート
        Set oSht1 = ThisWorkbook.Worksheets("Sheet1")
        '出力シート
        Set oSht2 = ThisWorkbook.Worksheets("Sheet2")
        '出力シートの行
        lRow2 = 0
        '入力シートの最終列まで処理する。
        For lCol1 = 0 To oSht1.Cells(1, oSht1.Columns.Count).End(xlToLeft).Column Step 3
          '入力シートの該当列の最終行まで処理する。
          For lRow1 = 1 To oSht1.Cells(oSht1.Rows.Count, lCol1 + 2).End(xlUp).Row
            If IsDate(oSht1.Cells(lRow1, lCol1 + 2).Value) = False Then
              '2列目が日付でない場合は、スキップ。
            ElseIf CDate(oSht1.Cells(lRow1, lCol1 + 2).Value) <> Date Then
              '2列目の日付が今日でない場合は、スキップ。
            ElseIf IsNumeric(oSht1.Cells(lRow1, lCol1 + 3).Value) = False Then
              '3列目が数字でない場合は、スキップ。
            ElseIf CDbl(oSht1.Cells(lRow1, lCol1 + 3).Value) >= 0 Then
              '3列目の数字がマイナス値でない場合は、スキップ。
            Else
              '上記以外は、出力シートに出力。
              lRow2 = lRow2 + 1
              '名前
              oSht2.Cells(lRow2, 1).Value = oSht1.Cells(1, lCol1 + 1).Value
              '日付
              oSht2.Cells(lRow2, 2).Value = oSht1.Cells(lRow1, lCol1 + 2).Value
              '数字
              oSht2.Cells(lRow2, 3).Value = oSht1.Cells(lRow1, lCol1 + 3).Value
            End If
          Next lRow1
        Next lCol1
        Set oSht1 = Nothing
        Set oSht2 = Nothing
      End Sub
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [192334] Re[2]: 当日の数値を比較して、マイナス数値を別シートに表示させる-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ こんにちは -(2020/06/29(12:05))
    □U R L/

      ご連絡が遅くなり申し訳ございません。
      ありがとうございました。
      お試し下さい。本当にありがとうございました。



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G