Boite de dialogue

Messages postés
29
Date d'inscription
lundi 30 juillet 2018
Dernière intervention
14 août 2018
- - Dernière réponse : cs_Le Pivert
Messages postés
5601
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
12 décembre 2018
- 9 août 2018 à 17:22
Bonjour les amis,
J'ai besoin de votre aide !!!
Je souhaite faire apparaître des boîtes de dialogue dès l'ouverture d'un fichier Excel.
Mon objectif est de remplir 4 cases à partir des réponses données sur les boites de dialogues qui s'affichent successivement l'une après l'autre ! Jusqu'à présent j'arrive à afficher les boites de saisi mais je ne sais vraiment comment transférer les réponses sur des cases données sur ma page Excel !
Le code que j'ai pu faire jusqu'à présent est ci-dessous et je n'ai aucune idée comment faire évoluer les choses !!

Je vous serai très reconnaissant les amis et je vous remercie d'avance !

Sub Clé_logiciels_codes()

'.....................Boite de dialogue 1.................................................
 Saisie = InputBox("Veuillez entrer le nombre de clefs fournies ")
If Saisie > 0 Then
  If Saisie = 0 Then 'Je ne sais pas comment mettre un if.. else If en place !
'J'ai un problème à ce niveau : normalement si l'utilisateur donne comme réponse zéro la feunêtre qui doit s'ouvrir est : donner une solution ou un alternatif aux clés
 Saisie = InputBox("Veuillez saisir la solution ou l'alternatif des clés")
 Saisie = InputBox("Veuillez entrer le type de clef ")
 Cancel = Tru ' cancel = True : la procédure de fermeture aborte
 Exit Sub
 End If
 End If
'.....................Boite de dialogue 2 (après avoir fini la 1ere on passe à la deuxième)..................................................
 Saisie = InputBox("Veuillez entrer la liste des logiciels sur la même ligne en bas(séparation par virgule)")
'lidée ici et d'enregistrer les informations fournies dans une case du classeur
'...........Boite de dialogue 3..............................................................................................................
 Saisie = InputBox("Veuillez entrer la liste des codes d'accès sous la forme :{Role_du_code : Le_code_*****}")
'...........Boite de dialogue 4..............................................................................................................
 Saisie = InputBox("Veuillez entrer la liste des liens utiles :{Role_du_lien1 : Le_lien_*****}")
'Et sinon si tout baigne on continue...
 MsgBox "Merci :)"
 MsgBox "PS : Le reste du document se rempli manuellement :)"
End Sub

Cdt,
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
5601
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
12 décembre 2018
1
Merci
Bonjour,

comme ceci:

Dim clef As Integer
clef = Application.InputBox("Veuillez entrer le nombre de clefs fournies ", "Saisie numérique", Type:=1)
Do While clef = 0
   MsgBox "Vous devez saisir un nombre positif!"
  clef = Application.InputBox("Veuillez entrer le nombre de clefs fournies ", "Saisie numérique", Type:=1)
Loop
Sheets("Feuil1").Range("A1") = clef 'adapter nom de la feuille et de la cellule


faire la même chose pour le reste

voilà


pour plus de détail sur l'InputBox voir ceci:


https://www.commentcamarche.com/faq/41585-vba-inputbox



Merci cs_Le Pivert 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CodeS-SourceS

Codes Sources a aidé 102 internautes ce mois-ci

kaskssou
Messages postés
29
Date d'inscription
lundi 30 juillet 2018
Dernière intervention
14 août 2018
-
Bonjour cs_Le Pivert,

Merci pour cette réponse ! ça m'a aidé à mettre en place mon petit formulaire !

J'ai une question svp ! Est ce que c'est possible d'ouvrir une boite de dialogue à 3 volets ? c.-à-d. de mettre en place une boite de dialogue qui va remplir 3 case et non pas une seule !

Exemple :

Boite de dialogue :" Veuillez saisir les noms des 3 participants "

L'utilisateur saisi les participants dans la Bdg (consécutivement)
Jean Luc
Jean Marc
Jean Baptiste

Par la suite chaque noms prend automatiquement une case (peu importe le classement)
P11
P12
P13

Bien cordialement,
Commenter la réponse de cs_Le Pivert
Messages postés
5601
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
12 décembre 2018
1
Merci
Voilà a adapter:

Sub InputBoxSPECIAL()
Dim X, Y, NOM$, PRENOM$, VILLE$
X = InputBox(vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & "1er Champ" & Space(5) & "2ème Champ" & Space(5) & "3ème Champ", "INPUTBOX SPECIALE", "JEAN , BONBLANC , DE PARIS")
Do While X = ""
   MsgBox "Vous devez saisir 3 noms séparés par une virgule "
X = InputBox(vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & "1er Champ" & Space(5) & "2ème Champ" & Space(5) & "3ème Champ", "INPUTBOX SPECIALE", "JEAN , BONBLANC , DE PARIS")
Loop
Y = Split(X, ",")
NOM$ = Y(0)
PRENOM$ = Y(1)
VILLE$ = Y(2)
Sheets("Feuil1").Range("A1") = NOM 'adapter nom de la feuille et de la cellule
Sheets("Feuil1").Range("A2") = PRENOM 'adapter nom de la feuille et de la cellule
Sheets("Feuil1").Range("A3") = VILLE 'adapter nom de la feuille et de la cellule
End Sub

Merci cs_Le Pivert 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CodeS-SourceS

Codes Sources a aidé 102 internautes ce mois-ci

kaskssou
Messages postés
29
Date d'inscription
lundi 30 juillet 2018
Dernière intervention
14 août 2018
-
Merci cs_Le Pivert ,

Alors j'ai essayé d'adapter le code à mon besoin mais j'obtiens une erreur au niveau de la variable Y ! Erreur d'exécution 13"

Dim X, Y, Code1$, Code2$, Code3$, Code4$, Code5$
f = Sheets("Accueil").Range("S9")
If f = "" Then
MsgBox "Veuillez saisir les codes d'accès séparés par une virgule"
X = InputBox(vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & "Code1" & Space(5) & "Code2" & Space(5) & "Code3" & Space(5) & "Code4" & Space(5) & "Code5", "INPUTBOX SPECIALE", "xxxxxx , xxxxxx , xxxxxx, xxxxx, xxxxx")
Do While X = ""
   MsgBox "Vous devez saisir 5 codes séparés par une virgule "
X = InputBox(vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & "Code1" & Space(5) & "Code2" & Space(5) & "Code3" & Space(5) & "Code4" & Space(5) & "Code5", "INPUTBOX SPECIALE", "xxxxxx , xxxxxx , xxxxxx, xxxxx, xxxxx")
Loop
Y  = Split(X, ", ", ", ") 'Erreur à ce niveau : incompatibilité de type"
Code1$ = Y(0)
Code2$ = Y(1)
Code3$ = Y(2)
Code4$ = Y(3)
Code5$ = Y(4)
Sheets("Accueil").Range("S9") = Code1$
Sheets("Accueil").Range("R10") = Code2$
Sheets("Accueil").Range("R11") = Code3$
Sheets("Accueil").Range("R12") = Code4$
Sheets("Accueil").Range("R13") = Code5$
End If
cs_Le Pivert
Messages postés
5601
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
12 décembre 2018
-
Y = Split(X, ",")


Y  = Split(X, ", ", ", ") 'Erreur à ce niveau : incompatibilité de type"


Tu ne vois pas la différence!!!!!!!!!!!

voir ceci pour le Split

https://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/#LI-I
Commenter la réponse de cs_Le Pivert

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.