QUESTIONS SUR LA METHODE "InputBox"

Bonjour à toutes et à tous,

1) Avec la méthode "InputBox" Microsoft Office affiche d'office deux boutons : "OK" et "Annuler"

Je n'ai pas de souci avec "OK" il renvoie la valeur saisie

Par contre, "Annuler" renvoie "" ce qui n'est pas clair pour l'utilisateur à qui il vaudrait mieux proposer en plus de "OK" . . . "NON" (retour à "InputBox") et "ABANDON" à tester par le programme pour faire ce que doit dans ce cas.

Y-a t-il moyen de changer cela ?

2) Si par ereur l'utilisateur au lieu de saisir du texte ou du numérique appuie sur une touche directionnelle, la donnée entrée est la position du curseur, soit par exemple $C$8

Est-ce normal ?

Bonjour,

Dommage que tu ouvres un nouveau fil car il s'agit de la suite de ceci je suppose ... -> https://forum.excel-pratique.com/viewtopic.php?p=68009 dans lequel NAD t'avait proposé quelque chose.

Ce qu'il faut savoir :

  • Quelles sont les actions demandées pour OUI, NON et ABANDON ?
  • Quel est le critère pour l'ouverture de l'inputbox ou en fonction de quoi l'input doit apparaitre ? Valeur d'une cellule, bouton ?
  • Quel est le code que tu utilises ?

A te relire

Dan

Bonjour Nad Dan,

le code que j'utilise est :

p1 = "INTRODUISEZ LA DATE (sous forme MM/AAAA)"

New_date = Application.InputBox(prompt:=Chr(13) & Chr(10) & Chr(13) & Chr(10) & p1, Type:=2)

(car je ne connais que ça)

et VB m'affiche deux boutons "OK" et "Annuiler"

si clique sur "OK" je fais tous les tests de validation pour la date

mais j'aimerais au lieu de "Annuler" avoir au moins la possibilité "Abandon" (testable pour éventuellement sortir de la procédure) car "Annuler" ne me sert à rien.

re,

Le code que tu me donnes n'est pas complet.

Dans le fil précédent, NAD et Sylvain t'ont donné des solutions aussi. Là je ne vois pas que tu les utilises.

Sinon, merci de répondre à mes questions point par point afin de te donner quelque chose qui répond à tes attentes.

Le cas échéant on risque de s'éterniser à faire des posts inutiles.

Merci et à te relire

Dan

Bonjour Nad Dan,

1) En ce qui concerne InputBox j'ai examiné le lien de Sylvain "MyDearFriend" mais avant d'utiliser cette solution "hors standard" je souhaitais exploiter au mieux l'InputBox standard de Microsoft Office. D'où ma question sur InputBox pour lequel j'ai aussi examiné l'aide VBA sans trouver (ou comprendre) de solution pour mon problème . . .

Tu me dis que mon code est incomplet, tu as certainement raison, mais je ne vois pas ce qui manque.

2) En ce qui concerne MsgBox, j'ai aussi exploré l'aide VBA qui indique en particulier une solution qui me conviendrait bien avec "ABORT" mais je n'arrive pas à la faire fonctionner : quand j'utilise "vbYesNoAbort" le "Abort" ne s'active pas.

Voir le fichier joint macro "essai"

https://www.excel-pratique.com/~files/doc2/hsJvJessai.xls

re,

Voici le code corrigé.

Sub essai()
'
' essai Macro
' Macro enregistrée le 08/06/2009 par utilisateur
'
    Sheets("Visu").Select
    p3 = "ETES  VOUS  D'ACCORD ?"
'
    Dim Reponse As Integer
    Reponse = MsgBox(p0 & p1 & p2 & p1 & Chr(10) & p3, vbYesNoCancel)
'

    Select Case Reponse
        Case vbYes
            Range("B10").Value = "OUI"
        Case vbNo
            Range("B10").Value = "NON"
        Case vbCancel
            Range("B10").Value = "ABORT"
    End Select
'
End Sub

Tu n'utilisais pas la bonne instruction pour les boutons:

vbYesNoAbort n'existe pas. J'ai remplacé vbYesNoAbort par vbYesNoCancel.

Bonjour Pelerin, Dan et Ready,

Pelerin, un autre lien qui j'espère pourra t'aider : MsgBox et InputBox

Courage...!

Re,

Tu ne peux pas utiliser ABORD dans les instructions VBYES Etc...

Donc dour le Point 1 voici le code que tu peux mettre :

Sub IpB()
Dim New_Date
Dim Reponse As Integer
Sheets("Visu").Select
New_Date = Application.InputBox("INTRODUISEZ LA DATE (sous forme MM/AAAA)")
Reponse = MsgBox("ETES  VOUS  D'ACCORD avec la date du ?" & New_Date, vbYesNoCancel)
If Reponse = vbYes Then
    Range("B10") = New_Date
ElseIf Reponse = vbNo Then
Call IpB
Else
End If
End Sub

Dès que tu diras Non, la procédure sera relancée.

Pour le point 2 :

Sub msg()
Dim Reponse As Integer
Sheets("Visu").Select
Reponse = MsgBox("ETES  VOUS  D'ACCORD ?", vbYesNoCancel)
If Reponse = vbYes Then
    Range("B10") = "OUI"
ElseIf Reponse = vbNo Then
    Range("B10") = "NON"
Else: Range("B10") = "ABANDONNER"
End If
End Sub

Amicalement

Dan

Merci à tous les intervenants,

cette fois j'ai bien compris.

Excusez ma lourdeur !

Une question complémentaire à toutes et à tous,

dans le fichier joint :

https://www.excel-pratique.com/~files/doc2/nHHeGForum.xls

si l'utilisateur, après avoir commencé à saisir sa date veut revenir à gauche en utilisant une touche directionnelle, une adresse apparaît sous forme $C$2 (en fait celle de la dernière cellule active)

Est-ce normal ?

Bonsoir,

Pour contourner ce problème, j'ai enlevé la protection dans la cellule C7.

Ensuite, j'ai protégé la feuille.

J'ai relancé l'affichage de la boîte de message et l'appui su les touches des flèches de direction ne provoque plus d'affichage de la cellule dans la zone de saisie.

Fichier

Désolé readi,

Ca ne marche toujours pas chez moi :

En fait je constate 2 problèmes :

1) Double clic sur la cellule de lancement enC7 appelle bien la macro et la demande d'introduction de date, mais ça charge automatiquement dans la zone de saisie "=$C$7"

Par contre, avec un simple clic la zone de saisie est bien vierge au départ

2) je maintiens qu'ensuite si on utilise la touche directionnelle à gauche ou à droite ou en haut ou en bas, ça affiche l'adresse du déplacement par rapport à C7

Re,

Dans ton fichier, il n'y a rien de ce que je t'avais proposé depuis le début.

C'est un deuxième pb ??

Dan

re,

As-tu fait un essai avec mon fichier ?

Quelle est ta version d'Excel ?

Merci

re,

J'ai oublié de donner une précision lors de la protection de la feuille.

Il faut décocher la case "Sélectionner les cellules verrouillées".

Peux-tu refaire un essai comme je te l'ai indiqué ?

Merci

readi . . . c'est la cata !

1) je suis sous Vista avec Microsoft Office Excel 2003 car j'ai viré OOo.3 qui est de la . . . .

2) J'ai réenregistré ton fichier dans un nouveau classeur et j'ai désactivé les macros pour pouvoir accéder à C7 sans exécution. Ensuite j'ai :

  • Enlevé la protection feuille
  • Dévérouillé la cellule C7
  • Remis la protection feuille (sans aucune coche)
  • quitté en enregistrant les modifs
  • Relancé le classeur en activant les macros

Résultat : accès à cellule C7 impossible en lecture seule (feuille protégée (alors que j'ai dévérouillé la protection de C7 ? ? ? )

3) j'ai recommencé la même chose en déverrouillant C7 et sans protection de feuille et là, j'ai le même problème qu'avant (c'est normal).

4) si je verrouille C7 sans protection feuille même résultat que 3)

5) Curiosité :

Quand j'appelle ma macro par simple clic sur C7 la fenêtre de réception de l'InputBox s'affiche vierge

Quand je fais double clic la fenêtre de l'Input Box affiche d'office "=$C$7"

Bonjour Nad Dan,

oui c'est un nouveau problème sur InputBox (mes questions précédentes ont trouvé réponses grâce à vos suggestions et je crois maîtriser maintenat correctement Input et Msg Box)

Mais maintenant . . . voir les correspondances pécédentes échangées avec readi

re,

Ok Pelerin. Merci de ta réponse. Je te laisse continuer avec Readi.

Bon WE

Dan

readi,

ceci n'est pas du tout un rappel à l'ordre, c'et simplement pour faire remonter ce fil de façon à ce que tu le retrouves plus facilement, car je vais te répondre à un autre fil en te rappelant que je n'ai pas encore de solution pour celui là (InputBox)

Bonjour,

Effectivement, en effectuant un double clic dans la cellule, cela affche l'adresse de la cellule dans la zone de saisie de la fenêtre InputBox.

Dans ce cas, je ne vais pas pouvoir te donner une solution pour éviter ce cas.

Par contre, je peux te proposer une autre solution. A la place de passer par une InputBox, tu crées une userform avec les mêmes caractéristiques que l'inputbox et comme cela tu n'auras plus le souci de l'affichage de l'adresse de la cellule sélectionnée.

8essai-v1-3.xlsm (49.22 Ko)
Rechercher des sujets similaires à "questions methode inputbox"