| ||||||||
Astucien | bonjour
j'aimerais apprendre à faire fonctionner un bouton dans excel
j'ai une macro genre formulaire de saisie mais j'aimerais que les données saisies soient envoyées uniquement lorsque je clique sur ce bouton
un peu comme un clic sur "entrée"
le bouton doit mettre en marche la macro
il faudrait bien sur que celà se fasse à chaque saisie de nouvelles données
si pas assez clair je reviens
merci
| |||||||
Publicité | ||||||||
Astucien ![]() | salut
menu Affichage/barre d'outils/boite à outils Controles
sélectionner le bouton puis avec le curseur le dessiner sur ta feuille
ensuite clic droit sur le bouton/propriétés dans la ligne "caption" mettre ce que veux voir apparaitre comme texte sur le bouton
ensuite clic droit sur le bouton/visualiser le code
ça ouvre VBE sur ta feuille VBA
avec ça :
Private Sub CommandButton1_Click()
End Sub
il ne te reste qu'a coller ta macro entre ces 2 lignes
par contre pour la macro elle-même je ne peux pas t'aider [confus] | |||||||
Astucien ![]() | Bonsoir pascal_21,
L'explication de usularrakis est excellente.
Ta macro ne fonctionnera que si tu cliques sur le bouton. Il faudra que tu penses à cliquer dessus à chaque fois que tu en auras besoin. Elle ne sera pas automatique pour chaque saisie de nouvelles données.
Cependant, il existe une macro automatique. Dans ce cas, le bouton ne sert à rien.
Modifié par Marmotte18 le 15/12/2005 16:28 | |||||||
Astucien ![]() | Bonsoir,
Quand tu disposes de ta macro, tu as encore une procédure beaucoup plus simple pour créer le bouton :
- Clique sur Affichage / barre d'outils / formulaire
- Clique sur l'icône "bouton"
- Dessine ce bouton sur ta feuille
- Clique sur le nom de ta macro
- Clique sur OK
Modifié par Marmotte18 le 15/12/2005 16:49 | |||||||
Astucien | Private Sub Worksheet_Change(ByVal Target As Range)
Dim i%, j, k%
Set j = Application.Intersect(Target, Range("galopin"))
If Not j Is Nothing Then
Select Case Target.Address
Case "$C$5": k = 3
Case "$H$5": k = 4
Case "$C$9": k = 5
Case "$C$13": k = 6
Case "$C$16": k = 7
Case "$H$10": k = 8
Case "$H$16": k = 9
End Select
i = Worksheets("Feuil2").Cells(65535, k).End(xlUp)(2).Row
Worksheets("Feuil2").Cells(i, k) = Target.Value
End If
End Sub
voilà la macro que j'essaie de mettre faut-il supprimer une ligne
elle fonctionne lorsque je ne mets pas le bouton
le bouton la lance mais detecte une erreur
je viens de faire unessai la macro travaille même sans cliquer sur le bouton | |||||||
Astucien ![]() | salut
je croyais que les macros déclenchées par un bouton devaient commencer obligatoirement par Private Sub Commandbutton_click Modifié par usularrakis le 15/12/2005 18:36 | |||||||
Astucien | oui mais là je t'ai affiché uniquement la macro
pas la ligne du bouton
j'aurais dù préciser
donc est-ce qu'il n'y a pas doublon avec la ligne du bouton | |||||||
Astucien ![]() | je suis pas spécialiste
le fait que tu as déjà un "private sub" pose pb à mon avis | |||||||
Astucien ![]() | pascal_21
La programmation que tu nous indiques est une procédure qui s'exécute automatiquement sur changement de cellules.
Elle n'a pas besoin de bouton et il n'en faut pas !
| |||||||
Publicité | ||||||||
Astucien ![]() | pascal_21
Pour mettre en application la méthode simple que je t'ai détaillée (avec affichage / barre d'outils / formulaire).
voilà un exemple :
Mets en colonne A, une série de nombres dans le désordre et fabrique un bouton pour que le tri se fasse quand tu cliques dessus.
Création de la macro :
- Clique sur Outils / Macro / Nouvelle macro
- Donne un nom à ta macro (ex : Tri)
=> à partir de ce moment, tout ce que tu fais au clavier sera conservé : tu es en mode programmation automatique de macro.
- Fais toutes les opérations nécessaires pour trier cette colonne sans t'occuper de la macro.
- Clique sur l'icône "arrêter l'enregistrement" quand tu as terminé. => ta macro est créée !! (c'est simple non ?)
Création du bouton" :
- Clique sur Affichage / barre d'outils / formulaire
- Clique sur l'icône "bouton"
- Dessine ce bouton sur ta feuille
- Clique sur le nom de ta macro
- Clique sur OK
Utilisation du bouton :
- Continue à remplir ta colonne A avec des nombres.
- Clique sur ton bouton dès que tu veux trier cette colonne.
Modifié par Marmotte18 le 15/12/2005 19:11 | |||||||
![]() | Salut la compagnie !
Je vois que pascal est sorti de son "squat" en frappant très fort.
Il faut bien distinguer le problème des macros Worksheet_Activate ou Worksheet_Change et Worksheet_SelectionChange ou Workbook_Open qui sont des macros évènementielles qui réagissent à des évènements précis et qui ne tolèrent ni bouton ni même d'être renommées (sauf exceptions très rares)
Donc si tu as un problème sur ces macros comme tu l'évoquais ce matin tu reposes la question clairement parce que pour l'instant je n'ai pas compris.
PS : comme je ne garde pas trace de vos travaux, il faudra surement joindre un modèle ou je peux retrouver le pourquoi de ces macros évènementielles car si je te les ai faites comme celà c'est parce qu'elle répondaient avec précision à ton besoin.
Les modifier maintenant demande une analyse fine de la situation. C'est d'ailleurs le plus difficile avec les macros. Le plus simple étant d'écrire des macros, encore faut-il après maîtriser les inter-actions des unes sur les autres.
Quand au problème des boutons Marmotte et Usularrakis ont parfaitement détaillé le sujet.
A+ Modifié par galopin01 le 15/12/2005 20:10 | |||||||
Astucien | bonsoir donc pour résumer certaines macros ne peuvent pas être demarrées grace à un bouton
bon tant pis c'était pour en savoir en peu plus sur les boutons
aller le sujet est clos
merci
| |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | |||||||||||||||
|