Boucle while

siamens_duj Messages postés 212 Statut Membre -  
Gyrus Messages postés 3360 Statut Membre -
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

  1. Gyrus Messages postés 3360 Statut Membre 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