Boucle while

siamens_duj Messages postés 192 Date d'inscription   Statut Membre Dernière intervention   -  
Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   526
 
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