Macro avec 2 InputBox

Bonjour Community,

Je cherche à écrire une code qui demande d'un premier temps à l'utilisateur de rentrer le Numéro d'offre, après il cherche ce numéro d'offre dans une feuille Excel et si le numéro est trouvé envoie une autre InputBox s'affiche pour que l'utilisateur saisie le numéro d'installation correspondant. J'ai bricolé ce code qui marche mais le seul problème que le deuxième InputBox s'affiche dans tous les cas (Num offre non trouvé, on appui sur annuler dans le premier InputBox)!

Voici mon code:

Sub NumInstallation()
Dim NumeroInstallation As Long
Dim NumOffre As Variant
Dim R As Range, LI As Integer
deb: 'étiquette
NumOffre = InputBox("Saisie le N° d'offre: ", "Numéro d'offre")
Set R = Sheets("Clients Gagnés 2021").Columns(1).Find(NumOffre, , xlValues, xlWhole)
If NumOffre = False Then Exit Sub 'si bouton "Annuler", sort de la procédure
If Not R Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
    LI = R.Row 'définit la ligne LI de la première occurrence trouvée
Numeronstallation = InputBox("Saisie le N° d'installation: ", "Numéro d' installation")
Sheets("Clients Gagnés 2021").Range("AI" & LI) = Numeronstallation
Else 'sinon
    'si "Oui" au message, relance la boîte d'entrée C via l'étiquette "deb"
    If MsgBox("Saisie erronée ! Voulez-vous recommencer ?", vbYesNo, "ATTENTION") = vbYes Then GoTo deb
End If 'fin de la condition
End Sub

Qqn peux m'aider SVP.

Merci et bon début de la semaine :)

Bonjour Menal, bonjour le forum,

Je propose que "tu te bricoles" cette solution :

Sub NumInstallation()
Dim NumOffre As Variant
Dim R As Range, LI As Integer
Dim NumeroInstallation As Variant

deb: 'étiquette
NumOffre = Application.InputBox("Saisie le N° d'offre: ", "Numéro d'offre", Type:=1)
If NumOffre = False Or NumOffre = "" Then Exit Sub 'si bouton "Annuler", sort de la procédure
Set R = Sheets("Clients Gagnés 2021").Columns(1).Find(NumOffre, , xlValues, xlWhole)
If Not R Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
    LI = R.Row 'définit la ligne LI de la première occurrence trouvée
    Numeronstallation = Application.InputBox("Saisie le N° d'installation: ", "Numéro d' installation", Type:=1)
    If Numeronstallation = False Or Numeronstallation = "" Then Exit Sub 'si bouton "Annuler", sort de la procédure
    Sheets("Clients Gagnés 2021").Range("AI" & LI) = Numeronstallation
Else 'sinon
    'si "Oui" au message, relance la boîte d'entrée C via l'étiquette "deb"
    If MsgBox("Saisie erronée ! Voulez-vous recommencer ?", vbYesNo, "ATTENTION") = vbYes Then GoTo deb
End If 'fin de la condition
End Sub

Merci pour ton aide :)

Rechercher des sujets similaires à "macro inputbox"