Débutant VBA Premiers pas
Bonsoir,
Donc voici, ce sont vraiment mes premiers pas et je fais des tests.
Je sais que ce que je vais vous montrer n'est sans doute pas opti ou réfléchi de la bonne façon mais un pas après l'autre :-)
je sèche un peu pour le moment.
objectif de ma macro :
Au stade où j'en suis, il s'agit d'entrer une date dans une box et d'inscrire cette date à la dernière ligne libre de la colone C, de se décaler sur la droite et de copier le contenu de la valeur de B3 de la feuille active.
Ensuite feuille suivante et on recommence.
Sauf que ça fonctionne tant que ma boucle n'a qu'un seul indice "for i = 4 to 4" par ex si j'essaye avec 4 to 6 ben il coince ici : (voir flèche à droite de la ligne)
J'ai essayé de supprimer la boucle mais même résultat donc j'imagine que c'est un problème de réinitialisation de la variable Dlig.
Mince en vous écrivant, je pense avoir trouvé le problème, en effet une fois que Dlig s'est initialisé sur la feuille 4 j'imagine que ça pose problème d'espérer que ça marche pour la feuille 5 même si c'est la même plage ?
Bon et si je vois juste comment réinitialiser la variable ?
les premières lignes de commentaire c'est pour mon usage afin de suivre mon raisonnement. il pourrait vous aider à me suivre aussi :)
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
| Sub Répartition()
'Activation du bouton dans la fenêtre "Acceuil"
'Fenêtre pour entrer la date valeur
'Activation de la première sheets à modifier
'Se placer sur la première cellule occupée en partant du bas -1 de la colonne C
'insérer la date valeur
'se déplacer d'une cellule vers la droite et insérer la valeur de la cellule B3
'Activation de la sheets suivante
Dim DLig As Range
Dim MaDate As Variant
Application.ScreenUpdating = False
Set DLig = Range("c" & Rows.Count).End(xlUp)
MaDate = "Date"
While Not IsDate(MaDate)
MaDate = InputBox("Entrez une date", "Date", MaDate)
Wend
For i = 4 To 6
Sheets(4).Activate
DLig.Offset(1, 0).Select <---- ça coince là au second passage et ça n'a rien inscrit dans la première non plus.
ActiveCell.Value = MaDate
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Range("B3").Value
Next i
End Sub |