Boucle For ne s'exécute pas correctement
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
Bonjour la communauté
J'ai créé la macro suivante
Sub CopierCollé()
Dim WS5 as WorkSheet : Dim WS6 as WorkSheet
Set WS5 = Feuil5
Set WS = Feuil6
Dim Derligne5 as long
Derligne5 = WS5.Cells(Rows.Count, 1).End(xlup).Row
For i = 2 to Derligne
If WS5.Cells(i, 1) ;value = 26 Then
WS5.Range(WS5.Cells(i,1), WS5.Cells(i,9)). Copy WS6.Cells(2,1)
End if
Next
End sub
La macro s'exécute bien. Sauf que la boucle ne colle qu'une ligne dans la Feuille WS6, là où elle devrait, selon la base de données(WS5), en coller 6.
Il se trouve que le copié coller fonctionne bien sans la boucle.
Qu'est ce qui cloche ?
Windows / Firefox 126.0
- Boucle For ne s'exécute pas correctement
- Votre appareil ne dispose pas des correctifs de qualité et de sécurité importants - Guide
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Idm for mac - Télécharger - Téléchargement & Transfert
- Instagram for pc - Télécharger - Divers Communication
- Microsoft store download for pc - Guide
4 réponses
Bonjour,
Je ne pratique pas VB mais tu définis la variable Derligne5 et la boucke for elle utilise Derligne.
As-tu vérifié la valeur de Derligne5?
cette instruction me semble incorrecte:
Derligne5 = WS5.Cells(Rows.Count, 1).End(xlup).Row
moi j'écrirais
Derligne5 = WS5.Cells(WS5.Rows.Count, 1).End(xlup).Row
Bonjour a tous
Si j'ai bien compris, copier/coller chaque ligne dont Ai=26 Feuil5 vers Feuil6
Il faut un pointeur de ligne pour Feuil6
Sub CopierCollé() Dim WS5 As Worksheet: Dim WS6 As Worksheet Dim Derligne5 As Long Set WS5 = Feuil5 Set WS6 = Feuil6 Derligne5 = WS5.Cells(WS5.Rows.Count, 1).End(xlUp).Row Rng = 2 For i = 2 To Derligne5 If WS5.Cells(i, 1).Value = 26 Then WS5.Range(WS5.Cells(i, 1), WS5.Cells(i, 9)).Copy WS6.Cells(Rng, 1) Rng = Rng + 1 End If Next i End Sub
Bonjour JP,
Merci ça pourrait être la réponse, mais en fait il s'agit juste d'une erreur de rédaction sur CCM.
Sur ma page Macro la procédure est correctement écrite.