KTM
XLDnaute Impliqué
Bonjour chers tous
je suis entrain de construire une macro qui me permettra de copier les données de mon classeur actif vers un autre classeur selon le mois .
Pour boucler sur les 12 mois je me retrouve avec un long code.
Je voudrais solliciter votre expertise pour l'améliorer.
Merci
	
	
	
	
	
		
	
		
			
		
		
	
				
			je suis entrain de construire une macro qui me permettra de copier les données de mon classeur actif vers un autre classeur selon le mois .
Pour boucler sur les 12 mois je me retrouve avec un long code.
Je voudrais solliciter votre expertise pour l'améliorer.
Merci
		VB:
	
	
	Sub Transferer()
    
    Dim chemin
    Dim wkb As Workbook
    Dim shFrom As Worksheet
    chemin = ThisWorkbook.Path & "\Canevas.xlsx"
     If Dir(chemin) = "" Then MsgBox "Canevas.xlsx n'existe pas !", 48: Exit Sub
    Set wkb = Workbooks.Open(chemin)
    
    Set shFrom = ThisWorkbook.Worksheets("A_Transferer")
    
    With shFrom
    
    If Month(ThisWorkbook.Worksheets("TB").Range("B11")) = 1 Then
      
      wkb.Worksheets(1).Range("G9:J23").Value = .[G6:J20].Value
      wkb.Worksheets(1).Range("L9:O23").Value = .[L6:O20].Value
      wkb.Worksheets(1).Range("Q9:T23").Value = .[Q6:T20].Value
      wkb.Worksheets(1).Range("V9:Y23").Value = .[V6:Y20].Value
      wkb.Worksheets(1).Range("AA9:AB23").Value = .[AA6:AB20].Value
      wkb.Worksheets(1).Range("AI9:AL23").Value = .[AI6:AL20].Value
      wkb.Worksheets(1).Range("AN9:AQ23").Value = .[AN6:AQ20].Value
      wkb.Worksheets(1).Range("AS9:AV23").Value = .[AS6:AV20].Value
      wkb.Worksheets(1).Range("AX9:BA23").Value = .[AX6:BA20].Value
      wkb.Worksheets(1).Range("BC9:BF23").Value = .[BC6:BF20].Value
      wkb.Worksheets(1).Range("BH9:BK23").Value = .[BH6:BK20].Value
      ElseIf Month(ThisWorkbook.Worksheets("TB").Range("B11")) = 2 Then
      
      'un pas de 24 lignes vers le bas
      
      wkb.Worksheets(1).Range("G33:J47").Value = .[G6:J20].Value
      wkb.Worksheets(1).Range("L33:O47").Value = .[L6:O20].Value
      wkb.Worksheets(1).Range("Q33:T47").Value = .[Q6:T20].Value
      wkb.Worksheets(1).Range("V33:Y47").Value = .[V6:Y20].Value
      wkb.Worksheets(1).Range("AA33:AB47").Value = .[AA6:AB20].Value
      wkb.Worksheets(1).Range("AI33:AL47").Value = .[AI6:AL20].Value
      wkb.Worksheets(1).Range("AN33:AQ47").Value = .[AN6:AQ20].Value
      wkb.Worksheets(1).Range("AS33:AV47").Value = .[AS6:AV20].Value
      wkb.Worksheets(1).Range("AX33:BA47").Value = .[AX6:BA20].Value
      wkb.Worksheets(1).Range("BC33:BF47").Value = .[BC6:BF20].Value
      wkb.Worksheets(1).Range("BH33:BK47").Value = .[BH6:BK20].Value
      
      ElseIf Month(ThisWorkbook.Worksheets("TB").Range("B11")) = 3 Then
      'un pas de 24 lignes vers le bas
      wkb.Worksheets(1).Range("G57:J71").Value = .[G6:J20].Value
      wkb.Worksheets(1).Range("L57:O71").Value = .[L6:O20].Value
      wkb.Worksheets(1).Range("Q57:T71").Value = .[Q6:T20].Value
      wkb.Worksheets(1).Range("V57:Y71").Value = .[V6:Y20].Value
      wkb.Worksheets(1).Range("AA57:AB71").Value = .[AA6:AB20].Value
      wkb.Worksheets(1).Range("AI57:AL71").Value = .[AI6:AL20].Value
      wkb.Worksheets(1).Range("AN57:AQ71").Value = .[AN6:AQ20].Value
      wkb.Worksheets(1).Range("AS57:AV71").Value = .[AS6:AV20].Value
      wkb.Worksheets(1).Range("AX57:BA71").Value = .[AX6:BA20].Value
      wkb.Worksheets(1).Range("BC57:BF71").Value = .[BC6:BF20].Value
      wkb.Worksheets(1).Range("BH57:BK71").Value = .[BH6:BK20].Value
      ElseIf Month(ThisWorkbook.Worksheets("TB").Range("B11")) = 4 Then
          
        'un pas de 24 lignes vers le bas
      wkb.Worksheets(1).Range("G81:J95").Value = .[G6:J20].Value
      wkb.Worksheets(1).Range("L81:O95").Value = .[L6:O20].Value
      wkb.Worksheets(1).Range("Q81:T95").Value = .[Q6:T20].Value
      wkb.Worksheets(1).Range("V81:Y95").Value = .[V6:Y20].Value
      wkb.Worksheets(1).Range("AA81:AB95").Value = .[AA6:AB20].Value
      wkb.Worksheets(1).Range("AI81:AL95").Value = .[AI6:AL20].Value
      wkb.Worksheets(1).Range("AN81:AQ95").Value = .[AN6:AQ20].Value
      wkb.Worksheets(1).Range("AS81:AV95").Value = .[AS6:AV20].Value
      wkb.Worksheets(1).Range("AX81:BA95").Value = .[AX6:BA20].Value
      wkb.Worksheets(1).Range("BC81:BF95").Value = .[BC6:BF20].Value
      wkb.Worksheets(1).Range("BH81:BK95").Value = .[BH6:BK20].Value
      
      ElseIf Month(ThisWorkbook.Worksheets("TB").Range("B11")) = 5 Then
          
          'Ainsi de suite jusqu"au 12ieme Mois
          
      ElseIf Month(ThisWorkbook.Worksheets("TB").Range("B11")) = 12 Then
          
     End If
     End With
End Sub