Boite de dialogue

kaskssou Messages postés 37 Date d'inscription lundi 30 juillet 2018 Statut Membre Dernière intervention 18 juillet 2019 - 8 août 2018 à 17:18
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 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,

2 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
Modifié le 8 août 2018 à 18:33
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



1
kaskssou Messages postés 37 Date d'inscription lundi 30 juillet 2018 Statut Membre Dernière intervention 18 juillet 2019
9 août 2018 à 10:39
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,
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
9 août 2018 à 11:15
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

1
kaskssou Messages postés 37 Date d'inscription lundi 30 juillet 2018 Statut Membre Dernière intervention 18 juillet 2019
Modifié le 9 août 2018 à 14:12
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
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
Modifié le 9 août 2018 à 17:25
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
0
Rejoignez-nous