Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

InputBox et Valeur saisie

  • Initiateur de la discussion Initiateur de la discussion Nonno 94
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Nonno 94

XLDnaute Occasionnel
Bonjour le Forum,

ne parvenant pas à le faire, je viens vous demander comment récupérer la valeur saisie dans une InputBox pour la comparer à celle d'une cellule.
Cette formule doit permettre, pendant l'exécution d'une Macro, d'ouvrir une MsgBox dans l'hypothèse où les 2 valeurs ne sont pas égales pour que la valeur saisie dans l'InputBox soit égale à celle de la cellule.

Exemple : La valeur de la cellule D2 est égale à "AV" (le nom de la feuille à sélectionner)
Si je tape "XC" dans l'InputBox, la msgBox doit s'afficher pour avertir que
"XC" n'est pas la bonne valeur à saisir et demander de resaisir la bonne valeur.

Le code de la macro est le suivant :

Sub Feuille_Chercher() 'Sélectionner la Feuille'
Dim maFeuil As String
On Error GoTo GestErreur
maFeuil = InputBox(Prompt:="Taper le nom de la Fiche à supprimer. ")
Sheets(maFeuil).Select
Sheets(maFeuil).Range("Q1").Select
Exit Sub
GestErreur:
MsgBox "Cette Fiche n'existe pas !"
End
End Sub

Remerciements pour vos réponses et bonne journée.

Nonno 94.
 
Dernière édition:
Re : InputBox et Valeur saisie

Bonjour Nonno 94,
Si j'ai bien compris....
VB:
Sub Feuille_Chercher2()
Dim maFeuil As String, NOK As Boolean, F As Worksheet
NOK = True
Do
    maFeuil = InputBox(Prompt:="Taper le nom de la Fiche à supprimer. ")
    If maFeuil = "" Then Exit Do
    For Each F In Worksheets
        If F.Name = maFeuil Then
            F.Activate
            F.Cells(1, 17).Select
            NOK = False
            Exit For
        End If
    Next F
    If NOK Then MsgBox "Cette Fiche n'existe pas !"
Loop While NOK
End Sub

Cordialement
 
Dernière édition:
Re : InputBox et Valeur saisie

Bonjour Efgé,

vifs remerciements pour la réponse.

Pour préciser ma demande :
- si la feuille n'existe pas (aucune feuille du classeur ne porte le nom saisi dans l'InputBox), la 1 ère Msg met fin à la procédure.
- si la feuille existe mais si elle n'est pas celle que je veux sélectionner et dont le nom est la valeur de la cellule D2 par exemple (la cellule D2 est dans la feuille"Récap"), la 2 ème MsgBox doit m'avertir que le nom saisi n'est pas celui de la feuille à sélectionner et me demander de saisir ce nom.

Ceci parceque, avec mon code "bricolé" actuel, je peux, par inadvertance (avec moi, tout est à craindre !) ne pas sélectionner la bonne feuille du classeur et poursuivre la procédure dans cette "mauvaise" feuille en cliquant sur le bouton "Oui" de la 1 ère MsgBox.
J'aimerais donc contrôler que j'ai bien saisi le nom de la feuille que je veux sélectionner.

Exemple : 5 feuilles dans le classeur dont les noms sont :"Récap", "A", "AV", "B", "C" et "D".
la valeur de la cellule D2 qui se trouve dans la feuille "Récap" est "AV". "AV" est donc la valeur que je dois saisir dans l'InputBox pour que la procédure se poursuive.
Si je saisis "L" dans l'Inputbox, = "Cette feuille n'existe pas" et la procédure s'arrête.
Si je saisis "D", nom d'une feuille qui existe mais qui n'est pas celui de la feuille que je veux sélectionner, je voudrais que la 2 ème MsgBox m'en avertisse et me demande de saisir "AV" pour que la procédure se poursuive.

J'espère être parvenu à être plus clair !
Bon courage et merci pour votre patience et votre ....indulgence.

Nonno 94.
 
Dernière édition:
Re : InputBox et Valeur saisie

Salut Nonno 94 et le forum
- Pourquoi refaire un sujet et ne pas continuer sur l'initial ?
- Pourquoi tu n'utilises pas les balises de code ?
- si la feuille existe mais si elle n'est pas celle que je veux sélectionner
Excel fait toujours ce que tu lui demandes de faire et parfois ce que tu désires !
Si le nom dans l'inputbox existe, il n'y a aucune raison qu'excel ne la sélectionne pas !
A+
 
Re : InputBox et Valeur saisie

Bonjour,

j'ai bien précisé que ce qui importe n'est pas que le nom existe mais que le nom saisi soit celui de la feuille que je veux sélectionner; ce nom étant certes celui d'une feuille qui "existe" mais surtout celui qui apparaît dans la fenêtre de contrôle.
La macro permettra de supprimer des feuilles (procédure irrémédiable !). Il importe donc d'être sur de supprimer la bonne feuille.
Pour cela, à mon sens, la seule façon de procéder est d'être SUR de bien saisir son nom et donc de comparer celui qui est saisi dans l'InputBox à celui qui DOIT être saisi et qui est dans la cellule de référence; en l'occurence la cellule D2 de la feuille "Récap".

Si d'autres façons d'obtenir cette assurance existent, je suis à l'écoute.
Remerciements et bonne fin de journée.
 
Re : InputBox et Valeur saisie

Re, Bonjour Gorfael ,
Bien d'accord:
- Pourquoi refaire un sujet et ne pas continuer sur l'initial ?
- Pourquoi tu n'utilises pas les balises de code ?

Une proposition avant de décr'ocher pour ce soir:
VB:
Sub Feuille_Chercher3()
Dim maFeuil$, NOK As Boolean, F As Worksheet, Rep, Secur$
Application.DisplayAlerts = False
NOK = True: Secur = Sheets("Recap").Cells(2, 4)
Do
    maFeuil = InputBox(Prompt:="Taper le nom de la Fiche à supprimer. ")
    If maFeuil = "" Then Exit Do
    For Each F In Worksheets
        If F.Name = maFeuil And maFeuil = Secur Then
            'Avertissement suplémentaire ********************************
            Rep = MsgBox("Vous allez supprimer la fiche " & maFeuil _
            & vbLf & "Confirmez-vous la suppression ?", _
            vbYesNo + vbExclamation + vbDefaultButton1, "Avertissement")
            If Rep <> vbYes Then Exit Sub
            'Fin de l'avertissement supplémentaire **********************
            F.Activate 'F.Delete 'Pour supprimer la feuille
            NOK = False
            Exit For
        ElseIf F.Name = maFeuil And maFeuil <> Secur Then
            MsgBox "Vous devez saisir le bon nom de fiche: " & Secur
            NOK = False
        End If
    Next F
    If NOK Then MsgBox "Cette Fiche n'existe pas !"
Loop While NOK
Application.DisplayAlerts = True
End Sub
Cordialement
 
Re : InputBox et Valeur saisie

Salut

Si... j'ai compris (comparaison avec le contenu de D2), essaie

Code:
Option Compare Text
Sub Feuille_Chercher()
    Dim maFeuil 'sous entendu type variant
    Do
        maFeuil = InputBox("", "Taper le nom de la Fiche à supprimer.")
        If maFeuil = "" Then Exit Sub
        If maFeuil <> Sheets("Récap").[D2] Then MsgBox "nom refusé.", vbExclamation, "Recommencer" Else Exit Do
    Loop
    Sheets(maFeuil).Select 'prévoir ici la suppression
End Sub
 
Re : InputBox et Valeur saisie

Bonsoir Mesieurs et bonsoir le Forum,

je réponds rapidement à vos précedents messages et vous en remercie avant de repartir en mission. je n'aurai donc pas le temps de tester les différentes propositions.
En tant que XLDnautes Accro et Barbatruc, vous n'aurez pas été sans noter que Nonno 94 promu récemment junior à l'ancienneté et évidemment pas au mérite "galère" quelque peu avec Excel. Ainsi quand Gorfael lui propose de "mettre des balises", il ne comprend pas trop et "balise" ! (non je ne suis pas militaire).
Par contre et là je m'avance prudemment, si, lorsqu'il s'interroge sur la raison pour laquelle je "refais un sujet et ne m'en tiens pas au projet initial", il entend par "sujet initial" mon code "bricolé" je suis très surpris.
Ceci parceque un XLDnaute émérite tel que lui ne peut pas s'en satisfaire car il n'est pas bon : il n'empêche pas en effet la suppression "malencontreuse" d'une fiche du classeur si la macro "Bonjour" est remplacée par une macro "Supprimer la fiche"; procédure à ma connaissance irréversible (mais je peux aussi me tromper sur ce point !).
Ma demande de modification du code à donc pour but de bloquer la procédure jusqu'à ce que le nom de la feuille que l'on veut supprimer soit saisi dans l'InputBox.
Avec "mon code", ce n'est pas le cas : il est possible de supprimer toutes les feuilles qui "existent" dans le classeur en cliquant sur le bouton "oui" de la boîte de dialogue "oui/non".
Pour terminer .....pour ce soir, il n'est pas non plus rigoureux a fortiori pour un XLDnaute émérite de considérer une feuille qui existe mais qui n'est pas la bonne comme n'existant pas; ce que pourrait suggérer l'utilisation de la seule 1 ère MsgBox si celle-ci devait considérer que toutes les feuilles existantes ou non autres que la feuille à supprimer ....n'existent pas. Vous aurez de toutes façons compris que "ça" non plus, je ne saurais faire !
Pour conclure et je vous "lâche" ....pour ce soir, "ma" rigueur qui est également la vôtre me conduit à souhaiter disposer d'un code qui :
1/ vérifie que la feuille existe
2/ que la feuille dans laquelle je "veux dire Bonjour" et que plus tard, avec une autre macro, je voudrai supprimer est bien la bonne et donc comparer le nom saisi dans l'InputBox au nom de la feuile que l'on VEUT supprimer; ce nom donné par une fonction "Recherche" ou une formule apparaissant dans une cellule de la feuille "Récap" du classeur.

Je vous souhaite une EXCELlente nuitée.
Cordialement.

Nonno 94.

P. S. : quand j'ai écrit en début de message que je répondais ......rapidement, je n'avais pas l'intention de faire de l'humour (ce n'est pas du tout mon genre !!).
Remerciements pour votre indulgence.
 
Re : InputBox et Valeur saisie

Re à tous, au fil
C'est bien la première foi qu'un seul post oblitère la totalite des réponses proposées.
C'est dommage, je pense que je n"étais pas loin de la solution demandée.
...avant de repartir en mission. je n'aurai donc pas le temps de tester les différentes propositions...
Enfin... ..."Chacun vois midi à treize heures (tout dépend du fuseau horaire)"...
Un Efgé un peu déçus.
Cordialement
 
Re : InputBox et Valeur saisie

Bonjour Efgé, bonjour le Forum,

Enorme malentendu peut-être dû à une imprécision et ....gros malaise chez Nonno à la lecture du message #9.
Je vous accode que je n'"excelle" pas en ....Excel. J'ai cependant appris d'autres choses dans d'autres domaines dont celui du travail :
1/ certaines professions peuvent s'exercer en horaires décalés.
2/ les "tâches accomplies" peuvent êtres qualifiées de "missions".
3/ la durée des missions peut être variable : ellle peut être longue, moyenne ou courte.
Celle que j'ai accomplie hier était courte et je suis donc de retour aujourd'hui pour tenter de réparer ce malentendu et présenter des excuses éventuelles qui si nécessaire seront, je l'espère, ...... acceptées.
A défaut d'être "déçu", je suis très contrarié si ce n'est très "vénère" !

Ceci étant, au retour de ma mission qui n'était pas sur Mars, j'ai testé votre code cher Internaute "Accro" et, si je peux me permettre, je ferai les remarques suivantes :
1/ si la feuille existe, il est parfait ("nickel" si vous préférez).
2/ en revanche, si la feuille n'existe pas, il fonctionne .................... également parfaitement !

Demeure encore pour moi une dernière difficulté : où insérer le code de la Macro "Supprimer" ?
J'ai vainement essayé en plusieurs endroits.
Actuellement le code d'"Essai" est le suivant pour la Macro "Bonjour" moins radicale dans ses effets :

Sub Bonjour()
With ActiveSheet
.Unprotect
.Range("L2").Value = "Bonjour"
.Range("A1").Select
.Protect
End With
End Sub

Peut-être accepterez-vous de m'aider pour cette ultime étape ?



Dans ces conditions, il me reste le plaisir de féliciter l'auteur et de le remercier chaleureusement.
Bonne journée à tous et à ......+.
Cordialement.

Nonno 94.

P. S. : une fulgurance ("les bras m'en tombent" !) = j'ai réussi à insérer le code de la macro "Bonjour"
Je vais donc pouvoir poursuivre la "mise au point" de mon projet !
J'ai peur que pou vous, d'autres questions soient à craindre !!!!
 
Dernière édition:
Re : InputBox et Valeur saisie

Bonjour Si, bonjour le Forum,

je vous remercie pour votre réponse.
J'ai testé votre code et, malheureusement, il ne fonctionne pas où peut-être devrais-je dire que je n'arrive pas à le faire fonctionner.

Ce que je constate si le nom à comparer est bien dans la cellule "D2" de la feuille "Récap" : tous les noms sont refusés.

Ainsi si le classeur contient la feuille "5", si la valeur de "D2" dans la feuille "Récap" est "5" (saisi) et si je tape 5 dans l'InputBox, la MsgBox affiche "nom refusé" !

Cordialement.
Nonno 94.
 
Re : InputBox et Valeur saisie

Bonjour Nonno 94, le fil, le forum
Bon maintenant que j'ai lu et si j'ai bien tout compris, ce qui n'est pas certain:
VB:
Sub Feuille_Chercher3()
Dim maFeuil$, NOK As Boolean, F As Worksheet, Rep, Secur$
Application.DisplayAlerts = False
Secur = "Bonjour": NOK = True
With Sheets("Recap")
    .Unprotect
    .Cells(2, 4) = Secur
    .Protect
End With
Do
    maFeuil = InputBox(Prompt:="Taper le nom de la Fiche à supprimer. ")
    If maFeuil = "" Then Exit Do
    For Each F In Worksheets
        If F.Name = maFeuil And maFeuil = Secur Then
            'Avertissement suplémentaire ********************************
           Rep = MsgBox("Vous allez supprimer la fiche " & maFeuil _
            & vbLf & "Confirmez-vous la suppression ?", _
            vbYesNo + vbExclamation + vbDefaultButton1, "Avertissement")
            If Rep <> vbYes Then Exit Sub
            'Fin de l'avertissement supplémentaire **********************
           F.Activate 'F.Delete 'Pour supprimer la feuille
           NOK = False
            Exit For
        ElseIf F.Name = maFeuil And maFeuil <> Secur Then
            MsgBox "Vous devez saisir le bon nom de fiche: " & Secur
            NOK = False
        End If
    Next F
    If NOK Then MsgBox "Cette Fiche n'existe pas !"
Loop While NOK
Application.DisplayAlerts = True
End Sub
Cordialement
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
586
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
1 K
L
  • Résolu(e)
2
Réponses
17
Affichages
3 K
Réponses
4
Affichages
881
G
Réponses
7
Affichages
1 K
gfgghbhg
G
J
Réponses
22
Affichages
3 K
jui42
J
Réponses
6
Affichages
847
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…