Problème de boucle if elseif
Résolu
siamens_duj
-
siamens_duj -
siamens_duj -
Bonjour,
J'ai un soucis.
J'ai fais un petit code avec une condition If elseif cependant quand j'execute mon code j'ai une erreur.
En fait j'ai une InputBox "reference", quand j'ecris une valeur dans cette inputbox, cela va regarder toutes mes lignes de la colonne D de 5 à 200.
Si la reference entré correspond à une valeur dans la colonne D alors le contenue de toute la ligne se colorie en bleu sinon cela met " Cette reference n'existe pas".
Mon code ne fonctionne pas trop mal, le seul soucis c'est que, même quand la valeur correspond il m'affiche la MsgBox mais colorie bien la ligne en bleu ..
J'ai un soucis.
J'ai fais un petit code avec une condition If elseif cependant quand j'execute mon code j'ai une erreur.
En fait j'ai une InputBox "reference", quand j'ecris une valeur dans cette inputbox, cela va regarder toutes mes lignes de la colonne D de 5 à 200.
Si la reference entré correspond à une valeur dans la colonne D alors le contenue de toute la ligne se colorie en bleu sinon cela met " Cette reference n'existe pas".
Mon code ne fonctionne pas trop mal, le seul soucis c'est que, même quand la valeur correspond il m'affiche la MsgBox mais colorie bien la ligne en bleu ..
Reference = InputBox("Saisie de la référence de la pièce : ", Recherche)
For i = 5 To 200
If Reference = Cells(i, 4).Value Then
Cells(i, 4).EntireRow.Font.Color = RGB(4, 139, 154)
ElseIf Reference <> Cells(i, 4).Value Then GoTo fin
fin: MsgBox "Cette référence n'existe pas"
Exit Sub
2 réponses
bonjour,
Par contre, si tu travailles sous Excel VBA ... plutôt que de faire des boucles pour faire des recherches... regardes la méthode FIND
https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel
Reference = InputBox("Saisie de la référence de la pièce : ", Recherche) For i = 5 To 200 If Reference = Cells(i, 4).Value Then Cells(i, 4).EntireRow.Font.Color = RGB(4, 139, 154) ElseIf Reference <> Cells(i, 4).Value Then MsgBox "Cette référence n'existe pas" Exit Sub End if
Par contre, si tu travailles sous Excel VBA ... plutôt que de faire des boucles pour faire des recherches... regardes la méthode FIND
https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel
Bonjour a vous deux,
Le code de jordane45 marche tres bien (en dehors du elseif pas utile), pas comme le votre de depart
votre code modifie:
autre methode Find:
Le code de jordane45 marche tres bien (en dehors du elseif pas utile), pas comme le votre de depart
votre code modifie:
Sub test() Reference = InputBox("Saisie de la référence de la pièce : ", Recherche) For i = 5 To 200 If Reference = Cells(i, 4).Value Then Cells(i, 4).EntireRow.Font.Color = RGB(4, 139, 154) Exit Sub End If Next i MsgBox "Cette référence n'existe pas" End Sub
autre methode Find:
Sub test1() Reference = InputBox("Saisie de la référence de la pièce : ", Recherche) Nb = Application.CountIf(Range("D5:D200"), Reference) If Nb = 1 Then lig = 1 lig = Columns(4).Find(Reference, Cells(lig, 4), , xlWhole).Row Cells(lig, 4).EntireRow.Font.Color = RGB(4, 139, 154) Else MsgBox "Cette référence n'existe pas" End If End Sub
Essayes ça :
Mais par contre j'insiste... regardes la méthode FIND ...