[VBA] un while/wend qui ne veut pas marcher !
Résolu
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) :
Merci !!!
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
-
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 ! unfor ligne=Range("d1").Row to Xme semblerait plus adapté ! -
Contributeurç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 :-)