Boite de dialogue personnalisee

perenthian

XLDnaute Nouveau
Bonjour,

je voudrais créer une boite de dialogue avec 3 boutons "all" "manual" et "cancel", et lorsqu'on clique sur l'un d'eux, ils vont chercher des infos différentes (efface les données de la colonne et arrêt de la macro pour cancel).

Voici mon code :
Code:
If MsgBox("Chose a type", vbYesNoCancel, "Information for RAO") = vbYes Then
    number = InputBox("how many headings do you want to draw", "number of RAO", "number of RAO")
        Worksheets("General1").Activate
        Range("D10") = "Headings (°) to draw"
        For i = 1 To number
            Value = InputBox("enter a value of the heading to draw (in ascending order)", "Headings", "heading")
            Range("D" & i + 10) = Value
'        head(i - 1) = Range("D" & i + 10)
    Next i
ElseIf MsgBox("Chose a type", vbYesNoCancel, "Information for RAO") = vbNo Then
    '
ElseIf MsgBox("Chose a type", vbYesNoCancel, "Information for RAO") = vbCancel Then
    Range("D:D").ClearContents
    End
End If

Cependant cela ne marche pas :
si je clique sur cancel, le boite de dialogue apparaît 3 fois comme le nombre de boutons.
Et impossible de sortir du format yes no cancel.

Je suis preneur d'un petit coup de main ;-)
Merci
 

Pierrot93

XLDnaute Barbatruc
Re : Boite de dialogue personnalisee

Bonjour,

bah normal, tu relances la "msgbox" si la condition n'est pas vérifiée, perso je coderais plutôt ainsi, à adapter à ton projet :
Code:
Dim r As Integer
r = MsgBox("Chose a type", vbYesNoCancel, "Information for RAO")
If r = vbYes Then
    MsgBox "ok"
    ElseIf r = vbNo Then MsgBox "Nok"
    ElseIf r = vbCancel Then MsgBox "cancel"
End If

bonne journée
@+
 

perenthian

XLDnaute Nouveau
Re : Boite de dialogue personnalisee

Merci je vais chercher dans cette direction.

Autre question : j'ai plusieurs boite de dialogue qui apparaissent successivement. J'ai un bouton cancel qui doit permettre de sortir a n,importe quel moment du code : comment est il judicieux de coder cela ? Créer un macro dédiée a cela ?
 

Misange

XLDnaute Barbatruc
Re : Boite de dialogue personnalisee

Bonjour
En complément de la réponse de Pierrot 16K
quelques jolis exemples de ce qu'on peut faire avec du code HTML ou autre pour avoir de belles boites de dialogue
Ce lien n'existe plus
Ce lien n'existe plus
 

perenthian

XLDnaute Nouveau
Re : Boite de dialogue personnalisee

Mais est ce qu'il n'y a pas moyen de faire plus général ?

En fait, je rentre des dizaines d'infos avec plusieurs boites de dialogues grâce a des boucle if ou while, et je me demandais s'il n'y avait pas moyen de créer quelque chose d’extérieur plutôt que de rajouter une ligne comme tu proposes dans les boucles (bonjour les modifs :) )
 

perenthian

XLDnaute Nouveau
Re : Boite de dialogue personnalisee

Re,

j'ai réussi a me débrouiller finalement.
J'ai juste un pb la dessus :
si je fais If repertoire <> "" Then ou repertoire est connu comme un String ça marche
si je fais If number <> "" Then ou number est connu comme un Integer ça ne marche pas.

Pourquoi ?
 

Misange

XLDnaute Barbatruc
Re : Boite de dialogue personnalisee

Bonjour
Avant de faire des dizaines de boites mieux vaut les tester complètement...
Ben non la solution proposée par Pierrot est certainement la plus simpe et la plus logique. Si tu fais un "truc extérieur" de toutes façons il faudra bien que tu l'appelles depuis ton code actuel = rajouter des lignes donc autant rajouter d'emblée les bonnes et les plus simples.

Mais si tu as des tas de boites de ce genre, un formulaire est quand même à priori bien plus simple à gérer ...
 

perenthian

XLDnaute Nouveau
Re : Boite de dialogue personnalisee

Je m'en sors finalement avec la solution de Pierrot93.

Pour le formulaire, je dirai trop tard vu la quantité codée :/ D'autant plus que je "corrige" un fichier déjà codé.

Me reste a résoudre le problème ci-dessus et j'aurai ce que je souhaite.
 

Discussions similaires

Statistiques des forums

Discussions
312 793
Messages
2 092 157
Membres
105 241
dernier inscrit
Mixlsm