戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
勤務表をカレンダーへ転記するには?

    [195338] 勤務表をカレンダーへ転記するには?-

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

    □投稿者/ パンダ -(2022/10/25(15:38))
    □U R L/

      この度、大変お世話になります。

      予め下記の2つのシート名(勤務作成、カレンダー)が存在します。

      シート名:勤務作成
        A    B   C   D   E   F  G  H  … AF
      1 10月   1   2   3 4 5 6  7   … 31
      2 曜日  土   日  月  火  水  木  金  … 月
      3 名前  
      4 あ 1 1       1
      5 い 1      1
      6 う 1 1
      7 え 1 1
      8 お 1 1

      シート名:カレンダー
         A    B    C    D    E    F    G
      1 10月
      2  日    月    火    水    木    金    土
      3                             1
      4  
      5 
      6 
      7  2    3    4    5    6    7    8 
      8 
      9 
      10
      11
      12  9   10    11   12    13   14    15
      13
      14
      15
      16  16   17    18   19    20   21    22
      17
      18
      19
      20  23   24    25   26    27   28    29
      21
      22
      23
      24  30   31
      25
      26
      27

      @勤務作成のシートに一人一人職員が出勤する日は数字の1を入力済とします。
      A勤務作成のシートにVBAのボタン(図形にて)を押すと上記のカレンダーの
      シートは下記のイメージの様に勤務作成のシートから抽出され反映する様に
      したいと思います。

      ※VBAのマクロを実行後のイメージ
      シート名:カレンダー
         A    B    C    D    E    F    G
      1 10月
      2  日    月    火    水    木    金    土
      3                             1
      4                            あ
      5 
      6 
      7  2    3    4    5    6    7    8 
      8  う   あ   い    あ   い
      9  え   お   う    え
      10               お
      11
      12  9   10    11   12    13   14    15
      13
      14
      15
      16  16   17    18   19    20   21    22
      17
      18
      19
      20  23   24    25   26    27   28    29
      21
      22
      23
      24  30   31
      25
      26
      27

      ※どうしたら勤務作成のシート上にある職員一人一人に入力した数字の1が
      あるかを判断(if文)してカレンダーのシートの日付け下に転記出来る様に
      するVBAの関数が必要なのかご教授いただきたいと思います。
      宜しくお願い致します。




    [195339] Re[1]: 勤務表をカレンダーへ転記するには?-

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

    □投稿者/ パンダ -(2022/10/25(15:46))
    □U R L/

      すみませんです。上手く勤務作成の表示が出来ていなかったので改めて書き込みしました。

      シート名:勤務作成
        A    B   C   D   E   F  G  H  … AF
      1 10月   1   2   3   4   5   6  7   … 31
      2 曜日  土   日  月  火  水  木  金  … 月
      3 名前  
      4 あ    1       1       1
      5 い              1      1
      6 う        1      1
      7 え        1          1
      8 お           1      1




    [195340] Re[2]: 勤務表をカレンダーへ転記するには?-

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

    □投稿者/ 半平太 -(2022/10/25(16:58))
    □U R L/

      何故、2日〜8日の週だけ4人分の行があるのですか?(他は3行)

      カレンダーのレイアウトが、実際は確定してないのですか?





    [195341] Re[3]: 勤務表をカレンダーへ転記するには?-

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

    □投稿者/ パンダ -(2022/10/25(17:13))
    □U R L/

      こんにちは!半平太さんからのご質問ですが、カレンダーのレイアウトは日付下に4人分転記出来る様にしたいと思っていましたが、すみませんです表記ミスをしてしまいました。




    [195342] Re[4]: 勤務表をカレンダーへ転記するには?-

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

    □投稿者/ 半平太 -(2022/10/25(20:13))
    □U R L/
      Sub Sample()
          Dim wsShift As Worksheet
          Dim cellToCheck As Range
          Dim lastRow As Long, i As Long, k As Long
          Dim RR As Long, Cnt As Long, DyCol As Long
          
          Set wsShift = Worksheets("勤務作成")
          lastRow = wsShift.Cells(Rows.Count, "A").End(xlUp).Row
          
          Set cellToCheck = Worksheets("カレンダー").Range("A3:G32")
          DyCol = 1 '初期値をセット
          
          For i = 1 To 30 Step 5
              cellToCheck(i + 1, 1).Resize(4, 7) = Empty '前回処理の残データをクリア
              
              For k = 1 To 7
              
                  If IsNumeric(CStr(cellToCheck(i, k))) Then '日付相当セルなら
                      DyCol = DyCol + 1 '日付列順を求める
                      Cnt = 0
                      
                      For RR = 4 To lastRow '全員をチェック
                          If wsShift.Cells(RR, DyCol) = 1 Then
                              Cnt = Cnt + 1
                              
                              '名前を直下セルに転記
                              cellToCheck(i + Cnt, k) = wsShift.Cells(RR, "A")
                          End If
                      Next RR
                  End If
              Next k
          Next i
      End Sub


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

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




    [195344] Re[5]: 勤務表をカレンダーへ転記するには?-

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

    □投稿者/ パンダ -(2022/10/26(08:48))
    □U R L/

      おはようございます!

      半平太さんご教授いただきましてありがとうございます。
      半平太さんのSampleにて解決出来ました。
      Sampleを見て改めて大変な処理をVBAにしようと思っていたんだなと実感しました。
      一つ一つの処理を私がちゃんと理解していきます。

      半平太さんありがとうございました。



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

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

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


- Child Forum -
Edit:ゆう-G