liste deroulante pour aller d'un onglet vers un autre
6 réponses
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
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
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
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
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
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
Bonjour,
Un clique droit sur les flêches en bas à gauche du nom des onglets fait
exactement cela.
Salutations
JJ
"jean marie" <jeanmarie@discussions.microsoft.com> a écrit dans le message
de news: 6AE0DB74-91D1-4332-BA8F-08F983F174F9@microsoft.com...
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
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
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
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" <jeanmarie@discussions.microsoft.com> a écrit dans le mess age
de news: 6AE0DB74-91D1-4332-BA8F-08F983F174F9@microsoft.com...
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
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
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
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 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
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
-- - -
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
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
-- - -
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
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" <jeanmarie@discussions.microsoft.com> a écrit dans le mess age
de news: 6AE0DB74-91D1-4332-BA8F-08F983F174F9@microsoft.com...
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
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