Msgbox ou InputBox ou Userform ?

Calvus

XLDnaute Barbatruc
Bonjour,

Je ne trouve pas de solution à ma question, à part peut être essayer la création d'un userform.

Manifestement, la Msgbox ne permet que VbYes, ou VbNo.

J'aimerais, dans un code existant, pouvoir ajouter une Msgbox à laquelle on répondrait par 1 ou 2 par exemple (ou "Rouge ou vert"). La réponse irait vers un If :

Donc un truc du genre :
If VbRouge Then Goto...

Else...

Est ce possible ?

Merci
 

Calvus

XLDnaute Barbatruc
Re : Msgbox ou InputBox ou Userform ?

Bonjour,

Alors formidable les déclarations ! :mad::mad:

Avec la proposition #21 de Si, j'ai une erreur me disant Variable non définie !

Cela concerne Lst.List

Le code appelant :
Code:
UserForm5.Show

Le code de l'usf :
Code:
Private Sub UserForm_Initialize()
  Lst.List = Array("Oui", "Non")
End Sub

J'ai eu beau essayé Dim as string, range, camembert ou pestiféré, rien n'y fait !
Et pourtant, dans ton classeur, Si, il n'y a aucune déclaration et ça fonctionne.... Comprends pas...

Merci
 

Lone-wolf

XLDnaute Barbatruc
Re : Msgbox ou InputBox ou Userform ?

Re Calvus

J'ai fait un test avec le fichier en #21 et aucune erreur

Code:
Private Sub UserForm_Initialize()
  Lst.List = Array("Oui", "Non")
End Sub
Private Sub Lst_Change()
  If Lst = "Oui" Then
    MsgBox "j'ouvre le répertoire ... 1", , ""
  Else
    MsgBox "j'ouvre le répertoire ... 2", , ""
  End If
  Unload Me
End Sub
 

Calvus

XLDnaute Barbatruc
Re : Msgbox ou InputBox ou Userform ?

Re,

---------------------------------------

J'ai compris l'erreur en te répondant !

Lst, c'est le nom qu'il a donné à la listebox. Il fallait que je modifie le nom dans les propriétés de mon usf !

En revanche, dans son exemple, il affiche 2 lignes l'une sur l'autre sans ascenseur sur le coté. Je n'y arrive pas dans le mien ! Les propriétés me semblent pourtant bien les mêmes.

Bl Si.PNG Transport.PNG

Tu as une idée ?

Merci
 

Pièces jointes

  • Transport.PNG
    Transport.PNG
    2.6 KB · Affichages: 26

Calvus

XLDnaute Barbatruc
Re : Msgbox ou InputBox ou Userform ?

Re,

J'ai ajouté un second USF après le premier.
Si j'exécute la macro pas à pas, ça fonctionne. Si le la lance en entier, le 1er se charge, mais le second n'apparait pas. excel remplit tout seul (de façon aléatoire certainement)..

Pour pallier l'inconvénient, j'ai ajouté ce bout de code :
Code:
Application.Wait Time + TimeSerial(0, 0, 1)

Quelqu'un sait pourquoi ? C'est juste par curiosité car ça fonctionne bien comme ça.

Merci
 

Lone-wolf

XLDnaute Barbatruc
Re : Msgbox ou InputBox ou Userform ?

Re Calvus,

je reviens à la charge avec un autre modèle ;)

Ecrit les chiffres de 1 à 4.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("c3") <> "" Then Call Message
End Sub


Public Result$, x
Private Function AfficheSoulons$()
    AfficheSoulons$ = "     *** Liste des soulons ***" & vbCrLf & vbCrLf & _
                       "          1er Degré" & vbCrLf & _
                       "          2ème Degré" & vbCrLf & _
                       "          3ème Degré" & vbCrLf
End Function

Sub Message()
Dim Status As Long

x = Feuil1.Range("c3").Value
    Status = x
    Result$ = Choose(Status, _
                    "Martini Seck : Alcoolique à 25%", _
                    "Wodka Orange : Alcoolique à 50%", _
                    "Wisky Ontherock : Alcoolique à 100%", _
                    AfficheSoulons$)
         MsgBox (Result$)
       If x >= 4 Then: MsgBox "Vous m'avez soulé !!", , "Alcoolisme": Range("c3").ClearContents: Exit Sub
End Sub


lone-wf.gif
 

Pièces jointes

  • lone-wf.gif
    lone-wf.gif
    4.9 KB · Affichages: 32
Dernière édition:

Discussions similaires