Boucle while

Fermé
siamens_duj Messages postés 191 Date d'inscription vendredi 20 juin 2014 Statut Membre Dernière intervention 14 février 2019 - 5 nov. 2015 à 09:05
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 - 5 nov. 2015 à 09:36
Bonjour,

J'ai un petit soucis avec une boucle While.

J'ai fais un code qui, quand la condition est fausse il doit afficher un message d'erreur.
Le problème c'est que actuellement il affiche le message d'erreur même quand la condition est vraie !
Je ne comprend pas pourquoi, j'ai inversé le code, mis un For i = 5 to 200, mis un i = 5 au dessus du while, mis un i = i + 1 en dessous du MsgBox. Je ne sais plus quoi faire, si quelqu'un pouvait m'aider svp.

Je vous met mon code :


Reference = InputBox("Saisie de la référence de la pièce : ", Recherche)

Do While i < 200

If Reference <> Cells(i, 4).Value Then
MsgBox "Cette référence n'existe pas"

Else
Cells(i, 4).EntireRow.Interior.Color = RGB(174, 240, 194)
Set obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Link:=False, DisplayAsIcon:=False, Left:=2, Top:=40, Width:=72, Height:=24)
obj.Name = "BoutonTest"

'Le texte de la macro
Code = "Sub BoutonTest_Click()" & vbCrLf
Code = Code & "Call Tester" & vbCrLf
Code = Code & "End Sub"
'Ajoute la macro en fin de module feuille
With ActiveWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
.insertlines .CountOfLines + 1, Code
End With

End If
Loop

End Sub


Merci

1 réponse

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
5 nov. 2015 à 09:36
Bonjour,

Tu peux faire cet essai :
Sub Test()
Dim C As Range
Dim Reference As String
Reference = InputBox("Saisie de la référence de la pièce : ", Recherche)
If Reference <> "" Then
Set C = Columns(4).Find(Reference, , xlValues, xlWhole)
If C Is Nothing Then
MsgBox "La référence " & Reference & " n'existe pas"
Exit Sub
Else
MsgBox "La référence " & Reference & " existe." & Chr(10) & "On continue !"
End If
End If
End Sub

A+
0