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