sélections d'onglets à partir d'une liste déroulante
20 réponses
ddh
Bonjour =E0 tous
Sous XP et Excel 2002, je voudrais ouvrir les feuilles=20
d'un classeur en utilisant une zone de liste d=E9roulante=20
de la barre d'outils "formulaire". Je voudrais utiliser=20
cette fa=E7on au lieu de celle qui consiste habituellement=20
=E0 cliquer sur l'onglet. Mon but est par la suite de ne=20
plus faire appara=EEtre les onglets du classeur.
Est-il possible de la faire et si oui de quelles fa=E7ons?
Merci pour vos r=E9ponses
PS: c'est mon premier message dans le forum. J'esp=E8re que=20
j'ai respect=E9 la charte. Si ce n'est pas le cas,=20
n'h=E9sitez pas =E0 me le dire
Format de contrôle : Plage d'entrée : $A$1:$A$3 Cellule liée : $B$1
ET
Sub Zonedeliste1_QuandChangement() i = [B1] Worksheets(i).Activate End Sub
Serge
"ddh" a écrit dans le message de news: 098801c3bb75$c1c49700$ Bonjour à tous
Sous XP et Excel 2002, je voudrais ouvrir les feuilles d'un classeur en utilisant une zone de liste déroulante de la barre d'outils "formulaire". Je voudrais utiliser cette façon au lieu de celle qui consiste habituellement à cliquer sur l'onglet. Mon but est par la suite de ne plus faire apparaître les onglets du classeur.
Est-il possible de la faire et si oui de quelles façons?
Merci pour vos réponses
PS: c'est mon premier message dans le forum. J'espère que j'ai respecté la charte. Si ce n'est pas le cas, n'hésitez pas à me le dire
Salut ddh,
Peut-être un début de commencement de solution :
En A1:A3, j'ai écrit Feuil1, Feuil2 et Feuil3
Format de contrôle :
Plage d'entrée : $A$1:$A$3
Cellule liée : $B$1
ET
Sub Zonedeliste1_QuandChangement()
i = [B1]
Worksheets(i).Activate
End Sub
Serge
"ddh" <anonymous@discussions.microsoft.com> a écrit dans le message de news:
098801c3bb75$c1c49700$a001280a@phx.gbl...
Bonjour à tous
Sous XP et Excel 2002, je voudrais ouvrir les feuilles
d'un classeur en utilisant une zone de liste déroulante
de la barre d'outils "formulaire". Je voudrais utiliser
cette façon au lieu de celle qui consiste habituellement
à cliquer sur l'onglet. Mon but est par la suite de ne
plus faire apparaître les onglets du classeur.
Est-il possible de la faire et si oui de quelles façons?
Merci pour vos réponses
PS: c'est mon premier message dans le forum. J'espère que
j'ai respecté la charte. Si ce n'est pas le cas,
n'hésitez pas à me le dire
Format de contrôle : Plage d'entrée : $A$1:$A$3 Cellule liée : $B$1
ET
Sub Zonedeliste1_QuandChangement() i = [B1] Worksheets(i).Activate End Sub
Serge
"ddh" a écrit dans le message de news: 098801c3bb75$c1c49700$ Bonjour à tous
Sous XP et Excel 2002, je voudrais ouvrir les feuilles d'un classeur en utilisant une zone de liste déroulante de la barre d'outils "formulaire". Je voudrais utiliser cette façon au lieu de celle qui consiste habituellement à cliquer sur l'onglet. Mon but est par la suite de ne plus faire apparaître les onglets du classeur.
Est-il possible de la faire et si oui de quelles façons?
Merci pour vos réponses
PS: c'est mon premier message dans le forum. J'espère que j'ai respecté la charte. Si ce n'est pas le cas, n'hésitez pas à me le dire
Papyty
Bonjour @ tous et à ddh : Bienvenu sur MPFE
d'un classeur en utilisant une zone de liste déroulante de la barre d'outils "formulaire". Je voudrais utiliser
Je peux te proposer une soluce mais avec une liste dans la barre de commande standard si ça peux te convenir.
Dans ThisWorkbook: ____________________________________________ Private Sub Workbook_Activate() ComboOnglets End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean) SupComboOnglets End Sub
Private Sub Workbook_Deactivate() SupComboOnglets End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object) SupComboOnglets ComboOnglets End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim MyBar As CommandBarComboBox On Error Resume Next Application.CommandBars("Standard"). _ Controls("Onglets").Visible = True If Error <> 0 Then Exit Sub Set MyBar = Application.CommandBars("Standard"). _ Controls("Onglets") With MyBar .Clear For i = 1 To Worksheets.Count If Sheets(i).Visible = True Then .AddItem Sheets(i).Name End If Next i .Text = Sh.Name End With End Sub _______________________________________________________ Dans un module standard:
Private MyNewBar As New ComboBoxSheets
Sub ComboOnglets() Dim MyBar As CommandBarComboBox Set MyBar = Application.CommandBars("Standard"). _ Controls.Add(msoControlComboBox) With MyBar .Caption = "Onglets" For i = 1 To Worksheets.Count If Sheets(i).Visible = True Then .AddItem Sheets(i).Name End If Next i .DropDownLines = 50 .DropDownWidth = -1 .ListHeaderCount = 0 .Text = ActiveSheet.Name .Width = 100 End With MyNewBar.SynchroBox MyBar MyBar.Visible = True End Sub
Sub SupComboOnglets() On Error Resume Next Application.CommandBars("Standard"). _ Controls("Onglets").Delete End Sub _________________________________________________________ Dans un module de classe à nommer ComboBoxSheets:
Private WithEvents ComboBoxSheets As Office.CommandBarComboBox
Private Sub Class_Terminate() Set ComboBoxSheets = Nothing End Sub
Private Sub ComboBoxSheets_Change(ByVal Ctrl As Office.CommandBarComboBox) Dim Onglet As String Onglet = Ctrl.Text Sheets(Onglet).Select End Sub
Sub SynchroBox(box As CommandBarComboBox) Set ComboBoxSheets = box End Sub ______________________________________________________________
Ensuite il suffit de fermer et ouvrir le fichier pour activer ce menu -- @+ Thierry 05/12/2003 23:23:05
Bonjour @ tous et à ddh :
Bienvenu sur MPFE
d'un classeur en utilisant une zone de liste déroulante
de la barre d'outils "formulaire". Je voudrais utiliser
Je peux te proposer une soluce mais avec une liste dans la barre de
commande standard si ça peux te convenir.
Dans ThisWorkbook:
____________________________________________
Private Sub Workbook_Activate()
ComboOnglets
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
SupComboOnglets
End Sub
Private Sub Workbook_Deactivate()
SupComboOnglets
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
SupComboOnglets
ComboOnglets
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim MyBar As CommandBarComboBox
On Error Resume Next
Application.CommandBars("Standard"). _
Controls("Onglets").Visible = True
If Error <> 0 Then Exit Sub
Set MyBar = Application.CommandBars("Standard"). _
Controls("Onglets")
With MyBar
.Clear
For i = 1 To Worksheets.Count
If Sheets(i).Visible = True Then
.AddItem Sheets(i).Name
End If
Next i
.Text = Sh.Name
End With
End Sub
_______________________________________________________
Dans un module standard:
Private MyNewBar As New ComboBoxSheets
Sub ComboOnglets()
Dim MyBar As CommandBarComboBox
Set MyBar = Application.CommandBars("Standard"). _
Controls.Add(msoControlComboBox)
With MyBar
.Caption = "Onglets"
For i = 1 To Worksheets.Count
If Sheets(i).Visible = True Then
.AddItem Sheets(i).Name
End If
Next i
.DropDownLines = 50
.DropDownWidth = -1
.ListHeaderCount = 0
.Text = ActiveSheet.Name
.Width = 100
End With
MyNewBar.SynchroBox MyBar
MyBar.Visible = True
End Sub
Sub SupComboOnglets()
On Error Resume Next
Application.CommandBars("Standard"). _
Controls("Onglets").Delete
End Sub
_________________________________________________________
Dans un module de classe à nommer ComboBoxSheets:
Private WithEvents ComboBoxSheets As Office.CommandBarComboBox
Private Sub Class_Terminate()
Set ComboBoxSheets = Nothing
End Sub
Private Sub ComboBoxSheets_Change(ByVal Ctrl As Office.CommandBarComboBox)
Dim Onglet As String
Onglet = Ctrl.Text
Sheets(Onglet).Select
End Sub
Sub SynchroBox(box As CommandBarComboBox)
Set ComboBoxSheets = box
End Sub
______________________________________________________________
Ensuite il suffit de fermer et ouvrir le fichier pour activer ce menu
--
@+
Thierry
05/12/2003 23:23:05
d'un classeur en utilisant une zone de liste déroulante de la barre d'outils "formulaire". Je voudrais utiliser
Je peux te proposer une soluce mais avec une liste dans la barre de commande standard si ça peux te convenir.
Dans ThisWorkbook: ____________________________________________ Private Sub Workbook_Activate() ComboOnglets End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean) SupComboOnglets End Sub
Private Sub Workbook_Deactivate() SupComboOnglets End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object) SupComboOnglets ComboOnglets End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim MyBar As CommandBarComboBox On Error Resume Next Application.CommandBars("Standard"). _ Controls("Onglets").Visible = True If Error <> 0 Then Exit Sub Set MyBar = Application.CommandBars("Standard"). _ Controls("Onglets") With MyBar .Clear For i = 1 To Worksheets.Count If Sheets(i).Visible = True Then .AddItem Sheets(i).Name End If Next i .Text = Sh.Name End With End Sub _______________________________________________________ Dans un module standard:
Private MyNewBar As New ComboBoxSheets
Sub ComboOnglets() Dim MyBar As CommandBarComboBox Set MyBar = Application.CommandBars("Standard"). _ Controls.Add(msoControlComboBox) With MyBar .Caption = "Onglets" For i = 1 To Worksheets.Count If Sheets(i).Visible = True Then .AddItem Sheets(i).Name End If Next i .DropDownLines = 50 .DropDownWidth = -1 .ListHeaderCount = 0 .Text = ActiveSheet.Name .Width = 100 End With MyNewBar.SynchroBox MyBar MyBar.Visible = True End Sub
Sub SupComboOnglets() On Error Resume Next Application.CommandBars("Standard"). _ Controls("Onglets").Delete End Sub _________________________________________________________ Dans un module de classe à nommer ComboBoxSheets:
Private WithEvents ComboBoxSheets As Office.CommandBarComboBox
Private Sub Class_Terminate() Set ComboBoxSheets = Nothing End Sub
Private Sub ComboBoxSheets_Change(ByVal Ctrl As Office.CommandBarComboBox) Dim Onglet As String Onglet = Ctrl.Text Sheets(Onglet).Select End Sub
Sub SynchroBox(box As CommandBarComboBox) Set ComboBoxSheets = box End Sub ______________________________________________________________
Ensuite il suffit de fermer et ouvrir le fichier pour activer ce menu -- @+ Thierry 05/12/2003 23:23:05
Papyty
Bonjour @ tous et à Papyty :
d'un classeur en utilisant une zone de liste déroulante de la barre d'outils "formulaire". Je voudrais utiliser
Oups une erreur dans ThisWorkbook!!!!!!!!
Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim MyBar As CommandBarComboBox On Error Resume Next Application.CommandBars("Standard"). _ Controls("Onglets").Visible = True If Error <> "" Then Exit Sub Set MyBar = Application.CommandBars("Standard"). _ Controls("Onglets") With MyBar .Clear For i = 1 To Worksheets.Count If Sheets(i).Visible = True Then .AddItem Sheets(i).Name End If Next i .Text = Sh.Name End With End Sub
-- @+ Thierry 05/12/2003 23:51:55
Bonjour @ tous et à Papyty :
d'un classeur en utilisant une zone de liste déroulante
de la barre d'outils "formulaire". Je voudrais utiliser
Oups une erreur dans ThisWorkbook!!!!!!!!
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim MyBar As CommandBarComboBox
On Error Resume Next
Application.CommandBars("Standard"). _
Controls("Onglets").Visible = True
If Error <> "" Then Exit Sub
Set MyBar = Application.CommandBars("Standard"). _
Controls("Onglets")
With MyBar
.Clear
For i = 1 To Worksheets.Count
If Sheets(i).Visible = True Then
.AddItem Sheets(i).Name
End If
Next i
.Text = Sh.Name
End With
End Sub
d'un classeur en utilisant une zone de liste déroulante de la barre d'outils "formulaire". Je voudrais utiliser
Oups une erreur dans ThisWorkbook!!!!!!!!
Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim MyBar As CommandBarComboBox On Error Resume Next Application.CommandBars("Standard"). _ Controls("Onglets").Visible = True If Error <> "" Then Exit Sub Set MyBar = Application.CommandBars("Standard"). _ Controls("Onglets") With MyBar .Clear For i = 1 To Worksheets.Count If Sheets(i).Visible = True Then .AddItem Sheets(i).Name End If Next i .Text = Sh.Name End With End Sub
-- @+ Thierry 05/12/2003 23:51:55
Maxence HUBICHE
Moi, je ferai un truc se rapprochant de ce que tu veux. Mais au lieu d'utiliser la barre d'outils 'Formulaires', j'utiliserai la barre d'outils 'Boite à Outils Controles'
Dedans, je choisirai un liste déroulante. J'afficherai les propriétés et changerai : (Name) := cboSheets
_____________________________________________________ A partir de là, dans le module de la feuille où tu poses ce contrôle (appelons-là Feuil1) tu auras :
Private Sub Worksheet_Activate() Remplir cboSheets End Sub
Private Sub Worksheet_Deactivate() Vider cboSheets End Sub
_____________________________________________________ Dans le module de ThisWorkbook, tu auras :
Private Sub Workbook_Open() Remplir Feuil1.cboSheets End Sub
_____________________________________________________ Et pour finir, dans un module standard, tu auras :
Public Sub Remplir(Cbo As ComboBox) Dim oSheet As Object For Each oSheet In ThisWorkbook.Sheets Cbo.AddItem oSheet.Name Next End Sub
Public Sub Vider(Cbo As ComboBox) Cbo.Clear End Sub
Et c'est tout !
Moi, je ferai un truc se rapprochant de ce que tu veux.
Mais au lieu d'utiliser la barre d'outils 'Formulaires',
j'utiliserai la barre d'outils 'Boite à Outils Controles'
Dedans, je choisirai un liste déroulante.
J'afficherai les propriétés et changerai :
(Name) := cboSheets
_____________________________________________________
A partir de là, dans le module de la feuille où tu poses
ce contrôle (appelons-là Feuil1) tu auras :
Private Sub Worksheet_Activate()
Remplir cboSheets
End Sub
Private Sub Worksheet_Deactivate()
Vider cboSheets
End Sub
_____________________________________________________
Dans le module de ThisWorkbook, tu auras :
Private Sub Workbook_Open()
Remplir Feuil1.cboSheets
End Sub
_____________________________________________________
Et pour finir, dans un module standard, tu auras :
Public Sub Remplir(Cbo As ComboBox)
Dim oSheet As Object
For Each oSheet In ThisWorkbook.Sheets
Cbo.AddItem oSheet.Name
Next
End Sub
Public Sub Vider(Cbo As ComboBox)
Cbo.Clear
End Sub
Moi, je ferai un truc se rapprochant de ce que tu veux. Mais au lieu d'utiliser la barre d'outils 'Formulaires', j'utiliserai la barre d'outils 'Boite à Outils Controles'
Dedans, je choisirai un liste déroulante. J'afficherai les propriétés et changerai : (Name) := cboSheets
_____________________________________________________ A partir de là, dans le module de la feuille où tu poses ce contrôle (appelons-là Feuil1) tu auras :
Private Sub Worksheet_Activate() Remplir cboSheets End Sub
Private Sub Worksheet_Deactivate() Vider cboSheets End Sub
_____________________________________________________ Dans le module de ThisWorkbook, tu auras :
Private Sub Workbook_Open() Remplir Feuil1.cboSheets End Sub
_____________________________________________________ Et pour finir, dans un module standard, tu auras :
Public Sub Remplir(Cbo As ComboBox) Dim oSheet As Object For Each oSheet In ThisWorkbook.Sheets Cbo.AddItem oSheet.Name Next End Sub
Public Sub Vider(Cbo As ComboBox) Cbo.Clear End Sub
Et c'est tout !
Clément Marcotte
Bonjour,
Sous XP et Excel 2002, je voudrais ouvrir les feuilles d'un classeur en utilisant une zone de liste déroulante
Avant de réinventer l'eau froide (ou l'eau chaude comme dirait l'autre)
Mon but est par la suite de ne plus faire apparaître les onglets du classeur.
Impossible
"ddh" a écrit dans le message de news:098801c3bb75$c1c49700$ Bonjour à tous
de la barre d'outils "formulaire". Je voudrais utiliser cette façon au lieu de celle qui consiste habituellement à cliquer sur l'onglet. Est-il possible de la faire et si oui de quelles façons?
Merci pour vos réponses
PS: c'est mon premier message dans le forum. J'espère que j'ai respecté la charte. Si ce n'est pas le cas, n'hésitez pas à me le dire
Bonjour,
Sous XP et Excel 2002, je voudrais ouvrir les feuilles
d'un classeur en utilisant une zone de liste déroulante
Avant de réinventer l'eau froide (ou l'eau chaude comme dirait
l'autre)
Mon but est par la suite de ne
plus faire apparaître les onglets du classeur.
Impossible
"ddh" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:098801c3bb75$c1c49700$a001280a@phx.gbl...
Bonjour à tous
de la barre d'outils "formulaire". Je voudrais utiliser
cette façon au lieu de celle qui consiste habituellement
à cliquer sur l'onglet.
Est-il possible de la faire et si oui de quelles façons?
Merci pour vos réponses
PS: c'est mon premier message dans le forum. J'espère que
j'ai respecté la charte. Si ce n'est pas le cas,
n'hésitez pas à me le dire
Mon but est par la suite de ne plus faire apparaître les onglets du classeur.
Impossible
"ddh" a écrit dans le message de news:098801c3bb75$c1c49700$ Bonjour à tous
de la barre d'outils "formulaire". Je voudrais utiliser cette façon au lieu de celle qui consiste habituellement à cliquer sur l'onglet. Est-il possible de la faire et si oui de quelles façons?
Merci pour vos réponses
PS: c'est mon premier message dans le forum. J'espère que j'ai respecté la charte. Si ce n'est pas le cas, n'hésitez pas à me le dire
Papyty
Bonjour @ tous et à Clément Marcotte :
Avant de réinventer l'eau froide (ou l'eau chaude comme dirait l'autre)
Réinventer l'eau chaude non, mais donner plusieur soluces qui ne répondent pas exactement aux mêmes critéres font la force de ce groupe, l'utilisateur a le luxe de choisir ce qui lui convient le mieux, on ne pourra jamais se mettre à sa place ;-))) -- @+ Thierry 06/12/2003 01:37:54
Bonjour @ tous et à Clément Marcotte :
Avant de réinventer l'eau froide (ou l'eau chaude comme dirait
l'autre)
Réinventer l'eau chaude non, mais donner plusieur soluces qui ne répondent
pas exactement aux mêmes critéres font la force de ce groupe, l'utilisateur
a le luxe de choisir ce qui lui convient le mieux, on ne pourra jamais se
mettre à sa place ;-)))
--
@+
Thierry
06/12/2003 01:37:54
Avant de réinventer l'eau froide (ou l'eau chaude comme dirait l'autre)
Réinventer l'eau chaude non, mais donner plusieur soluces qui ne répondent pas exactement aux mêmes critéres font la force de ce groupe, l'utilisateur a le luxe de choisir ce qui lui convient le mieux, on ne pourra jamais se mettre à sa place ;-))) -- @+ Thierry 06/12/2003 01:37:54
Clément Marcotte
Bonjour,
Réinventer l'eau chaude non, mais donner plusieur soluces qui ne répondent
pas exactement aux mêmes critéres font la force de ce groupe,
Ma réponse était en relation avec le "grand projet" qui semble découler de la question originale, et non des réponses déjà fournies. Désolé si je n'ai pas été assez clair.
Bonjour,
Réinventer l'eau chaude non, mais donner plusieur soluces qui ne
répondent
pas exactement aux mêmes critéres font la force de ce groupe,
Ma réponse était en relation avec le "grand projet" qui semble
découler de la question originale, et non des réponses déjà fournies.
Désolé si je n'ai pas été assez clair.
Réinventer l'eau chaude non, mais donner plusieur soluces qui ne répondent
pas exactement aux mêmes critéres font la force de ce groupe,
Ma réponse était en relation avec le "grand projet" qui semble découler de la question originale, et non des réponses déjà fournies. Désolé si je n'ai pas été assez clair.
AV
Pour répondre à la question : Inscrire les noms des feuilles du classeur dans une zone de liste issue de la barre d'outils "Formulaire" et sélectionner une de ces feuilles en cliquant sur un choix dans la liste
En supposant que......... * ce que tu appelles "Liste déroulante" est une "Zone de Liste" (ListBox) et non une "Zone de Liste Modifiable" (DropDowns) Sinon, faire signe.... * ta ListBox est déjà dessinée sur "Feuil1" et qu'elle se nomme "zz_List" (clic droit sur l'objet et saisir dans barre des noms)
==== Pour initialiser la ListBox, plusieurs approches selon choix/nbre de feuilles : 1) - Si le nbre de feuilles du classeur est fixe, peu important et non susceptible de grandir/diminuer (pas d'ajout/suppression) Exécuter la macro (à adapter) : Sub Initialise_ListBox1() With Sheets("Feuil1") .ListBoxes("zz_List").List = Array("Feuil1", "Feuil2", "Feuil3", "Feuil4") .ListBoxes("zz_List").ListIndex = 1 End With End Sub
2) - Si le nbre de feuilles du classeur est important (et/ou pour ne pas faire d'erreurs d'orthographe) Exécuter la macro : Sub Initialise_ListBox2() Dim Tabl_F() As String x = ActiveWorkbook.Sheets.Count ReDim Tabl_F(x) For i = 1 To x Tabl_F(i - 1) = ActiveWorkbook.Sheets(i).Name Next i With Sheets("Feuil1").ListBoxes("zz_List") .List = Array(Tabl_F) .ListIndex = 1 End With End Sub
3) - Si le nbre de feuilles du classeur est susceptible d'être modifié (ajouts/suppressions) Mettre la proc "Initialise_ListBox2" dans un module ordinaire et dans le module de ThisWorbook : Private Sub Workbook_Open() Initialise_ListBox2 End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) Initialise_ListBox2 End Sub
====== Dans tous les cas de figure, affecter à la ListBox la macro suivante : Dans un module ordinaire : Sub choix_F() Sheets(ActiveSheet.ListBoxes("zz_List").List(Sheets("Feuil1").ListBoxes("zz_List ").ListIndex)).Select End Sub
PS : exemple sur demande AV
Pour répondre à la question :
Inscrire les noms des feuilles du classeur dans une zone de liste issue de la
barre d'outils "Formulaire" et sélectionner une de ces feuilles en cliquant sur
un choix dans la liste
En supposant que.........
* ce que tu appelles "Liste déroulante" est une "Zone de Liste" (ListBox) et non
une "Zone de Liste Modifiable" (DropDowns)
Sinon, faire signe....
* ta ListBox est déjà dessinée sur "Feuil1" et qu'elle se nomme "zz_List" (clic
droit sur l'objet et saisir dans barre des noms)
==== Pour initialiser la ListBox, plusieurs approches selon choix/nbre de
feuilles :
1) - Si le nbre de feuilles du classeur est fixe, peu important et non
susceptible de grandir/diminuer (pas d'ajout/suppression)
Exécuter la macro (à adapter) :
Sub Initialise_ListBox1()
With Sheets("Feuil1")
.ListBoxes("zz_List").List = Array("Feuil1", "Feuil2", "Feuil3", "Feuil4")
.ListBoxes("zz_List").ListIndex = 1
End With
End Sub
2) - Si le nbre de feuilles du classeur est important (et/ou pour ne pas faire
d'erreurs d'orthographe)
Exécuter la macro :
Sub Initialise_ListBox2()
Dim Tabl_F() As String
x = ActiveWorkbook.Sheets.Count
ReDim Tabl_F(x)
For i = 1 To x
Tabl_F(i - 1) = ActiveWorkbook.Sheets(i).Name
Next i
With Sheets("Feuil1").ListBoxes("zz_List")
.List = Array(Tabl_F)
.ListIndex = 1
End With
End Sub
3) - Si le nbre de feuilles du classeur est susceptible d'être modifié
(ajouts/suppressions)
Mettre la proc "Initialise_ListBox2" dans un module ordinaire et dans le module
de ThisWorbook :
Private Sub Workbook_Open()
Initialise_ListBox2
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Initialise_ListBox2
End Sub
====== Dans tous les cas de figure, affecter à la ListBox la macro suivante :
Dans un module ordinaire :
Sub choix_F()
Sheets(ActiveSheet.ListBoxes("zz_List").List(Sheets("Feuil1").ListBoxes("zz_List
").ListIndex)).Select
End Sub
Pour répondre à la question : Inscrire les noms des feuilles du classeur dans une zone de liste issue de la barre d'outils "Formulaire" et sélectionner une de ces feuilles en cliquant sur un choix dans la liste
En supposant que......... * ce que tu appelles "Liste déroulante" est une "Zone de Liste" (ListBox) et non une "Zone de Liste Modifiable" (DropDowns) Sinon, faire signe.... * ta ListBox est déjà dessinée sur "Feuil1" et qu'elle se nomme "zz_List" (clic droit sur l'objet et saisir dans barre des noms)
==== Pour initialiser la ListBox, plusieurs approches selon choix/nbre de feuilles : 1) - Si le nbre de feuilles du classeur est fixe, peu important et non susceptible de grandir/diminuer (pas d'ajout/suppression) Exécuter la macro (à adapter) : Sub Initialise_ListBox1() With Sheets("Feuil1") .ListBoxes("zz_List").List = Array("Feuil1", "Feuil2", "Feuil3", "Feuil4") .ListBoxes("zz_List").ListIndex = 1 End With End Sub
2) - Si le nbre de feuilles du classeur est important (et/ou pour ne pas faire d'erreurs d'orthographe) Exécuter la macro : Sub Initialise_ListBox2() Dim Tabl_F() As String x = ActiveWorkbook.Sheets.Count ReDim Tabl_F(x) For i = 1 To x Tabl_F(i - 1) = ActiveWorkbook.Sheets(i).Name Next i With Sheets("Feuil1").ListBoxes("zz_List") .List = Array(Tabl_F) .ListIndex = 1 End With End Sub
3) - Si le nbre de feuilles du classeur est susceptible d'être modifié (ajouts/suppressions) Mettre la proc "Initialise_ListBox2" dans un module ordinaire et dans le module de ThisWorbook : Private Sub Workbook_Open() Initialise_ListBox2 End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) Initialise_ListBox2 End Sub
====== Dans tous les cas de figure, affecter à la ListBox la macro suivante : Dans un module ordinaire : Sub choix_F() Sheets(ActiveSheet.ListBoxes("zz_List").List(Sheets("Feuil1").ListBoxes("zz_List ").ListIndex)).Select End Sub
PS : exemple sur demande AV
Philippe.R
Bonjour Clément
Mon but est par la suite de ne plus faire apparaître les onglets du classeur.
Impossible Si, si, Clément c'est effectivement possible à partir d'Excel 2002 :
"Clément Marcotte" a écrit dans le message de news:
Bonjour,
Mon but est par la suite de ne plus faire apparaître les onglets du classeur.
Impossible
"ddh" a écrit dans le message de news:098801c3bb75$c1c49700$ Bonjour à tous
de la barre d'outils "formulaire". Je voudrais utiliser cette façon au lieu de celle qui consiste habituellement à cliquer sur l'onglet. Est-il possible de la faire et si oui de quelles façons?
Merci pour vos réponses
PS: c'est mon premier message dans le forum. J'espère que j'ai respecté la charte. Si ce n'est pas le cas, n'hésitez pas à me le dire
Bonjour Clément
Mon but est par la suite de ne
plus faire apparaître les onglets du classeur.
Impossible
Si, si, Clément c'est effectivement possible à partir d'Excel 2002 :
"Clément Marcotte" <clement.marcotte@sympatico.ca> a écrit dans le message de
news:OpjPJs4uDHA.2308@TK2MSFTNGP09.phx.gbl...
Bonjour,
Mon but est par la suite de ne
plus faire apparaître les onglets du classeur.
Impossible
"ddh" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:098801c3bb75$c1c49700$a001280a@phx.gbl...
Bonjour à tous
de la barre d'outils "formulaire". Je voudrais utiliser
cette façon au lieu de celle qui consiste habituellement
à cliquer sur l'onglet.
Est-il possible de la faire et si oui de quelles façons?
Merci pour vos réponses
PS: c'est mon premier message dans le forum. J'espère que
j'ai respecté la charte. Si ce n'est pas le cas,
n'hésitez pas à me le dire
"Clément Marcotte" a écrit dans le message de news:
Bonjour,
Mon but est par la suite de ne plus faire apparaître les onglets du classeur.
Impossible
"ddh" a écrit dans le message de news:098801c3bb75$c1c49700$ Bonjour à tous
de la barre d'outils "formulaire". Je voudrais utiliser cette façon au lieu de celle qui consiste habituellement à cliquer sur l'onglet. Est-il possible de la faire et si oui de quelles façons?
Merci pour vos réponses
PS: c'est mon premier message dans le forum. J'espère que j'ai respecté la charte. Si ce n'est pas le cas, n'hésitez pas à me le dire
Bonjour
Et ben, pour un premier message posté dans le forum, j'ai été gâté. Je ne pensais pas avoir autant de réponses ou d'idées. Merci, c'est vraiment sympa. J'ai testé assez rapidement toutes les propositions, mais il faut que je revienne dessus pour mieux les comprendre car il y a des petits bugs (ça doit venir de moi). La réponse de Serge me satisfait pleinement, car elle marche très bien et elle est très simple. Encor merci et @+
Bonjour
Et ben, pour un premier message posté dans le forum, j'ai
été gâté. Je ne pensais pas avoir autant de réponses ou
d'idées. Merci, c'est vraiment sympa.
J'ai testé assez rapidement toutes les propositions, mais
il faut que je revienne dessus pour mieux les comprendre
car il y a des petits bugs (ça doit venir de moi). La
réponse de Serge me satisfait pleinement, car elle marche
très bien et elle est très simple.
Encor merci et @+
Et ben, pour un premier message posté dans le forum, j'ai été gâté. Je ne pensais pas avoir autant de réponses ou d'idées. Merci, c'est vraiment sympa. J'ai testé assez rapidement toutes les propositions, mais il faut que je revienne dessus pour mieux les comprendre car il y a des petits bugs (ça doit venir de moi). La réponse de Serge me satisfait pleinement, car elle marche très bien et elle est très simple. Encor merci et @+