[VBA] un while/wend qui ne veut pas marcher !

Résolu/Fermé
lml-mike Messages postés 453 Date d'inscription vendredi 16 février 2007 Statut Contributeur Dernière intervention 18 novembre 2018 - 6 août 2010 à 11:42
lml-mike Messages postés 453 Date d'inscription vendredi 16 février 2007 Statut Contributeur Dernière intervention 18 novembre 2018 - 6 août 2010 à 12:45
Bonjour,

J'ai un soucis avec ma fonction While.

Je lui demande de chercher un numéro dans toute la colonne D. Le problème est qu'il boucle infiniment en cherchant dans la colonne B.

Pourquoi ? Tout simplement parce que la configuration des cellules font que certaines de la colonne D sont liées à d'autres de la colonne B et C.

Vous savez comment faire pour que cette boucle RESTE sur la colonne D, peu importe si les cellules à l'intérieur sont liées ou non ?

Voici ma boucle (numpc est une variable publique) :

Private Sub OK_Click()

Range("d1").Activate
    
    While ActiveCell.Value <> numpc
            ActiveCell.Offset(1, 0).Activate
    Wend

ActiveCell.Offset(2, 0).Activate
ActiveCell.Value = Me.nom_client
ActiveCell.Offset(2, 0).Activate
ActiveCell.Value = Time

End sub


Merci !!!

2 réponses

yoyoton Messages postés 6 Date d'inscription mardi 23 février 2010 Statut Membre Dernière intervention 6 août 2010 7
6 août 2010 à 12:04
Je comprends le problème, la solution, c'est d'obliger VBA a rester dans la colonne D, et d'éviter le passage par activation.

Je proposerai ça :
Private Sub OK_Click()

ligne = Range("d1").Row
col = Range("d1").Column
    
    While Cells(ligne,col).Value <> numpc
            ligne=ligne+1
    Wend

Cells(ligne,col).Activate

ActiveCell.Offset(2, 0).Activate
ActiveCell.Value = Me.nom_client
ActiveCell.Offset(2, 0).Activate
ActiveCell.Value = Time

End sub



Par contre, j'avoue que je n'aime pas ce genre de boucle qui, si elle ne trouve pas de donnée, bug nécessairement ! un
for ligne=Range("d1").Row to X
me semblerait plus adapté !
1
lml-mike Messages postés 453 Date d'inscription vendredi 16 février 2007 Statut Contributeur Dernière intervention 18 novembre 2018 120
6 août 2010 à 12:45
ça marche niquel, maintenant je peux copier/coller mon script sur mes 28 autres boutons juste en changeant ma variable publique en début de script.

Problème résolu, merci pour ton aide :-)
0