Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
J'aurais besoin d'une boîte de saisie en VBA avec un titre, trois cases de valeurs à saisir par exemple bois, fer et cuivre.
Ces trois valeurs saisies doivent ensuite être affectées à trois cellules portant les noms din, ding et dong (toujours par exemple).
Comme je ne peux pas enregistrer une telle macro et que je suis trop faible en VBA, je fais donc appel à vous.
Merci phlaurent55 et surtout merci à toi Dormeur74
La réponse est excellente. Mais, comme je l'ai écrit plus haut, je suis vraiment nul en VBA 😡 et il va me falloir un certain temps pour comprendre ta réponse. Par exemple comment créer la boîte de dialogue, comment modifier le prg bref je sens que je vais m'amuser !!!
Alors on y va. Comme tu vas pouvoir le constater, c'est assez simple.
Tu fais ta mise en forme comme dans l'exemple (cellules A1 à C4).
1- On nomme les cellules
.on clique sur A4 puis on appelle le menu Insertion...Nom...Définir...
.sur la ligne de saisie on tape : "DIN" , on clique sur le bouton "Ajouter" et OK
.on fait pareil avec les cellules B4 et C4.
2- Préparation de la macro
.menu Outils...Macro...Nouvelle macro
.dans la fenêtre "Enregistrer une macro", on accepte le nom "Macro1" en cliquant sur « OK »
.menu Outils...Macro...Arrêter l'enregistrement
.menu Outils...Macro...Visual Basic Editor (raccourci Alt+F11)
.dans la fenêtre de gauche (VBA Project) double-clic sur Modules et double-clic sur Module1
.on tape les deux instructions qui vont faire apparaître la boîte de saisie entre Sub Macro1() et End Sub, ce qui va donner :
Code:
Option Explicit
Sub Macro1()
Load UserForm1
UserForm1.Show
End Sub
3 – Création de la feuille de saisie
.menu Insertion…UserForm
.on clique sur la feuille à l’aide du bouton droit et on sélectionne la commande Propriétés (raccourci F4)
. à côté de Caption, on entre « Titre de la boîte »
. on ouvre la boîte à Outils par Affichage…Boîte à Outils
. on clique sur l’outil matérialisé par un A majuscule (étiquette) et on dessine une étiquette sur la feuille
. dans la fenêtre des propriétés, double-clic sur « Label1 » (Caption), on entre « DIN :» à la place. On fait pareil pour « Ding :» et « Dong :»
. on clique sur l’outil « Zone de texte » matérialisé par un « ab| » et on dessine une zone sur la feuille
. dans la fenêtre des propriétés, on change la propriété (Name) et on remplace TextBox1 par DIN. On fait la même chose pour DING et DONG.
. dans la boîte à outils, on sélectionne l’outil « Bouton de commande » matérialisé par un rectangle en relief et on dessine un bouton sous les zones de saisie
. on remplace le Caption « CommandButton1 » par « OK »
. double-clic sur le bouton « OK » et on entre le code, ce qui doit donner :
Option Explicit
Code:
Private Sub CommandButton1_Click()
Range("DIN").Value = DIN.Text
Range("DING").Value = DING.Text
Range("DONG").Value = DONG.Text
Unload Me ' On cache la boîte de saisie
End Sub
4- Mise en place d’un bouton sur l'interface
. on revient au tableur par Alt+F11
. menu Affichage…Barres d’Outils…Formulaire (ne pas confondre cette boîte avec Affichage…Barres d’outils…Boîte à outils Contrôle)
.sélectionner l’outil « Bouton » et dessiner un bouton n’importe où dans la feuille
.dans la fenêtre qui s’est ouverte (« Affecter une macro ») sélectionner Macro1. OK
.on clique dans la zone grisée autour du bouton et on le met au bon endroit (glisser-poser)
.on clique sur le bouton avec le bouton droit de la souris, on sélectionne la commande « Modifier le texte » et on remplace « Bouton1 » par « Ouvrir la boîte de saisie ».
. on referme la boîte à outils.
Salut à toi Dormeur74
Tous mes compliments, bravo tu es excellent dans tes explications.
J'ai fait un essai sur un classeur vierge et, à ma grande surprise et un grand bonheur, j'ai bien réussi un tout petit bout pour voir : changer le titre, une étiquette, une variable, un bouton ok et un bouton annuler. Et ça fonctionne!!!!
Pour être au top, il me faudrait dans cette boîte de saisie une liste déroulante. La valeur apparaitrait dans une cellule nommée et la liste des textes de la liste déroulante serait créée dans la feuille elle même. Est-ce possible???
Enfin dernière chose, je crée une application sous office 2007. Les personnes comme toi ayant office 2003 pourront-elles se servir de cette application?
Encore merci et un grand bravo à toi
J'oubliais comment empêcher les successions d'affichage d'écran lors de l'exécution d'une macro??? Et encore bravo : imagine j'ai réussi à créer cette boîte de saisie alors que je m'en sentais totalement incapable. Serais-je devenu "bon"? Non je rigole je suis tjrs aussi nul crois moi
Que tu te sentes des ailes parce que tu as eu la patience de suivre pas à pas ce pensum est une juste récompense.
Bon, je ne sais pas comment intercepter le rafraîchissement de l'écran lors de l'exécution d'une macro, parce que je ne m'y suis jamais intéressé de près.
Enfin dernière chose, je crée une application sous office 2007. Les personnes comme toi ayant office 2003 pourront-elles se servir de cette application?
Halte : danger !
- tu peux, par exemple utiliser une nouvelle fonction implémentée sous Office 2007 ; elle ne sera pas reconnue sous Office 2003.
- tu peux tomber également sur un réseau d'entreprise où l'administrateur n'acceptera pas un composant aussi simple que le Calendar (je viens de le vivre)
- tu peux enfin (étage supérieur) faire appel à des API incompatibles au niveau du système : une API pour un processeur 64 bits ne fonctionnera pas forcément en 32 bits.
Donc tout un tas de raisons pour te dire a priori non.
"a priori non" ne signifie pas que ça ne fonctionnera pas, mais qu'il faudra tester le programme sous toutes ses coutures.
Ci-joint un petit exemple avec une liste contenant 15 pierres précieuses.
- Si on sélectionne la pierre n° 10, les pierres de 10 à 15 s'afficheront.
- Si on fait un couper-coller de la cellule nommée n'importe où dans la feuille, ça marchera toujours.
Je vais tester chez un copain avec le 2003. Mais comme je n'utilise que les formules rechercheV, somme.si cela devrait coller à moins que les macros .... Je te tiendrais au courant.
Pour la liste déroulante, impeccable! Je vais seulement bidouiller pour n'afficher que l'article sélectionné et non pas l'article et le reste de la liste.
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.