Boucle VBA jusqu'à validation condition
Fermé
skyzino
Messages postés
28
Date d'inscription
jeudi 20 septembre 2012
Statut
Membre
Dernière intervention
2 juillet 2013
-
Modifié par skyzino le 8/10/2012 à 13:56
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 - 8 oct. 2012 à 14:16
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 - 8 oct. 2012 à 14:16
A voir également:
- Boucle VBA jusqu'à validation condition
- Ethernet n'a pas de configuration ip valide - Guide
- Excel cellule couleur si condition texte - Guide
- Commande en cours de validation fnac - Forum Consommation & Internet
- Incompatibilité de type vba ✓ - Forum Programmation
- Impossible d'utiliser ce numéro de téléphone pour la validation - Forum Gmail
7 réponses
skyzino
Messages postés
28
Date d'inscription
jeudi 20 septembre 2012
Statut
Membre
Dernière intervention
2 juillet 2013
8 oct. 2012 à 14:00
8 oct. 2012 à 14:00
Peut-êtr eque mon post ne traduit pas correctement ce que je souhaite faire.
Je souhaite que la procédure ne prennent fin que lorsque cells(i,8) soit supérieur à cells(1,16)
Merci pour ceux qui prendront le temps de me donner un coup de main
Je souhaite que la procédure ne prennent fin que lorsque cells(i,8) soit supérieur à cells(1,16)
Merci pour ceux qui prendront le temps de me donner un coup de main
Freedomsoul
Messages postés
509
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
17 avril 2013
97
8 oct. 2012 à 14:03
8 oct. 2012 à 14:03
tu peux utiliser les Exit For pour sortir de tes for quand la condition est réalisée
c'est ça que tu veux ?
c'est ça que tu veux ?
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 8/10/2012 à 14:06
Modifié par michel_m le 8/10/2012 à 14:06
Bonjour,
Si par hasard j'ai compris ta demande
le test de sortie se fait en arrivant sur la ligne ou se fait il après les calculs?
si ap^rès les calculs
si "en arrivant"
.
Michel
Si par hasard j'ai compris ta demande
le test de sortie se fait en arrivant sur la ligne ou se fait il après les calculs?
si ap^rès les calculs
.... If .Range("H" & i) < .Range("P1") Then .Range("F" & i) = .Range("H" & i) + 1 .Range("H" & i) = .Range("F" & i) + .Range("G" & i) If .Range("H" & i) >= .Range("P1") Then Exit Sub End If...
si "en arrivant"
.
.. If .Range("H" & i) >= .Range("P1") Then Exit For Else .Range("F" & i) = .Range("H" & i) + 1 .Range("H" & i) = .Range("F" & i) + .Range("G" & i) End If
Michel
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 308
Modifié par chossette9 le 8/10/2012 à 14:08
Modifié par chossette9 le 8/10/2012 à 14:08
Bonjour,
Ce mec la n'était pas une lumière, car il était niais.
Dim Derlig As Long, i As Long With Sheets("FTP") Derlig = .Range("F" & Rows.Count).End(xlUp).Row i = 2 Do Until .Cells(i, 8) >= .Cells(1, 16) .Range("F" & i) = .Range("H" & i) + 1 .Range("H" & i) = .Range("F" & i) + .Range("G" & i) i = i +1 Loop End With End Sub
Ce mec la n'était pas une lumière, car il était niais.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
skyzino
Messages postés
28
Date d'inscription
jeudi 20 septembre 2012
Statut
Membre
Dernière intervention
2 juillet 2013
8 oct. 2012 à 14:10
8 oct. 2012 à 14:10
Merci à tous,
Pour ma part voici ce que j'avais fait.
Je vais essayer ta procédure chossette car la mienne est bien lente
Pour ma part voici ce que j'avais fait.
Je vais essayer ta procédure chossette car la mienne est bien lente
Dim Derlig As Long, i As Long With Sheets("FTP") Derlig = .Range("F" & Rows.Count).End(xlUp).Row For i = 2 To Derlig While .Cells(i, 8) < .Cells(1, 16) If .Cells(i, 8) < .Cells(1, 16) Then .Range("F" & i) = .Range("H" & i) + 1 .Range("H" & i) = .Range("F" & i) + .Range("G" & i) End If Wend Next i End With End Sub
skyzino
Messages postés
28
Date d'inscription
jeudi 20 septembre 2012
Statut
Membre
Dernière intervention
2 juillet 2013
8 oct. 2012 à 14:14
8 oct. 2012 à 14:14
Chossette,
Le code que tu m'a communiqué n'agit pas sur les dates.
Merci quand même
Le code que tu m'a communiqué n'agit pas sur les dates.
Merci quand même
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 308
8 oct. 2012 à 14:16
8 oct. 2012 à 14:16
Bizarre, si ça fonctionnait avant, je ne vois pas pourquoi ça ne fonctionnerait plus maintenant. J'ai juste modifié le code pour qu'il fasse ce que tu demandes, jusqu'à ce que Cellule(i, 8) soit supérieure ou égale à Cellule(1,16).
Tu peux mettre un exemple de ce que tu souhaites faire ? Rends-toi sur cjoint.com pour créer un lien, et copie ensuite ce lien en réponse à cette conversation.
Cordialement.
Tu peux mettre un exemple de ce que tu souhaites faire ? Rends-toi sur cjoint.com pour créer un lien, et copie ensuite ce lien en réponse à cette conversation.
Cordialement.
Freedomsoul
Messages postés
509
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
17 avril 2013
97
Modifié par Freedomsoul le 8/10/2012 à 14:18
Modifié par Freedomsoul le 8/10/2012 à 14:18
houlà, pas sur que ça soit super de faire ça, une double boucle ?, est-ce vraiment utile?
le plus simple serait :
le plus simple serait :
Dim Derlig As Long, i As Long With Sheets("FTP") Derlig = .Range("F" & Rows.Count).End(xlUp).Row For i = 2 To Derlig If .Cells(i, 8) < .Cells(1, 16) Then .Range("F" & i) = .Range("H" & i) + 1 ' peut etre mieux avec ça : =====>> .Cells(i,6) = .Cells(i,8)+1 ' .Cells(i,6) = .Cells(i,8)+1 .Range("H" & i) = .Range("F" & i) + .Range("G" & i) ' peut etre mieux avec ça : =====>> '.Cells(i,8) = .Cells(i,6) + .Cells(i,7) exit for End If Next i End With End Sub