Boucle For ne s'exécute pas correctement
f894009 Messages postés 17212 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 24 décembre 2024 - 16 juin 2024 à 07:50
- Boucle For ne s'exécute pas correctement
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Copytrans heic for windows - Télécharger - Visionnage & Diaporama
- Download instagram for pc - Télécharger - Divers Communication
- Idm for mac - Télécharger - Téléchargement & Transfert
- Whatsapp for pc - Télécharger - Messagerie
4 réponses
Modifié le 15 juin 2024 à 11:52
Bonjour,
Je ne pratique pas VB mais tu définis la variable Derligne5 et la boucke for elle utilise Derligne.
15 juin 2024 à 12:34
Et dans le copy il ne devrait pas y avoir i,1 à la place de 2,1 ?
15 juin 2024 à 14:10
Merci pour ta proposition, mais non
"i" Scanne la première feuille WS5.
Je prévois en effet autre variable pour désigner l'emplacement final. Mais d'abord. Régler le problème de la boucle
15 juin 2024 à 14:59
bonjour, comme chaque copie efface la copie précédente, comment sais-tu que la boucle ne fait qu'une seule copie?
15 juin 2024 à 15:03
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
15 juin 2024 à 15:51
Derligne5 Correspond bien à la dernière ligne de la colonne des données.
Quand à l'instruction, je l'ai testé à l'instant. C'est sans incidence sur la procédure, et çà ne change rien au niveau du résultat
15 juin 2024 à 18:40
comme chaque copie efface la copie précédente, comment sais-tu que la boucle ne fait qu'une seule copie?
Modifié le 16 juin 2024 à 07:52
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
15 juin 2024 à 12:22
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.