Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

liste deroulante pour aller d'un onglet vers un autre

6 réponses
Avatar
jean marie
Bonjour

pouvez vous me dire comment faire pour créer une litse déroulante sur une
feuille avec les différents noms des onglets et afin d'aller d'un onglet à un
autre

merci pour votre aide
par avance

jean marie

6 réponses

Avatar
Elliac
Bonjour,

Dans un module :
Sub Toto()
For cpt = 1 To Sheets.Count
Cells(cpt, 1) = Sheets(cpt).Name
Next
Range("a1").CurrentRegion.Select
ActiveWorkbook.Names.Add Name:="ListeFeuilles", RefersToR1C1:= _
Selection
Range("D1").Interior.ColorIndex = 6
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=ListeFeuilles"
End With
End Sub

Dans le code de la feuille contenant la liste déroulante :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$1" Then Sheets(Target.Value).Activate
End Sub

Camille

"jean marie" wrote:

Bonjour

pouvez vous me dire comment faire pour créer une litse déroulante sur une
feuille avec les différents noms des onglets et afin d'aller d'un onglet à un
autre

merci pour votre aide
par avance

jean marie



Avatar
Jacky
Bonjour,

Un clique droit sur les flêches en bas à gauche du nom des onglets fait
exactement cela.

Salutations
JJ

"jean marie" a écrit dans le message
de news:
Bonjour

pouvez vous me dire comment faire pour créer une litse déroulante sur une
feuille avec les différents noms des onglets et afin d'aller d'un onglet à
un
autre

merci pour votre aide
par avance

jean marie



Avatar
JB
Bonjour,

Liste triée des onglets dans une liste déroulante:

http://cjoint.com/?mdpxu1xJAL

Private Sub Workbook_Open()
Dim temp()
For i = 1 To Sheets.Count
ReDim Preserve temp(1 To i)
temp(i) = Sheets(i).Name
Next i
n = UBound(temp)
Call Tri(temp, 1, n)
Sheets("ListeOngletsFeuille").ChoixOnglet.List = temp
End Sub

Private Sub ChoixOnglet_Change()
m = ChoixOnglet
Sheets(m).Select
End Sub

Sub Tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call Tri(a, g, droi)
If gauc < d Then Call Tri(a, gauc, d)
End Sub

JB

Bonjour,

Un clique droit sur les flêches en bas à gauche du nom des onglets fa it
exactement cela.

Salutations
JJ

"jean marie" a écrit dans le mess age
de news:
Bonjour

pouvez vous me dire comment faire pour créer une litse déroulante s ur une
feuille avec les différents noms des onglets et afin d'aller d'un ong let à
un
autre

merci pour votre aide
par avance

jean marie





Avatar
jean marie
Merci pour le code
mais je n'arrive pas a faire le lien entre le code et la liste deroulante

je suis novice

peux tu m aider


Bonjour,

Dans un module :
Sub Toto()
For cpt = 1 To Sheets.Count
Cells(cpt, 1) = Sheets(cpt).Name
Next
Range("a1").CurrentRegion.Select
ActiveWorkbook.Names.Add Name:="ListeFeuilles", RefersToR1C1:= _
Selection
Range("D1").Interior.ColorIndex = 6
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=ListeFeuilles"
End With
End Sub

Dans le code de la feuille contenant la liste déroulante :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$1" Then Sheets(Target.Value).Activate
End Sub

Camille

"jean marie" wrote:

Bonjour

pouvez vous me dire comment faire pour créer une litse déroulante sur une
feuille avec les différents noms des onglets et afin d'aller d'un onglet à un
autre

merci pour votre aide
par avance

jean marie





Avatar
lSteph
Bonjour,

Comme dit Jacky les onglets font bien mieux et directement mais si
c'est pour support d'exemple:
Si tu mets la combo dans une feuille tu ira de cette feuille à une
autre et non d'un onglet à l'autre, puisqu'il te faudra chaque fois
revenir
à la feuille qui contient ta combo. Une liste dans un userform serait
déjà mieux.

Voici exemple combo dans la feuille:

à partir de la BarreOutilsVB
cliquer sur l'outil Boite Outils Contrôles
Placer une combobox dans la feuille, doublecliquer dessus
Coller le code ci-après dans le module qui apparaît fermer vbe et
au retour dans excel cliquer sur l'equerre bleue dans BarreOutilsVB
pour sortir du mode création.
'''''*****
Private Sub ComboBox1_change()
If ComboBox1.Text <> "" Then _
Sheets(ComboBox1.Text).Activate
End Sub

Private Sub ComboBox1_GotFocus()
Dim sh
ComboBox1.Clear
For Each sh In ThisWorkbook.Sheets
ComboBox1.AddItem sh.Name
Next
End Sub
'''''*****

Voici exemple avec userform
alt+F11 pour ouvrir VBE
Insertion userform
Ajouter un combo et un bouton
'''''****Code du userform*****
Private Sub CommandButton1_Click()
Sheets(Me.ComboBox1.Text).Activate
End Sub

Private Sub UserForm_Initialize()
Dim Sh
ComboBox1.Clear
For Each Sh In ActiveWorkbook.Sheets
ComboBox1.AddItem Sh.Name
Next
End Sub
'''''****dans thisworkbook****
Private Sub Workbook_SheetBeforeDoubleClick(ByVal _
Sh As Object, ByVal Target As Range, Cancel As Boolean)
UserForm1.Show
End Sub
'''''***********************

'Cdlt

'lSteph

Il se trouve que jean marie a formulé :
Bonjour

pouvez vous me dire comment faire pour créer une litse déroulante sur une
feuille avec les différents noms des onglets et afin d'aller d'un onglet à
un autre

merci pour votre aide
par avance

jean marie


--
- -

Avatar
JB
Barre d'outils avec noms des feuilles:

http://cjoint.com/?mdpLBbSaf5

Sub auto_open()
On Error Resume Next
Set Barre = CommandBars.Add
Barre.Name = "BarreFeuilles"
Barre.Visible = True
Set Menu = Barre.Controls.Add(msoControlComboBox)
For i = 1 To Sheets.Count
Menu.AddItem Sheets(i).Name
Next
Menu.OnAction = "ChoixFeuille"
Menu.Text = "Sélectionner puis choisir"
End Sub

Sub auto_close()
On Error Resume Next
CommandBars("BarreFeuilles").Delete
End Sub

Sub ChoixFeuille()
Sheets(CommandBars("BarreFeuilles").Controls(1).Text).Select
End Sub

JB


Bonjour,

Un clique droit sur les flêches en bas à gauche du nom des onglets fa it
exactement cela.

Salutations
JJ

"jean marie" a écrit dans le mess age
de news:
Bonjour

pouvez vous me dire comment faire pour créer une litse déroulante s ur une
feuille avec les différents noms des onglets et afin d'aller d'un ong let à
un
autre

merci pour votre aide
par avance

jean marie