VBA - Boucle avec recopie incrémentée à partir d'une formule
Bonjour à tous,
Je suis une toute nouvelle pratiquante VBA ! Excusez donc mon trop peu de connaissances sur ce sujet...
Afin de me faciliter la vie, j'ai décidé de m'y mettre : Here is my problem !
Imaginez donc une grosse base de données avec date de début/Date de fin.
De cette base, il me faut tirer les informations par semaines : je me suis donc créer un tableau avec numéro de semaines et dates correspondantes.
Je veux donc rentrer le n° de semaine de fin, pour que la VBA puisse aller dans le TCD, rafraîchir les données /semaines jusqu’à n° de fin et les coller dans une autre feuille à la suite les unes des autres.
Ma base se colle parfaitement à la suite (la boucle n'étant pas encore faite mais j'attends de résoudre mon pb avant de m'y mettre...) mais les formules m'indiquant l'année, le mois et la semaine c'est autre chose.
Les données rafraîchies du TCD se colle dans les colonnes D à E. Et les colonnes A B et C doivent mettre les semaines correspondantes avec mois et année.
Pb : Je n'arrive pas à copier la dernière ligne des colonnes ABC créée par mon code pour pouvoir l'incrémenter jusqu'à la dernière ligne de ma colonne D.
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| Sub MacroBoucle()
Dim nb As Integer
nb = InputBox("Saisissez le numéro de semaine final")
Dim rng As Range
DerLigne = Sheets("Base CP Semaine").Range("A" & 65000).End(xlUp).Row
'Entrer le numéro de semaine final
Sheets("PARAMETRES").Select
Range("E1").Select
Selection.Value = nb
'Copier les données de la semaine
Range("E2").Select
Sheets("Dyna CP").Select
Range("A5:B34").Select
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotCache.Refresh
Selection.Copy
'Coller les données de la semaine
Sheets("Base CP Semaine").Select
Range("D65000").End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Formule pour n° de semaine / mois / année
Range("A65000").End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=YEAR(PARAMETRES!R2C2)"
Range("B65000").End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=MONTH(PARAMETRES!R2C2)"
Range("C65000").End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=PARAMETRES!R1C5"
Range("A1:C65000").Value = Range("A1:C65000").Value
End Sub |
Si vous n'avez pas bien saisie, je reste à dispo !
Merci d'avance pour vos réponses !
Une débutante VBA