Boucle for next avec condition
Résolu/Fermé
Kwame1965
Messages postés
2
Date d'inscription
mardi 6 janvier 2015
Statut
Membre
Dernière intervention
6 janvier 2015
-
Modifié par crapoulou le 6/01/2015 à 16:44
jordane45 Messages postés 37253 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 mars 2023 - 6 janv. 2015 à 17:20
jordane45 Messages postés 37253 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 mars 2023 - 6 janv. 2015 à 17:20
A voir également:
- Boucle for next avec condition
- Boucle for matlab ✓ - Forum Matlab
- Pc s'allume et s'éteint en boucle - Forum Matériel informatique
- Excel condition couleur - Guide
- Download instagram for pc - Télécharger - Divers Communication
- Safari for windows - Télécharger - Navigateurs
3 réponses
crapoulou
Messages postés
28092
Date d'inscription
mercredi 28 novembre 2007
Statut
Modérateur, Contributeur sécurité
Dernière intervention
17 mars 2023
8 003
Modifié par crapoulou le 6/01/2015 à 16:50
Modifié par crapoulou le 6/01/2015 à 16:50
Bonjour,
Tu peux passer par Exit For
(Et pas besoin de Else si tu n'as pas d'instruction)
Tu peux passer par Exit For
(Et pas besoin de Else si tu n'as pas d'instruction)
Sub Macro6()
'
' Macro6 Macro
'
Sheets("r1").Select
Range("AC4:BY4").Select
Selection.Copy
' test pour déterminer la ligne vide
Sheets("Database").Select
For i = 4 To 100
lignevide = Range("a" & i)
ligneval = Range("a" & i).Value
If ligneval = "" Then
Range("a" & i).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Exit For
End If
Next i
End Sub
cs_Le Pivert
Messages postés
7883
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 mars 2023
724
6 janv. 2015 à 16:50
6 janv. 2015 à 16:50
bonjour,
il faut sortir de la boucle quand qu'il a trouvé une ligne vide et qu'il y a collé sa ligne de données.
il faut sortir de la boucle quand qu'il a trouvé une ligne vide et qu'il y a collé sa ligne de données.
Exit For
Kwame1965
Messages postés
2
Date d'inscription
mardi 6 janvier 2015
Statut
Membre
Dernière intervention
6 janvier 2015
6 janv. 2015 à 17:14
6 janv. 2015 à 17:14
C'est tout à fait ça! merci beaucoup
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
4 551
>
Kwame1965
Messages postés
2
Date d'inscription
mardi 6 janvier 2015
Statut
Membre
Dernière intervention
6 janvier 2015
6 janv. 2015 à 17:20
6 janv. 2015 à 17:20
Et que ce passera-t-il le jour où tu auras plus de 100 lignes dans ta feuille ?
Ta macro ne fonctionnera plus.. à moins que tu ailles modifier manuellement le nombre dans ta boucle....
Si ton but est d'ajouter (par copier/coller) des lignes dans ta seconde feuille.... il est préférable de rechercher la dernière ligne utilisée par le code que je t'ai soumis.
Même si la réponse données par lePivert et Crapoulou répond à ton besoin actuel... jettes tout de même un oeil à ma réponse. Ça pourrait te servir un jour...
:-)
Ta macro ne fonctionnera plus.. à moins que tu ailles modifier manuellement le nombre dans ta boucle....
Si ton but est d'ajouter (par copier/coller) des lignes dans ta seconde feuille.... il est préférable de rechercher la dernière ligne utilisée par le code que je t'ai soumis.
Même si la réponse données par lePivert et Crapoulou répond à ton besoin actuel... jettes tout de même un oeil à ma réponse. Ça pourrait te servir un jour...
:-)
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
4 551
Modifié par jordane45 le 6/01/2015 à 17:16
Modifié par jordane45 le 6/01/2015 à 17:16
Bonjour,
Tu peux déterminer quelle est la dernière ligne de ton tableau via l'instruction
Ton code devient ainsi :
NB : Evites de faire des SELECT ..selection... .... ça alourdit le fonctionnement du code...Manipules plutôt les objets.
Cordialement,
Jordane
Tu peux déterminer quelle est la dernière ligne de ton tableau via l'instruction
Derniere_Ligne = Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row
Ton code devient ainsi :
Sub Macro6()
Dim Derniere_Ligne as Long
Dim FSource as Worksheet
Set FSource = Sheets("r1")
Dim Fcible as Worksheet
Set Fcible = Sheets("Database")
'Copie des données
FSource.Range("AC4:BY4").Copy
' test pour déterminer la ligne vide
Derniere_Ligne = Fcible.Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row
' Coller les données
Fcible.Range("A" & Derniere_Ligne).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks :=False, Transpose:=False
End Sub
NB : Evites de faire des SELECT ..selection... .... ça alourdit le fonctionnement du code...Manipules plutôt les objets.
Cordialement,
Jordane