Soucis

Bonjour tout le monde ,

En faite le principe est simple je veux faire un menu déroulant qui contient les noms des macro " one " , " two " , " three " et un Bouton

Ce que je veux faire par exemple quand je sélectionne sur mon menu déroulant par exemple " one " et je clique sur le bouton il va exécute la macro de " one "

et si je sélectionne sur le menu déroulant "three" et je clique sur le bouton il vas exécuter la macro " three " ainsi de suite

s'il vous plait ci vous pouvez maidéer je serai reconnaissant ,Merci à vous.

Marc ,

6classeur-1.xlsm (17.39 Ko)

Bonjour,

Ci-joint ma contribution.

12groupes.xlsm (23.19 Ko)

bonjour,

Merci infiniment s'il te plait je peux savoir comment t'as fait ça .

pour pouvoir le refaire sur un autre fichier excel

c'est vraiment ce que je voulais

Marc,

je peux savoir comment t'as fait ça .

pour pouvoir le refaire sur un autre fichier excel

c'est vraiment ce que je voulais

La première chose, c'est de les nommer. Par exemple, la cellule F2 s'appelle "Proc", en vba on y accède ainsi :

[Proc] 

ou bien :

Range("Proc").Cells.Value

Ensuite, insertion d'une forme ronde, nommée "Exec" (menu Format de la forme, Volet Sélection), clic droit affecter une macro, celle-ci :

Sub Exec_Cliquer()
If [Proc] = "ONE" Then one
If [Proc] = "TWO" Then two
If [Proc] = "THREE" Then three
End Sub

Le tableau des noms de procédure est sur la feuille Param et se nomme "TabMacro" voir menu Formules, Gestionnaire de noms et ListeMacro sert à filtrer la liste Proc (Données, Validation des données)

Merci Beaucoup pour votre savoir

Bonjour marc, oxydum,

petit complément :

si tu as beaucoup de procédures à exécuter, tu peux utiliser ceci :

Select Case [Proc]
  Case "ONE": one
  Case "TWO": two
  Case "THREE": three
  '
  '... ajoute ici tous les autres cas
  '
End Select

dhany

bonjour,

Sinon dans le ruban (Onglet Développeur à gauche) tu as un bouton Macro qui te fait ça très bien...

macros

A+

C'est toujours aussi soigné le design Oxydum

J'avoue que sur les fichiers testes je ne prends pas autant de soins que toi. +1

Merci Xmenpl, as-tu vu le tout dernier ?

La différence importante, c'est que même si ce n'est pas toujours très beau, tu en fais beaucoup plus avec tout autant d'efficacité !

Alors chapeau bas +++, Môssieu Xmenpl !!!

j ai un petit soucis au niveau de DEMO quand je crée ma liste déroulante il me sors des espaces entre ONE et TWO et THREE

pourquoi il prend en considération les espaces ??

capture

Bonjour marc, le forum,

tu peux lire ce post de galopin01 : https://forum.excel-pratique.com/viewtopic.php?p=817924#p817924

quand tu cliques sur le bouton indiqué « Macros », tu as cette fenêtre :

image 1

tu peux voir les macros dans la liste des macros ; si tu as d'autres classeurs ouverts à côté du classeur en cours, tu auras la liste de toutes les macros de tous les classeurs, car en bas, il y a : « Macros dans : Tous les classeurs ouverts ».


si y'a plusieurs classeurs, choisis à la place « Macros dans : Ce classeur » pour avoir les macros du classeur en cours uniquement :

image 2

pour éviter de cliquer sur le bouton Macros de l'onglet Développeur, fais Alt F8 ➯ fenêtre "Macros"

dhany

Suite du post précédent :

comme il y a déjà cette fonctionnalité de base dans Excel, est-ce vraiment utile de refaire la même chose avec une liste déroulante ? et imagine que tu as 100 macros différentes, ce sera pénible de devoir défiler vers le bas pour choisir une des macros qui sont en fin de liste (surtout si elles doivent être appelées fréquemment) ; mais cette remarque vaut aussi pour la fenêtre Macros : il faut aussi faire défiler vers le bas.


aussi, une solution serait de mettre la liste de toutes les macros sur une feuille du classeur, nommée "Macros" (par exemple) ; tu auras alors une vue d'ensemble de toutes les macros ; pour choisir celle que tu veux (mais sans déjà la lancer), tu sélectionneras la cellule qui est devant (à gauche, colonne A ; le nom de la macro étant en C, et un n° en B ; ce n° sert juste de repérage visuel).

si tu t'es trompé de ligne, ou si tu changes d'avis, tu as juste à sélectionner une autre macro, de la même façon ; et si tu es sûr de ton choix, tu fais Ctrl e pour exécuter la macro qui est sur la ligne.


en plus, tu peux faire une liste des macros rangées par Catégories ; exemple :

Macros pour le service Achats

1 Liste des fournisseurs

2 Nomenclature des produits

3 Tarifs du fournisseur A

4 Tarifs du fournisseur B

5 Tarifs du fournisseur C

Macros pour le service Ventes

1 Liste des clients réguliers

2 Liste des clients occasionnels

3 Liste des clients litigieux

4 Tarifs de base pratiqués

5 Tarifs exceptionnels

Macros pour le service Comptable (Achats)

1 Factures d'achat

2 Paiements par chèques

3 Paiements par CB

4 Virements

Macros pour le service Comptable (Ventes)

1 Factures de vente

2 Paiements par chèques

3 Paiements par CB

4 Virements


les items indiqués ci-dessus sont des alias ; exemple : la 1ère macro du service Achats nommée "Liste des fournisseurs" va lancer cette macro (de nom réel) : ShowFRS()

avec dans le code VBA :

Sub ShowFRS()
  '... instructions de la macro pour afficher la liste des fournisseurs
End Sub

à te lire pour avoir ton avis.

dhany

question de ton post d'hier à 17:05 : pourquoi y a-t-il des espaces entre ONE et TWO et THREE ?

une liste déroulante utilise un champ source qui est l'origine des infos de la liste déroulante, par exemple la plage D2:D15.

regarde cette plage : il doit y avoir des lignes vides intercalées dans cette source ; si c'est le cas, il faut soit réorganiser la source en supprimant les lignes vides intercalaires, soit construire la source de la liste déroulante en évitant les lignes vides intercalaires.

mais ça ne sera plus nécessaire si tu fais la solution proposée dans mon post précédent.

c'est difficile de t'aider davantage sans fichier !

dhany

Rechercher des sujets similaires à "soucis"