Question concernant la fonction i = i + 1

Bonjour,

J'ai une base de 16 magasins et je veux indiquer la fermeture ou pas de ces derniers à l'aide de l'outil MsgBox.

La localisation des magasins est dans la colonne "E" et l'information de fermeture (Covid) est dans la colonne "G".

J'ai écris le code de la manière suivante :

""

Dim nomdep As String

nomdep = InputBox("Entrez le nom de votre département", "Magasin - Info Covid")

If nomdep = (Range("E2")) Then

nom2 = (Range("G2"))

MsgBox nom2, vbExclamation, "Info Covid-19"

ElseIf nomdep = (Range("E3")) Then

nom3 = (Range("G3"))

MsgBox nom3, vbExclamation, "Info Covid-19"

§...... de la même manière jusqu'à la ligne 17.§

"

Comment puis-je optimiser cela à l'aide de la fonction (for i = i to n) i = i + 1, Next ?

Je serais très reconnaissant pour votre aide !

Merci

Yanis

12exo-vba-covid.xlsm (105.16 Ko)

Bonsoir

Comment puis-je optimiser cela à l'aide de la fonction (for i = i to n) i = i + 1, Next ?

Au vu du code, pourquoi voulez vous utiliser une boucle ?

Essayez ceci :

Sub rescovid()
Dim nomdep As String
Dim Ligne As Integer

nomdep = InputBox("Entrez le nom de votre département", "Magasin - Info Covid")
If nomdep = "" Then Exit Sub
On Error Resume Next
Ligne = Range("E2:E" & Range("E" & Rows.Count).End(xlUp).Row).Find(nomdep, LookIn:=xlValues, lookat:=xlWhole).Row
If Ligne > 0 Then
    MsgBox Range("G2").Value, vbExclamation, "Info Covid-19"
Else: MsgBox "département non trouvé !"
End If
End Sub

Attention le code suppose que le bouton se trouve sur la feuille active

Cordialement

Bonsoir, Dan,

peut-être lui faut il utiliser une boucle car son fichier commence par "exo"
Tout dépend du thème de la leçon !

@ bientôt

LouReeD

Bonsoir Dan,

Merci pour votre réponse.

J'ai testé le code, mais il fonctionne à moitié; c'est à dire :

lorsque j'entre une valeur "E2" la MsgBox m'affiche la réponse "G2" == OK

Néanmoins quand j'entre une valeur "E7" par exemple, la MsgBox m'affiche toujours "G2" au lieu de "G7".

Comment corriger cela ?

Merci d'avance :)

Yanis

Néanmoins quand j'entre une valeur "E7" par exemple, la MsgBox m'affiche toujours "G2" au lieu de "G7".

Ah oui très juste ! désolé.

Changez cette ligne -->

MsgBox Range("G" & Ligne).Value, vbExclamation, "Info Covid-19"

Cordialement

Impeccable !! Merci beaucoup @Dan !

Problème résolu

Yanis

Rechercher des sujets similaires à "question concernant fonction"