Dans une feuille Excel, je crée un menu personnalisé dans lequel se trouvent différents boutons, certains fixes et d'autres qui dépendent du classeur sélectionné. Par exemple je crée autant de lignes qu'il ya d'affichages personnalisés dans le classeur. Ces lignes prennent le nom de chaque affichage personnalisé (exemple vue1, vue2, ..., vuex). Elles doivent toutes déclencher la même action (affichage d'une vue personnalisée)
Le problème est de récupérer le nom de la commande sur laquelle l'utilisateur a cliqué pour pouvoir afficher la vue correspondante.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
LSteph
Bonjour, Crée une liste des vues (manuel ou VBA) ou des noms Insertion définir un nom avec des liens htxt suffit de faire Ctrl+k Plage dans le document On met le nom qu'on veut
-- lSteph
On 24 déc, 07:11, gerryl wrote:
Bonjour,
Je cherche une solution à mon problème :
Dans une feuille Excel, je crée un menu personnalisé dans lequel se t rouvent différents boutons, certains fixes et d'autres qui dépendent du class eur sélectionné. Par exemple je crée autant de lignes qu'il ya d'affich ages personnalisés dans le classeur. Ces lignes prennent le nom de chaque af fichage personnalisé (exemple vue1, vue2, ..., vuex). Elles doivent toutes dé clencher la même action (affichage d'une vue personnalisée)
Le problème est de récupérer le nom de la commande sur laquelle l'u tilisateur a cliqué pour pouvoir afficher la vue correspondante.
Merci.
Bonjour,
Crée une liste des vues (manuel ou VBA) ou des noms Insertion définir
un nom
avec des liens htxt
suffit de faire Ctrl+k Plage dans le document
On met le nom qu'on veut
--
lSteph
On 24 déc, 07:11, gerryl <ger...@domain-xyz.in> wrote:
Bonjour,
Je cherche une solution à mon problème :
Dans une feuille Excel, je crée un menu personnalisé dans lequel se t rouvent
différents boutons, certains fixes et d'autres qui dépendent du class eur
sélectionné. Par exemple je crée autant de lignes qu'il ya d'affich ages
personnalisés dans le classeur. Ces lignes prennent le nom de chaque af fichage
personnalisé (exemple vue1, vue2, ..., vuex). Elles doivent toutes dé clencher la
même action (affichage d'une vue personnalisée)
Le problème est de récupérer le nom de la commande sur laquelle l'u tilisateur a
cliqué pour pouvoir afficher la vue correspondante.
Bonjour, Crée une liste des vues (manuel ou VBA) ou des noms Insertion définir un nom avec des liens htxt suffit de faire Ctrl+k Plage dans le document On met le nom qu'on veut
-- lSteph
On 24 déc, 07:11, gerryl wrote:
Bonjour,
Je cherche une solution à mon problème :
Dans une feuille Excel, je crée un menu personnalisé dans lequel se t rouvent différents boutons, certains fixes et d'autres qui dépendent du class eur sélectionné. Par exemple je crée autant de lignes qu'il ya d'affich ages personnalisés dans le classeur. Ces lignes prennent le nom de chaque af fichage personnalisé (exemple vue1, vue2, ..., vuex). Elles doivent toutes dé clencher la même action (affichage d'une vue personnalisée)
Le problème est de récupérer le nom de la commande sur laquelle l'u tilisateur a cliqué pour pouvoir afficher la vue correspondante.
Merci.
gerryl
LSteph a écrit le 24/12/2009 à 16h28 :
Bonjour, Crée une liste des vues (manuel ou VBA) ou des noms Insertion définir un nom avec des liens htxt suffit de faire Ctrl+k Plage dans le document On met le nom qu'on veut
-- lSteph
On 24 déc, 07:11, gerryl wrote:
Bonjour,
Je cherche une solution à mon problème :
Dans une feuille Excel, je crée un menu personnalisé dans lequel se t rouvent différents boutons, certains fixes et d'autres qui dépendent du class eur sélectionné. Par exemple je crée autant de lignes qu'il ya d'affich ages personnalisés dans le classeur. Ces lignes prennent le nom de chaque af fichage personnalisé (exemple vue1, vue2, ..., vuex). Elles doivent toutes dé clencher la même action (affichage d'une vue personnalisée)
Le problème est de récupérer le nom de la commande sur laquelle l'u tilisateur a cliqué pour pouvoir afficher la vue correspondante.
Merci.
Merci LSteph, Mais cela ne répond pas à ma question d’une manière générale. Comment trouver le bouton qui a été sélectionné. Prenons un autre exemple : Je construis par macro un menu avec plusieurs boutons qui se créent en fonctions de différents paramètres soit Liste1, Liste2, Liste3. Ces boutons pointent tous vers la même macro avec l’appel suivant : Set cmd1 = CommandBars(1).Controls("Exemple").Controls.Add(msoControlPopup) Set myRange = Worksheets("Feuil1").Range("W1:W10") With cmd1 .Caption = "&Listes" For i = 1 To Application.WorksheetFunction.CountA(myRange) .Controls.Add (msoControlButton) With .Controls(i) .Caption = Worksheets("Résultats").Range("W1").Offset(rowoffset:=i - 1, columnoffset:=0) .OnAction = "Listes" End With Next i End With Ce programme récupère les valeurs situées dans une feuille Excel entre W1 et W10. Il créée un menu pour chacune des valeurs trouvées. Tous ces menus déclenchent la macro Listes. La question est de savoir quel élément de la liste a provoqué l’accès à cette macro Listes ?
LSteph a écrit le 24/12/2009 à 16h28 :
Bonjour,
Crée une liste des vues (manuel ou VBA) ou des noms Insertion
définir
un nom
avec des liens htxt
suffit de faire Ctrl+k Plage dans le document
On met le nom qu'on veut
--
lSteph
On 24 déc, 07:11, gerryl wrote:
Bonjour,
Je cherche une solution à mon problème :
Dans une feuille Excel, je crée un menu personnalisé dans lequel
se t rouvent
différents boutons, certains fixes et d'autres qui dépendent du
class eur
sélectionné. Par exemple je crée autant de lignes qu'il
ya d'affich ages
personnalisés dans le classeur. Ces lignes prennent le nom de chaque af
fichage
personnalisé (exemple vue1, vue2, ..., vuex). Elles doivent toutes
dé clencher la
même action (affichage d'une vue personnalisée)
Le problème est de récupérer le nom de la commande sur
laquelle l'u tilisateur a
cliqué pour pouvoir afficher la vue correspondante.
Merci.
Merci LSteph,
Mais cela ne répond pas à ma question d’une manière générale.
Comment trouver le bouton qui a été sélectionné. Prenons un autre exemple :
Je construis par macro un menu avec plusieurs boutons qui se créent en fonctions de différents paramètres soit Liste1, Liste2, Liste3. Ces boutons pointent tous vers la même macro avec l’appel suivant :
Set cmd1 = CommandBars(1).Controls("Exemple").Controls.Add(msoControlPopup)
Set myRange = Worksheets("Feuil1").Range("W1:W10")
With cmd1
.Caption = "&Listes"
For i = 1 To Application.WorksheetFunction.CountA(myRange)
.Controls.Add (msoControlButton)
With .Controls(i)
.Caption = Worksheets("Résultats").Range("W1").Offset(rowoffset:=i - 1, columnoffset:=0)
.OnAction = "Listes"
End With
Next i
End With
Ce programme récupère les valeurs situées dans une feuille Excel entre W1 et W10. Il créée un menu pour chacune des valeurs trouvées. Tous ces menus déclenchent la macro Listes.
La question est de savoir quel élément de la liste a provoqué l’accès à cette macro Listes ?
Bonjour, Crée une liste des vues (manuel ou VBA) ou des noms Insertion définir un nom avec des liens htxt suffit de faire Ctrl+k Plage dans le document On met le nom qu'on veut
-- lSteph
On 24 déc, 07:11, gerryl wrote:
Bonjour,
Je cherche une solution à mon problème :
Dans une feuille Excel, je crée un menu personnalisé dans lequel se t rouvent différents boutons, certains fixes et d'autres qui dépendent du class eur sélectionné. Par exemple je crée autant de lignes qu'il ya d'affich ages personnalisés dans le classeur. Ces lignes prennent le nom de chaque af fichage personnalisé (exemple vue1, vue2, ..., vuex). Elles doivent toutes dé clencher la même action (affichage d'une vue personnalisée)
Le problème est de récupérer le nom de la commande sur laquelle l'u tilisateur a cliqué pour pouvoir afficher la vue correspondante.
Merci.
Merci LSteph, Mais cela ne répond pas à ma question d’une manière générale. Comment trouver le bouton qui a été sélectionné. Prenons un autre exemple : Je construis par macro un menu avec plusieurs boutons qui se créent en fonctions de différents paramètres soit Liste1, Liste2, Liste3. Ces boutons pointent tous vers la même macro avec l’appel suivant : Set cmd1 = CommandBars(1).Controls("Exemple").Controls.Add(msoControlPopup) Set myRange = Worksheets("Feuil1").Range("W1:W10") With cmd1 .Caption = "&Listes" For i = 1 To Application.WorksheetFunction.CountA(myRange) .Controls.Add (msoControlButton) With .Controls(i) .Caption = Worksheets("Résultats").Range("W1").Offset(rowoffset:=i - 1, columnoffset:=0) .OnAction = "Listes" End With Next i End With Ce programme récupère les valeurs situées dans une feuille Excel entre W1 et W10. Il créée un menu pour chacune des valeurs trouvées. Tous ces menus déclenchent la macro Listes. La question est de savoir quel élément de la liste a provoqué l’accès à cette macro Listes ?
LSteph
Bonjour, Je comprends. Pour une CommandBar je ne l'ai pas encore envisagé, pour une feuille ou un userform il faut introduire un module de classe, qui va permettre de gèrer les evennements de toute une collection et lui assignr une même tâche sur l'évent click par exmple, lors de l'ajout du (cbb) commandbarbouton dans ta (cmb)mmandbar, cela suppose que tu boucle sur ces controls en mettant au passage cbb.caption="vue" & i Ensuite chaque bouton activant la vue correspondant à son caption.
Extrait d'un exemple avec des boutons dans une feuille si cela peut t'inspirer pour faire le même genre de chose avec une commandbar
'module de classe nommé ClassBouton Option Explicit
Public WithEvents myButs As CommandButton
Private Sub myButs_Click() Feuil1.Activate 'uniquement pour 97
Call Remplit(myButs.Caption, myButs.BackColor)
End Sub
'Module ThisWorkbook
Private Sub Workbook_Open() Call InitCButtons End Sub
'ModuleStandard Dim CButtons() As ClassBouton
Sub InitCButtons() Dim myB As OLEObject, CmdB As MSForms.CommandButton Dim I As Integer For Each myB In Feuil1.OLEObjects If TypeOf myB.Object Is CommandButton Then I = I + 1 ReDim Preserve CButtons(1 To I) Set CButtons(I) = New ClassBouton Set CButtons(I).myButs = myB.Object End If Next myB End Sub
'lSteph
On 25 déc, 08:02, gerryl wrote:
LSteph a écrit le 24/12/2009 à 16h28 :
> Bonjour, > Crée une liste des vues (manuel ou VBA) ou des noms Insertion > définir > un nom > avec des liens htxt > suffit de faire Ctrl+k Plage dans le document > On met le nom qu'on veut
> -- > lSteph
> On 24 déc, 07:11, gerryl wrote: >> Bonjour,
>> Je cherche une solution à mon problème :
>> Dans une feuille Excel, je crée un menu personnalisé dans lequel >> se t rouvent >> différents boutons, certains fixes et d'autres qui dépendent du >> class eur >> sélectionné. Par exemple je crée autant de lignes qu'il >> ya d'affich ages >> personnalisés dans le classeur. Ces lignes prennent le nom de chaque af >> fichage >> personnalisé (exemple vue1, vue2, ..., vuex). Elles doivent toutes >> dé clencher la >> même action (affichage d'une vue personnalisée)
>> Le problème est de récupérer le nom de la commande sur >> laquelle l'u tilisateur a >> cliqué pour pouvoir afficher la vue correspondante.
>> Merci.
Merci LSteph, Mais cela ne répond pas à ma question dune manière générale. Comment trouver le bouton qui a été sélectionné. Prenons un autre exemple : Je construis par macro un menu avec plusieurs boutons qui se créent en fonctions de différents paramètres soit Liste1, Liste2, Liste3. Ces b outons pointent tous vers la même macro avec lappel suivant : Set cmd1 = CommandBars(1).Controls("Exemple").Controls.Add(msoControlPopup) Set myRange = Worksheets("Feuil1").Range("W1:W10") With cmd1 .Caption = "&Listes" For i = 1 To Application.WorksheetFunction.CountA(myRan ge) .Controls.Add (msoControlButton) With .Controls(i) .Caption = Worksheets("Résultats").Range("W1").Offset(rowoffset:=i - 1, columnof fset:=0) .OnAction = "Listes" End With Next i End With Ce programme récupère les valeurs situées dans une feuille Excel en tre W1 et W10. Il créée un menu pour chacune des valeurs trouvées. Tous ces m enus déclenchent la macro Listes. La question est de savoir quel élément de la liste a provoqué la ccès à cette macro Listes ?- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Je comprends.
Pour une CommandBar je ne l'ai pas encore envisagé, pour une feuille
ou un userform il faut introduire un module de classe, qui va
permettre de gèrer les evennements de toute une collection et lui
assignr une même tâche sur l'évent click par exmple,
lors de l'ajout du (cbb) commandbarbouton dans ta (cmb)mmandbar, cela
suppose que tu boucle sur ces controls
en mettant au passage cbb.caption="vue" & i
Ensuite chaque bouton activant la vue correspondant à son caption.
Extrait d'un exemple avec des boutons dans une feuille si cela peut
t'inspirer pour faire le même genre de chose avec une commandbar
'module de classe nommé ClassBouton
Option Explicit
Public WithEvents myButs As CommandButton
Private Sub myButs_Click()
Feuil1.Activate 'uniquement pour 97
Call Remplit(myButs.Caption, myButs.BackColor)
End Sub
'Module ThisWorkbook
Private Sub Workbook_Open()
Call InitCButtons
End Sub
'ModuleStandard
Dim CButtons() As ClassBouton
Sub InitCButtons()
Dim myB As OLEObject, CmdB As MSForms.CommandButton
Dim I As Integer
For Each myB In Feuil1.OLEObjects
If TypeOf myB.Object Is CommandButton Then
I = I + 1
ReDim Preserve CButtons(1 To I)
Set CButtons(I) = New ClassBouton
Set CButtons(I).myButs = myB.Object
End If
Next myB
End Sub
'lSteph
On 25 déc, 08:02, gerryl <ger...@domain-xyz.in> wrote:
LSteph a écrit le 24/12/2009 à 16h28 :
> Bonjour,
> Crée une liste des vues (manuel ou VBA) ou des noms Insertion
> définir
> un nom
> avec des liens htxt
> suffit de faire Ctrl+k Plage dans le document
> On met le nom qu'on veut
> --
> lSteph
> On 24 déc, 07:11, gerryl wrote:
>> Bonjour,
>> Je cherche une solution à mon problème :
>> Dans une feuille Excel, je crée un menu personnalisé dans lequel
>> se t rouvent
>> différents boutons, certains fixes et d'autres qui dépendent du
>> class eur
>> sélectionné. Par exemple je crée autant de lignes qu'il
>> ya d'affich ages
>> personnalisés dans le classeur. Ces lignes prennent le nom de chaque af
>> fichage
>> personnalisé (exemple vue1, vue2, ..., vuex). Elles doivent toutes
>> dé clencher la
>> même action (affichage d'une vue personnalisée)
>> Le problème est de récupérer le nom de la commande sur
>> laquelle l'u tilisateur a
>> cliqué pour pouvoir afficher la vue correspondante.
>> Merci.
Merci LSteph,
Mais cela ne répond pas à ma question dune manière générale.
Comment trouver le bouton qui a été sélectionné. Prenons un autre exemple :
Je construis par macro un menu avec plusieurs boutons qui se créent en
fonctions de différents paramètres soit Liste1, Liste2, Liste3. Ces b outons
pointent tous vers la même macro avec lappel suivant :
Set cmd1 =
CommandBars(1).Controls("Exemple").Controls.Add(msoControlPopup)
Set myRange = Worksheets("Feuil1").Range("W1:W10")
With cmd1
.Caption = "&Listes"
For i = 1 To Application.WorksheetFunction.CountA(myRan ge)
.Controls.Add (msoControlButton)
With .Controls(i)
.Caption =
Worksheets("Résultats").Range("W1").Offset(rowoffset:=i - 1, columnof fset:=0)
.OnAction = "Listes"
End With
Next i
End With
Ce programme récupère les valeurs situées dans une feuille Excel en tre W1 et
W10. Il créée un menu pour chacune des valeurs trouvées. Tous ces m enus
déclenchent la macro Listes.
La question est de savoir quel élément de la liste a provoqué la ccès à cette
macro Listes ?- Masquer le texte des messages précédents -
Bonjour, Je comprends. Pour une CommandBar je ne l'ai pas encore envisagé, pour une feuille ou un userform il faut introduire un module de classe, qui va permettre de gèrer les evennements de toute une collection et lui assignr une même tâche sur l'évent click par exmple, lors de l'ajout du (cbb) commandbarbouton dans ta (cmb)mmandbar, cela suppose que tu boucle sur ces controls en mettant au passage cbb.caption="vue" & i Ensuite chaque bouton activant la vue correspondant à son caption.
Extrait d'un exemple avec des boutons dans une feuille si cela peut t'inspirer pour faire le même genre de chose avec une commandbar
'module de classe nommé ClassBouton Option Explicit
Public WithEvents myButs As CommandButton
Private Sub myButs_Click() Feuil1.Activate 'uniquement pour 97
Call Remplit(myButs.Caption, myButs.BackColor)
End Sub
'Module ThisWorkbook
Private Sub Workbook_Open() Call InitCButtons End Sub
'ModuleStandard Dim CButtons() As ClassBouton
Sub InitCButtons() Dim myB As OLEObject, CmdB As MSForms.CommandButton Dim I As Integer For Each myB In Feuil1.OLEObjects If TypeOf myB.Object Is CommandButton Then I = I + 1 ReDim Preserve CButtons(1 To I) Set CButtons(I) = New ClassBouton Set CButtons(I).myButs = myB.Object End If Next myB End Sub
'lSteph
On 25 déc, 08:02, gerryl wrote:
LSteph a écrit le 24/12/2009 à 16h28 :
> Bonjour, > Crée une liste des vues (manuel ou VBA) ou des noms Insertion > définir > un nom > avec des liens htxt > suffit de faire Ctrl+k Plage dans le document > On met le nom qu'on veut
> -- > lSteph
> On 24 déc, 07:11, gerryl wrote: >> Bonjour,
>> Je cherche une solution à mon problème :
>> Dans une feuille Excel, je crée un menu personnalisé dans lequel >> se t rouvent >> différents boutons, certains fixes et d'autres qui dépendent du >> class eur >> sélectionné. Par exemple je crée autant de lignes qu'il >> ya d'affich ages >> personnalisés dans le classeur. Ces lignes prennent le nom de chaque af >> fichage >> personnalisé (exemple vue1, vue2, ..., vuex). Elles doivent toutes >> dé clencher la >> même action (affichage d'une vue personnalisée)
>> Le problème est de récupérer le nom de la commande sur >> laquelle l'u tilisateur a >> cliqué pour pouvoir afficher la vue correspondante.
>> Merci.
Merci LSteph, Mais cela ne répond pas à ma question dune manière générale. Comment trouver le bouton qui a été sélectionné. Prenons un autre exemple : Je construis par macro un menu avec plusieurs boutons qui se créent en fonctions de différents paramètres soit Liste1, Liste2, Liste3. Ces b outons pointent tous vers la même macro avec lappel suivant : Set cmd1 = CommandBars(1).Controls("Exemple").Controls.Add(msoControlPopup) Set myRange = Worksheets("Feuil1").Range("W1:W10") With cmd1 .Caption = "&Listes" For i = 1 To Application.WorksheetFunction.CountA(myRan ge) .Controls.Add (msoControlButton) With .Controls(i) .Caption = Worksheets("Résultats").Range("W1").Offset(rowoffset:=i - 1, columnof fset:=0) .OnAction = "Listes" End With Next i End With Ce programme récupère les valeurs situées dans une feuille Excel en tre W1 et W10. Il créée un menu pour chacune des valeurs trouvées. Tous ces m enus déclenchent la macro Listes. La question est de savoir quel élément de la liste a provoqué la ccès à cette macro Listes ?- Masquer le texte des messages précédents -