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, Exemple avec un combobox, (tu peux enlever le Unload Me s'il s'agit d'un uf en showmodal false mais cette propriété n'est pas directement disponible en 97)
Private Sub ComboBox1_Change() Dim strF As String strF = ComboBox1 Unload Me ActiveWorkbook.Sheets(strF).Activate End Sub
Private Sub Userform_initialize() Dim i As Byte ComboBox1.Clear For i = 1 To ActiveWorkbook.Sheets.Count ComboBox1.AddItem Sheets(i).Name Next End Sub
'lSteph
"TOM" a écrit dans le message de news: 443c1574$0$19717$
Bonjour,
Dans un userform, je voudrais accéder aux feuilles d'un classeur par une liste. Une bonne âme pourrait-elle me renseigner sur la macro à utiliser ?
D'avance merci.
Tom
Bonjour,
Exemple avec un combobox,
(tu peux enlever le Unload Me s'il s'agit d'un uf en showmodal false mais
cette propriété n'est pas directement disponible en 97)
Private Sub ComboBox1_Change()
Dim strF As String
strF = ComboBox1
Unload Me
ActiveWorkbook.Sheets(strF).Activate
End Sub
Private Sub Userform_initialize()
Dim i As Byte
ComboBox1.Clear
For i = 1 To ActiveWorkbook.Sheets.Count
ComboBox1.AddItem Sheets(i).Name
Next
End Sub
'lSteph
"TOM" <tntv.lg@wanadoo.fr> a écrit dans le message de news:
443c1574$0$19717$8fcfb975@news.wanadoo.fr...
Bonjour,
Dans un userform, je voudrais accéder aux feuilles d'un classeur par une
liste. Une bonne âme pourrait-elle me renseigner sur la macro à utiliser ?
Bonjour, Exemple avec un combobox, (tu peux enlever le Unload Me s'il s'agit d'un uf en showmodal false mais cette propriété n'est pas directement disponible en 97)
Private Sub ComboBox1_Change() Dim strF As String strF = ComboBox1 Unload Me ActiveWorkbook.Sheets(strF).Activate End Sub
Private Sub Userform_initialize() Dim i As Byte ComboBox1.Clear For i = 1 To ActiveWorkbook.Sheets.Count ComboBox1.AddItem Sheets(i).Name Next End Sub
'lSteph
"TOM" a écrit dans le message de news: 443c1574$0$19717$
Bonjour,
Dans un userform, je voudrais accéder aux feuilles d'un classeur par une liste. Une bonne âme pourrait-elle me renseigner sur la macro à utiliser ?
D'avance merci.
Tom
papou
Bonjour Avec un Userform comprenant une listbox et un bouton de commande, code à placer dans ton userform : Private Sub CommandButton1_Click() If Me.ListBox1.ListIndex = -1 Then Exit Sub Worksheets(ListBox1.Value).Activate Me.Hide End Sub Private Sub UserForm_Initialize() For i = 1 To Sheets.Count Me.ListBox1.AddItem Sheets(i).Name Next i End Sub
Cordialement Pascal
"TOM" a écrit dans le message de news: 443c1574$0$19717$
Bonjour,
Dans un userform, je voudrais accéder aux feuilles d'un classeur par une liste. Une bonne âme pourrait-elle me renseigner sur la macro à utiliser ?
D'avance merci.
Tom
Bonjour
Avec un Userform comprenant une listbox et un bouton de commande, code à
placer dans ton userform :
Private Sub CommandButton1_Click()
If Me.ListBox1.ListIndex = -1 Then Exit Sub
Worksheets(ListBox1.Value).Activate
Me.Hide
End Sub
Private Sub UserForm_Initialize()
For i = 1 To Sheets.Count
Me.ListBox1.AddItem Sheets(i).Name
Next i
End Sub
Cordialement
Pascal
"TOM" <tntv.lg@wanadoo.fr> a écrit dans le message de news:
443c1574$0$19717$8fcfb975@news.wanadoo.fr...
Bonjour,
Dans un userform, je voudrais accéder aux feuilles d'un classeur par une
liste. Une bonne âme pourrait-elle me renseigner sur la macro à utiliser ?
Bonjour Avec un Userform comprenant une listbox et un bouton de commande, code à placer dans ton userform : Private Sub CommandButton1_Click() If Me.ListBox1.ListIndex = -1 Then Exit Sub Worksheets(ListBox1.Value).Activate Me.Hide End Sub Private Sub UserForm_Initialize() For i = 1 To Sheets.Count Me.ListBox1.AddItem Sheets(i).Name Next i End Sub
Cordialement Pascal
"TOM" a écrit dans le message de news: 443c1574$0$19717$
Bonjour,
Dans un userform, je voudrais accéder aux feuilles d'un classeur par une liste. Une bonne âme pourrait-elle me renseigner sur la macro à utiliser ?
D'avance merci.
Tom
lSteph
...rectification, on peut enlever le unload me, même si showmodal=true
"lSteph" a écrit dans le message de news: %
Bonjour, Exemple avec un combobox, (tu peux enlever le Unload Me s'il s'agit d'un uf en showmodal false mais cette propriété n'est pas directement disponible en 97)
Private Sub ComboBox1_Change() Dim strF As String strF = ComboBox1 Unload Me ActiveWorkbook.Sheets(strF).Activate End Sub
Private Sub Userform_initialize() Dim i As Byte ComboBox1.Clear For i = 1 To ActiveWorkbook.Sheets.Count ComboBox1.AddItem Sheets(i).Name Next End Sub
'lSteph
"TOM" a écrit dans le message de news: 443c1574$0$19717$
Bonjour,
Dans un userform, je voudrais accéder aux feuilles d'un classeur par une liste. Une bonne âme pourrait-elle me renseigner sur la macro à utiliser ?
D'avance merci.
Tom
...rectification, on peut enlever le unload me, même si showmodal=true
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
%236DkjxfXGHA.3532@TK2MSFTNGP05.phx.gbl...
Bonjour,
Exemple avec un combobox,
(tu peux enlever le Unload Me s'il s'agit d'un uf en showmodal false mais
cette propriété n'est pas directement disponible en 97)
Private Sub ComboBox1_Change()
Dim strF As String
strF = ComboBox1
Unload Me
ActiveWorkbook.Sheets(strF).Activate
End Sub
Private Sub Userform_initialize()
Dim i As Byte
ComboBox1.Clear
For i = 1 To ActiveWorkbook.Sheets.Count
ComboBox1.AddItem Sheets(i).Name
Next
End Sub
'lSteph
"TOM" <tntv.lg@wanadoo.fr> a écrit dans le message de news:
443c1574$0$19717$8fcfb975@news.wanadoo.fr...
Bonjour,
Dans un userform, je voudrais accéder aux feuilles d'un classeur par une
liste. Une bonne âme pourrait-elle me renseigner sur la macro à utiliser
?
...rectification, on peut enlever le unload me, même si showmodal=true
"lSteph" a écrit dans le message de news: %
Bonjour, Exemple avec un combobox, (tu peux enlever le Unload Me s'il s'agit d'un uf en showmodal false mais cette propriété n'est pas directement disponible en 97)
Private Sub ComboBox1_Change() Dim strF As String strF = ComboBox1 Unload Me ActiveWorkbook.Sheets(strF).Activate End Sub
Private Sub Userform_initialize() Dim i As Byte ComboBox1.Clear For i = 1 To ActiveWorkbook.Sheets.Count ComboBox1.AddItem Sheets(i).Name Next End Sub
'lSteph
"TOM" a écrit dans le message de news: 443c1574$0$19717$
Bonjour,
Dans un userform, je voudrais accéder aux feuilles d'un classeur par une liste. Une bonne âme pourrait-elle me renseigner sur la macro à utiliser ?
D'avance merci.
Tom
ed
Je ne suis pas spécialiste, loin s'En faut, mais j'a itrouvé cette macro qui me plait bien. En espérant que cela te soit utile ed
Sub AccesSection() 'code diffusé par René Roy, mpfe ' Permet l'affichage d'une boîte de dialogue pour l'accès ' à la feuille de son choix Dim i As Integer Dim TopPos As Integer Dim SheetCount As Integer Dim PrintDlg As DialogSheet Dim CurrentSheet, FeuilleDépart As Worksheet Dim cb As OptionButton Application.ScreenUpdating = False
' Ajoute une feuille de dialogue temporaire Set CurrentSheet = ActiveSheet Set FeuilleDépart = ActiveSheet Set PrintDlg = ActiveWorkbook.DialogSheets.Add PrintDlg.Visible = xlSheetHidden
SheetCount = 0
' Ajoute les boutons d'option TopPos = 40 For i = 1 To ActiveWorkbook.Worksheets.Count Set CurrentSheet = ActiveWorkbook.Worksheets(i) ' Ne tient pas compte des feuilles vide ou masquées If Application.CountA(CurrentSheet.Cells) <> 0 And _ CurrentSheet.Visible Then SheetCount = SheetCount + 1 PrintDlg.OptionButtons.Add 78, TopPos, 150, 16.5 PrintDlg.OptionButtons(SheetCount).Text = _ CurrentSheet.Name If CurrentSheet.Name = FeuilleDépart.Name Then _ PrintDlg.OptionButtons(SheetCount).Value = xlOn TopPos = TopPos + 13 End If Next i
' Positionne les boutons OK et Annuler PrintDlg.Buttons.Left = 240
' Dimensionne la hauteur, la largeur et le titre de la bte de dialogue With PrintDlg.DialogFrame .Height = Application.Max _ (68, PrintDlg.DialogFrame.Top + TopPos - 34) .Width = 230 .Caption = "A quelle feuille souhaitez-vous accéder ? " End With
' Change l'ordre de tabulation des boutons OK et Annuler ' afin de donner le focus au premier bouton d'option PrintDlg.Buttons("Button 2").BringToFront PrintDlg.Buttons("Button 3").BringToFront
' Affiche la boîte de dialogue FeuilleDépart.Activate Application.ScreenUpdating = True If SheetCount <> 0 Then If PrintDlg.Show Then Application.ScreenUpdating = False For i = 1 To SheetCount If PrintDlg.OptionButtons(i).Value = xlOn Then Worksheets(PrintDlg.OptionButtons(i).Caption).Activate 'autre code selon besoin End If Next i End If Else MsgBox "Toutes les feuilles sont vides." End If
' Supprime la feuille de dialogue temporaire (sans message d'avertissement) Application.DisplayAlerts = False PrintDlg.Delete End Sub
Je ne suis pas spécialiste, loin s'En faut, mais j'a itrouvé cette macro qui
me plait bien.
En espérant que cela te soit utile
ed
Sub AccesSection()
'code diffusé par René Roy, mpfe
' Permet l'affichage d'une boîte de dialogue pour l'accès
' à la feuille de son choix
Dim i As Integer
Dim TopPos As Integer
Dim SheetCount As Integer
Dim PrintDlg As DialogSheet
Dim CurrentSheet, FeuilleDépart As Worksheet
Dim cb As OptionButton
Application.ScreenUpdating = False
' Ajoute une feuille de dialogue temporaire
Set CurrentSheet = ActiveSheet
Set FeuilleDépart = ActiveSheet
Set PrintDlg = ActiveWorkbook.DialogSheets.Add
PrintDlg.Visible = xlSheetHidden
SheetCount = 0
' Ajoute les boutons d'option
TopPos = 40
For i = 1 To ActiveWorkbook.Worksheets.Count
Set CurrentSheet = ActiveWorkbook.Worksheets(i)
' Ne tient pas compte des feuilles vide ou masquées
If Application.CountA(CurrentSheet.Cells) <> 0 And _
CurrentSheet.Visible Then
SheetCount = SheetCount + 1
PrintDlg.OptionButtons.Add 78, TopPos, 150, 16.5
PrintDlg.OptionButtons(SheetCount).Text = _
CurrentSheet.Name
If CurrentSheet.Name = FeuilleDépart.Name Then _
PrintDlg.OptionButtons(SheetCount).Value = xlOn
TopPos = TopPos + 13
End If
Next i
' Positionne les boutons OK et Annuler
PrintDlg.Buttons.Left = 240
' Dimensionne la hauteur, la largeur et le titre de la bte de dialogue
With PrintDlg.DialogFrame
.Height = Application.Max _
(68, PrintDlg.DialogFrame.Top + TopPos - 34)
.Width = 230
.Caption = "A quelle feuille souhaitez-vous accéder ? "
End With
' Change l'ordre de tabulation des boutons OK et Annuler
' afin de donner le focus au premier bouton d'option
PrintDlg.Buttons("Button 2").BringToFront
PrintDlg.Buttons("Button 3").BringToFront
' Affiche la boîte de dialogue
FeuilleDépart.Activate
Application.ScreenUpdating = True
If SheetCount <> 0 Then
If PrintDlg.Show Then
Application.ScreenUpdating = False
For i = 1 To SheetCount
If PrintDlg.OptionButtons(i).Value = xlOn Then
Worksheets(PrintDlg.OptionButtons(i).Caption).Activate
'autre code selon besoin
End If
Next i
End If
Else
MsgBox "Toutes les feuilles sont vides."
End If
' Supprime la feuille de dialogue temporaire (sans message d'avertissement)
Application.DisplayAlerts = False
PrintDlg.Delete
End Sub
Je ne suis pas spécialiste, loin s'En faut, mais j'a itrouvé cette macro qui me plait bien. En espérant que cela te soit utile ed
Sub AccesSection() 'code diffusé par René Roy, mpfe ' Permet l'affichage d'une boîte de dialogue pour l'accès ' à la feuille de son choix Dim i As Integer Dim TopPos As Integer Dim SheetCount As Integer Dim PrintDlg As DialogSheet Dim CurrentSheet, FeuilleDépart As Worksheet Dim cb As OptionButton Application.ScreenUpdating = False
' Ajoute une feuille de dialogue temporaire Set CurrentSheet = ActiveSheet Set FeuilleDépart = ActiveSheet Set PrintDlg = ActiveWorkbook.DialogSheets.Add PrintDlg.Visible = xlSheetHidden
SheetCount = 0
' Ajoute les boutons d'option TopPos = 40 For i = 1 To ActiveWorkbook.Worksheets.Count Set CurrentSheet = ActiveWorkbook.Worksheets(i) ' Ne tient pas compte des feuilles vide ou masquées If Application.CountA(CurrentSheet.Cells) <> 0 And _ CurrentSheet.Visible Then SheetCount = SheetCount + 1 PrintDlg.OptionButtons.Add 78, TopPos, 150, 16.5 PrintDlg.OptionButtons(SheetCount).Text = _ CurrentSheet.Name If CurrentSheet.Name = FeuilleDépart.Name Then _ PrintDlg.OptionButtons(SheetCount).Value = xlOn TopPos = TopPos + 13 End If Next i
' Positionne les boutons OK et Annuler PrintDlg.Buttons.Left = 240
' Dimensionne la hauteur, la largeur et le titre de la bte de dialogue With PrintDlg.DialogFrame .Height = Application.Max _ (68, PrintDlg.DialogFrame.Top + TopPos - 34) .Width = 230 .Caption = "A quelle feuille souhaitez-vous accéder ? " End With
' Change l'ordre de tabulation des boutons OK et Annuler ' afin de donner le focus au premier bouton d'option PrintDlg.Buttons("Button 2").BringToFront PrintDlg.Buttons("Button 3").BringToFront
' Affiche la boîte de dialogue FeuilleDépart.Activate Application.ScreenUpdating = True If SheetCount <> 0 Then If PrintDlg.Show Then Application.ScreenUpdating = False For i = 1 To SheetCount If PrintDlg.OptionButtons(i).Value = xlOn Then Worksheets(PrintDlg.OptionButtons(i).Caption).Activate 'autre code selon besoin End If Next i End If Else MsgBox "Toutes les feuilles sont vides." End If
' Supprime la feuille de dialogue temporaire (sans message d'avertissement) Application.DisplayAlerts = False PrintDlg.Delete End Sub
TOM
Bonjour,
Merci beaucoup pour vos réponses. Je vais essayer tout de suite.
A bientôt. Tom
Bonjour,
Merci beaucoup pour vos réponses.
Je vais essayer tout de suite.