Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à mon
besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les 38
feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois selon
les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès que la
macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
--
à+twinley
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à mon
besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les 38
feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois selon
les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès que la
macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
--
à+twinley
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à mon
besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les 38
feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois selon
les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès que la
macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
--
à+twinley
Salut
Macro à recopier
Dim onglet(100) As Boolean
rep = InputBox("N° du 1er onglet des 3")
'si les 3 sont Feuille10 - 11 - 12 taper 10
onglet(1) = True 'si Index est la 1ere page
onglet(rep) = True
onglet(rep + 1) = True
onglet(rep + 2) = True
onglet(38) = True
For k = 1 To Sheets.Count
If onglet(k) Then
Sheets(k).Visible = True
Else
Sheets(k).Visible = False
End If
Next
"twinley" a écrit dans le message news:Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à mon
besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les 38
feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois selon
les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès que la
macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
--
à+twinley
Salut
Macro à recopier
Dim onglet(100) As Boolean
rep = InputBox("N° du 1er onglet des 3")
'si les 3 sont Feuille10 - 11 - 12 taper 10
onglet(1) = True 'si Index est la 1ere page
onglet(rep) = True
onglet(rep + 1) = True
onglet(rep + 2) = True
onglet(38) = True
For k = 1 To Sheets.Count
If onglet(k) Then
Sheets(k).Visible = True
Else
Sheets(k).Visible = False
End If
Next
"twinley" <twinleymax@hotmail.com> a écrit dans le message news:
e8toezvAFHA.4004@tk2msftngp13.phx.gbl...
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à mon
besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les 38
feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois selon
les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès que la
macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
--
à+twinley
Salut
Macro à recopier
Dim onglet(100) As Boolean
rep = InputBox("N° du 1er onglet des 3")
'si les 3 sont Feuille10 - 11 - 12 taper 10
onglet(1) = True 'si Index est la 1ere page
onglet(rep) = True
onglet(rep + 1) = True
onglet(rep + 2) = True
onglet(38) = True
For k = 1 To Sheets.Count
If onglet(k) Then
Sheets(k).Visible = True
Else
Sheets(k).Visible = False
End If
Next
"twinley" a écrit dans le message news:Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à mon
besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les 38
feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois selon
les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès que la
macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
--
à+twinley
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à mon
besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les 38
feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois selon
les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès que la
macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à mon
besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les 38
feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois selon
les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès que la
macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à mon
besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les 38
feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois selon
les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès que la
macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
Bonjour,
imaginons que tu récupères l'info sur tes feuilles à afficher sous la
forme 1-5-3.
Dans l'exemple suivant , j'ai récupréré cette valeur depuis un click sur
un combobox mais peu importe. Tu peux obetnir ce que tu souhaites de la
manière suivante. Ceci dit, il faut diablement bien gérer les numéros
d'index de tes feuilles pour n epa s te planter.
Enfin, le passage par un array peut êtr utile et même extrêmement
efficace mais dans ce cas , je n'y vois qu'assez peu d'interet.
tabtext = Split(ComboBox1.Value, "-")
For i = 2 To Sheets.Count
Sheets(i).Visible = False 'on masque tout sauf ta 1ere feuille
Next
'ensuite on ne démasque que ce qui correspond à la valeur choisie. Ce
'n'est pas utile de commencer le for next à 0 bien qu'il commence
'effectivement à 0 car ta première feuille est toujours visible.
For J = 1 To UBound(tabtext)
Sheets(CInt(tabtext(J))).Visible = True
Next
A+
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à mon
besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les 38
feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois
selon les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès que
la macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
Bonjour,
imaginons que tu récupères l'info sur tes feuilles à afficher sous la
forme 1-5-3.
Dans l'exemple suivant , j'ai récupréré cette valeur depuis un click sur
un combobox mais peu importe. Tu peux obetnir ce que tu souhaites de la
manière suivante. Ceci dit, il faut diablement bien gérer les numéros
d'index de tes feuilles pour n epa s te planter.
Enfin, le passage par un array peut êtr utile et même extrêmement
efficace mais dans ce cas , je n'y vois qu'assez peu d'interet.
tabtext = Split(ComboBox1.Value, "-")
For i = 2 To Sheets.Count
Sheets(i).Visible = False 'on masque tout sauf ta 1ere feuille
Next
'ensuite on ne démasque que ce qui correspond à la valeur choisie. Ce
'n'est pas utile de commencer le for next à 0 bien qu'il commence
'effectivement à 0 car ta première feuille est toujours visible.
For J = 1 To UBound(tabtext)
Sheets(CInt(tabtext(J))).Visible = True
Next
A+
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à mon
besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les 38
feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois
selon les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès que
la macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
Bonjour,
imaginons que tu récupères l'info sur tes feuilles à afficher sous la
forme 1-5-3.
Dans l'exemple suivant , j'ai récupréré cette valeur depuis un click sur
un combobox mais peu importe. Tu peux obetnir ce que tu souhaites de la
manière suivante. Ceci dit, il faut diablement bien gérer les numéros
d'index de tes feuilles pour n epa s te planter.
Enfin, le passage par un array peut êtr utile et même extrêmement
efficace mais dans ce cas , je n'y vois qu'assez peu d'interet.
tabtext = Split(ComboBox1.Value, "-")
For i = 2 To Sheets.Count
Sheets(i).Visible = False 'on masque tout sauf ta 1ere feuille
Next
'ensuite on ne démasque que ce qui correspond à la valeur choisie. Ce
'n'est pas utile de commencer le for next à 0 bien qu'il commence
'effectivement à 0 car ta première feuille est toujours visible.
For J = 1 To UBound(tabtext)
Sheets(CInt(tabtext(J))).Visible = True
Next
A+
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à mon
besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les 38
feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois
selon les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès que
la macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
Merci anonymousA
J'avais besoin de cette fonctionnalité, et voilà que je la trouve sur un
site.
Je vois qu'elle bosse avec les tableaux auquels je n'ai jamais touché.
Belle occase de m'y interesser avec peu de code !
Mais je n'ai pas réussi à la faire tourner et quand j'ai modifié,
c'était de mal en pis. Des tonnes d'erreurs. Quand on sait pas, on
touche pas...
Tu me fous les jetons, effectivement si les onglets sont inversés par
l'utilisateur, ça va pas être terrible.
Est-il possible de figer la place des feuilles sans perdre cette
nouvelle possibilité d'affichage par paquets de 5 feuilles ?
Remarque judicieuse de ta part.
à+twinleyBonjour,
imaginons que tu récupères l'info sur tes feuilles à afficher sous la
forme 1-5-3.
Dans l'exemple suivant , j'ai récupréré cette valeur depuis un click
sur un combobox mais peu importe. Tu peux obetnir ce que tu souhaites
de la manière suivante. Ceci dit, il faut diablement bien gérer les
numéros d'index de tes feuilles pour n epa s te planter.
Enfin, le passage par un array peut êtr utile et même extrêmement
efficace mais dans ce cas , je n'y vois qu'assez peu d'interet.
tabtext = Split(ComboBox1.Value, "-")
For i = 2 To Sheets.Count
Sheets(i).Visible = False 'on masque tout sauf ta 1ere feuille
Next
'ensuite on ne démasque que ce qui correspond à la valeur choisie. Ce
'n'est pas utile de commencer le for next à 0 bien qu'il commence
'effectivement à 0 car ta première feuille est toujours visible.
For J = 1 To UBound(tabtext)
Sheets(CInt(tabtext(J))).Visible = True
Next
A+
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à
mon besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les 38
feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois
selon les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès que
la macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
Merci anonymousA
J'avais besoin de cette fonctionnalité, et voilà que je la trouve sur un
site.
Je vois qu'elle bosse avec les tableaux auquels je n'ai jamais touché.
Belle occase de m'y interesser avec peu de code !
Mais je n'ai pas réussi à la faire tourner et quand j'ai modifié,
c'était de mal en pis. Des tonnes d'erreurs. Quand on sait pas, on
touche pas...
Tu me fous les jetons, effectivement si les onglets sont inversés par
l'utilisateur, ça va pas être terrible.
Est-il possible de figer la place des feuilles sans perdre cette
nouvelle possibilité d'affichage par paquets de 5 feuilles ?
Remarque judicieuse de ta part.
à+twinley
Bonjour,
imaginons que tu récupères l'info sur tes feuilles à afficher sous la
forme 1-5-3.
Dans l'exemple suivant , j'ai récupréré cette valeur depuis un click
sur un combobox mais peu importe. Tu peux obetnir ce que tu souhaites
de la manière suivante. Ceci dit, il faut diablement bien gérer les
numéros d'index de tes feuilles pour n epa s te planter.
Enfin, le passage par un array peut êtr utile et même extrêmement
efficace mais dans ce cas , je n'y vois qu'assez peu d'interet.
tabtext = Split(ComboBox1.Value, "-")
For i = 2 To Sheets.Count
Sheets(i).Visible = False 'on masque tout sauf ta 1ere feuille
Next
'ensuite on ne démasque que ce qui correspond à la valeur choisie. Ce
'n'est pas utile de commencer le for next à 0 bien qu'il commence
'effectivement à 0 car ta première feuille est toujours visible.
For J = 1 To UBound(tabtext)
Sheets(CInt(tabtext(J))).Visible = True
Next
A+
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à
mon besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les 38
feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois
selon les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès que
la macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
Merci anonymousA
J'avais besoin de cette fonctionnalité, et voilà que je la trouve sur un
site.
Je vois qu'elle bosse avec les tableaux auquels je n'ai jamais touché.
Belle occase de m'y interesser avec peu de code !
Mais je n'ai pas réussi à la faire tourner et quand j'ai modifié,
c'était de mal en pis. Des tonnes d'erreurs. Quand on sait pas, on
touche pas...
Tu me fous les jetons, effectivement si les onglets sont inversés par
l'utilisateur, ça va pas être terrible.
Est-il possible de figer la place des feuilles sans perdre cette
nouvelle possibilité d'affichage par paquets de 5 feuilles ?
Remarque judicieuse de ta part.
à+twinleyBonjour,
imaginons que tu récupères l'info sur tes feuilles à afficher sous la
forme 1-5-3.
Dans l'exemple suivant , j'ai récupréré cette valeur depuis un click
sur un combobox mais peu importe. Tu peux obetnir ce que tu souhaites
de la manière suivante. Ceci dit, il faut diablement bien gérer les
numéros d'index de tes feuilles pour n epa s te planter.
Enfin, le passage par un array peut êtr utile et même extrêmement
efficace mais dans ce cas , je n'y vois qu'assez peu d'interet.
tabtext = Split(ComboBox1.Value, "-")
For i = 2 To Sheets.Count
Sheets(i).Visible = False 'on masque tout sauf ta 1ere feuille
Next
'ensuite on ne démasque que ce qui correspond à la valeur choisie. Ce
'n'est pas utile de commencer le for next à 0 bien qu'il commence
'effectivement à 0 car ta première feuille est toujours visible.
For J = 1 To UBound(tabtext)
Sheets(CInt(tabtext(J))).Visible = True
Next
A+
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à
mon besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les 38
feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois
selon les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès que
la macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
re,
le + simple c'est de proteger la structure du classeur une fois ton
affichage fait. Mais il faudra le deproteger avant ton action sur les
visible car autrement ca va se planter.
Autre solution eventuelle, un peu + complexe à gerer, c'est de
travailler sur les codenames des feuilles et pas sur leurs noms ou sur
leurs index et bien sur proteger ton projet VBA pour eviter à des petits
malins d'aller changer les codesnames par derrière.
A+Merci anonymousA
J'avais besoin de cette fonctionnalité, et voilà que je la trouve sur
un site.
Je vois qu'elle bosse avec les tableaux auquels je n'ai jamais touché.
Belle occase de m'y interesser avec peu de code !
Mais je n'ai pas réussi à la faire tourner et quand j'ai modifié,
c'était de mal en pis. Des tonnes d'erreurs. Quand on sait pas, on
touche pas...
Tu me fous les jetons, effectivement si les onglets sont inversés par
l'utilisateur, ça va pas être terrible.
Est-il possible de figer la place des feuilles sans perdre cette
nouvelle possibilité d'affichage par paquets de 5 feuilles ?
Remarque judicieuse de ta part.
à+twinleyBonjour,
imaginons que tu récupères l'info sur tes feuilles à afficher sous la
forme 1-5-3.
Dans l'exemple suivant , j'ai récupréré cette valeur depuis un click
sur un combobox mais peu importe. Tu peux obetnir ce que tu souhaites
de la manière suivante. Ceci dit, il faut diablement bien gérer les
numéros d'index de tes feuilles pour n epa s te planter.
Enfin, le passage par un array peut êtr utile et même extrêmement
efficace mais dans ce cas , je n'y vois qu'assez peu d'interet.
tabtext = Split(ComboBox1.Value, "-")
For i = 2 To Sheets.Count
Sheets(i).Visible = False 'on masque tout sauf ta 1ere feuille
Next
'ensuite on ne démasque que ce qui correspond à la valeur choisie. Ce
'n'est pas utile de commencer le for next à 0 bien qu'il commence
'effectivement à 0 car ta première feuille est toujours visible.
For J = 1 To UBound(tabtext)
Sheets(CInt(tabtext(J))).Visible = True
Next
A+
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à
mon besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les 38
feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois
selon les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès
que la macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
re,
le + simple c'est de proteger la structure du classeur une fois ton
affichage fait. Mais il faudra le deproteger avant ton action sur les
visible car autrement ca va se planter.
Autre solution eventuelle, un peu + complexe à gerer, c'est de
travailler sur les codenames des feuilles et pas sur leurs noms ou sur
leurs index et bien sur proteger ton projet VBA pour eviter à des petits
malins d'aller changer les codesnames par derrière.
A+
Merci anonymousA
J'avais besoin de cette fonctionnalité, et voilà que je la trouve sur
un site.
Je vois qu'elle bosse avec les tableaux auquels je n'ai jamais touché.
Belle occase de m'y interesser avec peu de code !
Mais je n'ai pas réussi à la faire tourner et quand j'ai modifié,
c'était de mal en pis. Des tonnes d'erreurs. Quand on sait pas, on
touche pas...
Tu me fous les jetons, effectivement si les onglets sont inversés par
l'utilisateur, ça va pas être terrible.
Est-il possible de figer la place des feuilles sans perdre cette
nouvelle possibilité d'affichage par paquets de 5 feuilles ?
Remarque judicieuse de ta part.
à+twinley
Bonjour,
imaginons que tu récupères l'info sur tes feuilles à afficher sous la
forme 1-5-3.
Dans l'exemple suivant , j'ai récupréré cette valeur depuis un click
sur un combobox mais peu importe. Tu peux obetnir ce que tu souhaites
de la manière suivante. Ceci dit, il faut diablement bien gérer les
numéros d'index de tes feuilles pour n epa s te planter.
Enfin, le passage par un array peut êtr utile et même extrêmement
efficace mais dans ce cas , je n'y vois qu'assez peu d'interet.
tabtext = Split(ComboBox1.Value, "-")
For i = 2 To Sheets.Count
Sheets(i).Visible = False 'on masque tout sauf ta 1ere feuille
Next
'ensuite on ne démasque que ce qui correspond à la valeur choisie. Ce
'n'est pas utile de commencer le for next à 0 bien qu'il commence
'effectivement à 0 car ta première feuille est toujours visible.
For J = 1 To UBound(tabtext)
Sheets(CInt(tabtext(J))).Visible = True
Next
A+
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à
mon besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les 38
feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois
selon les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès
que la macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
re,
le + simple c'est de proteger la structure du classeur une fois ton
affichage fait. Mais il faudra le deproteger avant ton action sur les
visible car autrement ca va se planter.
Autre solution eventuelle, un peu + complexe à gerer, c'est de
travailler sur les codenames des feuilles et pas sur leurs noms ou sur
leurs index et bien sur proteger ton projet VBA pour eviter à des petits
malins d'aller changer les codesnames par derrière.
A+Merci anonymousA
J'avais besoin de cette fonctionnalité, et voilà que je la trouve sur
un site.
Je vois qu'elle bosse avec les tableaux auquels je n'ai jamais touché.
Belle occase de m'y interesser avec peu de code !
Mais je n'ai pas réussi à la faire tourner et quand j'ai modifié,
c'était de mal en pis. Des tonnes d'erreurs. Quand on sait pas, on
touche pas...
Tu me fous les jetons, effectivement si les onglets sont inversés par
l'utilisateur, ça va pas être terrible.
Est-il possible de figer la place des feuilles sans perdre cette
nouvelle possibilité d'affichage par paquets de 5 feuilles ?
Remarque judicieuse de ta part.
à+twinleyBonjour,
imaginons que tu récupères l'info sur tes feuilles à afficher sous la
forme 1-5-3.
Dans l'exemple suivant , j'ai récupréré cette valeur depuis un click
sur un combobox mais peu importe. Tu peux obetnir ce que tu souhaites
de la manière suivante. Ceci dit, il faut diablement bien gérer les
numéros d'index de tes feuilles pour n epa s te planter.
Enfin, le passage par un array peut êtr utile et même extrêmement
efficace mais dans ce cas , je n'y vois qu'assez peu d'interet.
tabtext = Split(ComboBox1.Value, "-")
For i = 2 To Sheets.Count
Sheets(i).Visible = False 'on masque tout sauf ta 1ere feuille
Next
'ensuite on ne démasque que ce qui correspond à la valeur choisie. Ce
'n'est pas utile de commencer le for next à 0 bien qu'il commence
'effectivement à 0 car ta première feuille est toujours visible.
For J = 1 To UBound(tabtext)
Sheets(CInt(tabtext(J))).Visible = True
Next
A+
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à
mon besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les 38
feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois
selon les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès
que la macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
.../...
je ne suis pas sur de comprendre ce que signifie "protéger la structure
" et comment le faire !
la feuil1 c'est un index
la dernière c'est une recap
la 2 c'est janviercompta
la 3 c'est janviersocial
la 4 c'est janvierjuridique
la 5 c'est févriercompta
la 6 c'est févriersocial
la 7 c'est févrierjuridique
etc jusqu'à decembre.
le nom des onglets devraient éviter des confusions si personne ne les
modifie (et aussi l'entête de la feuille). Par contre c'est un nom
composé lourd et c'est plus simple de manipuler avec l'index.
Je m'oriente vers l'idée de prendre la peine de faire une boucle qui
teste B1 sur les mots compta, soc et jurid et B2 qui contient une date,
pour vérifier et repositionner les feuilles avant d'afficher les 5
feuilles.
l'idée de protéger - déprotéger (si c'est ce que j'imagine) suppose qu'à
un moment l'utilisateur peut inverser la position des feuilles.
Si je ne vérifie pas, je ne suis pas à l'abri d'un décalage et
l'affichage manquera de précision.
Pour l'instant me risque n'est qu'à l'affichage, mais après à la
compilation des données, ça risque d'être cata.
Ben dis donc, ta remarque anodyne anonymous m'emmène loin...
Merci de m'avoir montré ce point essentiel.
à+twinleyre,
le + simple c'est de proteger la structure du classeur une fois ton
affichage fait. Mais il faudra le deproteger avant ton action sur les
visible car autrement ca va se planter.
Autre solution eventuelle, un peu + complexe à gerer, c'est de
travailler sur les codenames des feuilles et pas sur leurs noms ou sur
leurs index et bien sur proteger ton projet VBA pour eviter à des
petits malins d'aller changer les codesnames par derrière.
A+Merci anonymousA
J'avais besoin de cette fonctionnalité, et voilà que je la trouve sur
un site.
Je vois qu'elle bosse avec les tableaux auquels je n'ai jamais touché.
Belle occase de m'y interesser avec peu de code !
Mais je n'ai pas réussi à la faire tourner et quand j'ai modifié,
c'était de mal en pis. Des tonnes d'erreurs. Quand on sait pas, on
touche pas...
Tu me fous les jetons, effectivement si les onglets sont inversés par
l'utilisateur, ça va pas être terrible.
Est-il possible de figer la place des feuilles sans perdre cette
nouvelle possibilité d'affichage par paquets de 5 feuilles ?
Remarque judicieuse de ta part.
à+twinleyBonjour,
imaginons que tu récupères l'info sur tes feuilles à afficher sous
la forme 1-5-3.
Dans l'exemple suivant , j'ai récupréré cette valeur depuis un click
sur un combobox mais peu importe. Tu peux obetnir ce que tu
souhaites de la manière suivante. Ceci dit, il faut diablement bien
gérer les numéros d'index de tes feuilles pour n epa s te planter.
Enfin, le passage par un array peut êtr utile et même extrêmement
efficace mais dans ce cas , je n'y vois qu'assez peu d'interet.
tabtext = Split(ComboBox1.Value, "-")
For i = 2 To Sheets.Count
Sheets(i).Visible = False 'on masque tout sauf ta 1ere feuille
Next
'ensuite on ne démasque que ce qui correspond à la valeur choisie.
Ce 'n'est pas utile de commencer le for next à 0 bien qu'il commence
'effectivement à 0 car ta première feuille est toujours visible.
For J = 1 To UBound(tabtext)
Sheets(CInt(tabtext(J))).Visible = True
Next
A+
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à
mon besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les
38 feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois
selon les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès
que la macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
.../...
je ne suis pas sur de comprendre ce que signifie "protéger la structure
" et comment le faire !
la feuil1 c'est un index
la dernière c'est une recap
la 2 c'est janviercompta
la 3 c'est janviersocial
la 4 c'est janvierjuridique
la 5 c'est févriercompta
la 6 c'est févriersocial
la 7 c'est févrierjuridique
etc jusqu'à decembre.
le nom des onglets devraient éviter des confusions si personne ne les
modifie (et aussi l'entête de la feuille). Par contre c'est un nom
composé lourd et c'est plus simple de manipuler avec l'index.
Je m'oriente vers l'idée de prendre la peine de faire une boucle qui
teste B1 sur les mots compta, soc et jurid et B2 qui contient une date,
pour vérifier et repositionner les feuilles avant d'afficher les 5
feuilles.
l'idée de protéger - déprotéger (si c'est ce que j'imagine) suppose qu'à
un moment l'utilisateur peut inverser la position des feuilles.
Si je ne vérifie pas, je ne suis pas à l'abri d'un décalage et
l'affichage manquera de précision.
Pour l'instant me risque n'est qu'à l'affichage, mais après à la
compilation des données, ça risque d'être cata.
Ben dis donc, ta remarque anodyne anonymous m'emmène loin...
Merci de m'avoir montré ce point essentiel.
à+twinley
re,
le + simple c'est de proteger la structure du classeur une fois ton
affichage fait. Mais il faudra le deproteger avant ton action sur les
visible car autrement ca va se planter.
Autre solution eventuelle, un peu + complexe à gerer, c'est de
travailler sur les codenames des feuilles et pas sur leurs noms ou sur
leurs index et bien sur proteger ton projet VBA pour eviter à des
petits malins d'aller changer les codesnames par derrière.
A+
Merci anonymousA
J'avais besoin de cette fonctionnalité, et voilà que je la trouve sur
un site.
Je vois qu'elle bosse avec les tableaux auquels je n'ai jamais touché.
Belle occase de m'y interesser avec peu de code !
Mais je n'ai pas réussi à la faire tourner et quand j'ai modifié,
c'était de mal en pis. Des tonnes d'erreurs. Quand on sait pas, on
touche pas...
Tu me fous les jetons, effectivement si les onglets sont inversés par
l'utilisateur, ça va pas être terrible.
Est-il possible de figer la place des feuilles sans perdre cette
nouvelle possibilité d'affichage par paquets de 5 feuilles ?
Remarque judicieuse de ta part.
à+twinley
Bonjour,
imaginons que tu récupères l'info sur tes feuilles à afficher sous
la forme 1-5-3.
Dans l'exemple suivant , j'ai récupréré cette valeur depuis un click
sur un combobox mais peu importe. Tu peux obetnir ce que tu
souhaites de la manière suivante. Ceci dit, il faut diablement bien
gérer les numéros d'index de tes feuilles pour n epa s te planter.
Enfin, le passage par un array peut êtr utile et même extrêmement
efficace mais dans ce cas , je n'y vois qu'assez peu d'interet.
tabtext = Split(ComboBox1.Value, "-")
For i = 2 To Sheets.Count
Sheets(i).Visible = False 'on masque tout sauf ta 1ere feuille
Next
'ensuite on ne démasque que ce qui correspond à la valeur choisie.
Ce 'n'est pas utile de commencer le for next à 0 bien qu'il commence
'effectivement à 0 car ta première feuille est toujours visible.
For J = 1 To UBound(tabtext)
Sheets(CInt(tabtext(J))).Visible = True
Next
A+
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à
mon besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les
38 feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois
selon les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès
que la macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
.../...
je ne suis pas sur de comprendre ce que signifie "protéger la structure
" et comment le faire !
la feuil1 c'est un index
la dernière c'est une recap
la 2 c'est janviercompta
la 3 c'est janviersocial
la 4 c'est janvierjuridique
la 5 c'est févriercompta
la 6 c'est févriersocial
la 7 c'est févrierjuridique
etc jusqu'à decembre.
le nom des onglets devraient éviter des confusions si personne ne les
modifie (et aussi l'entête de la feuille). Par contre c'est un nom
composé lourd et c'est plus simple de manipuler avec l'index.
Je m'oriente vers l'idée de prendre la peine de faire une boucle qui
teste B1 sur les mots compta, soc et jurid et B2 qui contient une date,
pour vérifier et repositionner les feuilles avant d'afficher les 5
feuilles.
l'idée de protéger - déprotéger (si c'est ce que j'imagine) suppose qu'à
un moment l'utilisateur peut inverser la position des feuilles.
Si je ne vérifie pas, je ne suis pas à l'abri d'un décalage et
l'affichage manquera de précision.
Pour l'instant me risque n'est qu'à l'affichage, mais après à la
compilation des données, ça risque d'être cata.
Ben dis donc, ta remarque anodyne anonymous m'emmène loin...
Merci de m'avoir montré ce point essentiel.
à+twinleyre,
le + simple c'est de proteger la structure du classeur une fois ton
affichage fait. Mais il faudra le deproteger avant ton action sur les
visible car autrement ca va se planter.
Autre solution eventuelle, un peu + complexe à gerer, c'est de
travailler sur les codenames des feuilles et pas sur leurs noms ou sur
leurs index et bien sur proteger ton projet VBA pour eviter à des
petits malins d'aller changer les codesnames par derrière.
A+Merci anonymousA
J'avais besoin de cette fonctionnalité, et voilà que je la trouve sur
un site.
Je vois qu'elle bosse avec les tableaux auquels je n'ai jamais touché.
Belle occase de m'y interesser avec peu de code !
Mais je n'ai pas réussi à la faire tourner et quand j'ai modifié,
c'était de mal en pis. Des tonnes d'erreurs. Quand on sait pas, on
touche pas...
Tu me fous les jetons, effectivement si les onglets sont inversés par
l'utilisateur, ça va pas être terrible.
Est-il possible de figer la place des feuilles sans perdre cette
nouvelle possibilité d'affichage par paquets de 5 feuilles ?
Remarque judicieuse de ta part.
à+twinleyBonjour,
imaginons que tu récupères l'info sur tes feuilles à afficher sous
la forme 1-5-3.
Dans l'exemple suivant , j'ai récupréré cette valeur depuis un click
sur un combobox mais peu importe. Tu peux obetnir ce que tu
souhaites de la manière suivante. Ceci dit, il faut diablement bien
gérer les numéros d'index de tes feuilles pour n epa s te planter.
Enfin, le passage par un array peut êtr utile et même extrêmement
efficace mais dans ce cas , je n'y vois qu'assez peu d'interet.
tabtext = Split(ComboBox1.Value, "-")
For i = 2 To Sheets.Count
Sheets(i).Visible = False 'on masque tout sauf ta 1ere feuille
Next
'ensuite on ne démasque que ce qui correspond à la valeur choisie.
Ce 'n'est pas utile de commencer le for next à 0 bien qu'il commence
'effectivement à 0 car ta première feuille est toujours visible.
For J = 1 To UBound(tabtext)
Sheets(CInt(tabtext(J))).Visible = True
Next
A+
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event, mais
c'est pas trop grave, juste agaçant car je ne peux pas l'adapter à
mon besoin, car je veux en faire une macro ordinaire et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les
38 feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois
selon les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie devrait
aller car j'ai trouvé une sub qui crée les menus. J'adapterai dès
que la macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
re, twinley
proteger la structure d'un fclasseur est aussi simple que de proteger
une feuille et ce sont les mêmes instructions.
Ce que veut dire proteger la structure c'est empecher l'utlisateur de
changer le nom des feuilles , de les déplacer, d'en inserer, d'en
suppimer etc.... fais l'essai avec le menu à la main et tu verras.
pour les instruction VBA
ActiveWorkbook.Unprotect "toto" 'deprotege le classeur avec mdp toto
'protege le classeur et sa structure mais pas les fenetres avec mdp toto
ActiveWorkbook.Protect "toto", Structure:=True, Windows:úlse
PAr ailleurs, si tu proteges et deproteges par programmation ton
classeur, l'utilisateur ne peut pas deproteger celui-ci (enfin sauf s'il
connait VBA et qu'il connait un tout petit peu comment on casse une
protection parceque le code pour y arriver est on ne peut plus, facile).
A+
.../...
je ne suis pas sur de comprendre ce que signifie "protéger la
structure " et comment le faire !
la feuil1 c'est un index
la dernière c'est une recap
la 2 c'est janviercompta
la 3 c'est janviersocial
la 4 c'est janvierjuridique
la 5 c'est févriercompta
la 6 c'est févriersocial
la 7 c'est févrierjuridique
etc jusqu'à decembre.
le nom des onglets devraient éviter des confusions si personne ne les
modifie (et aussi l'entête de la feuille). Par contre c'est un nom
composé lourd et c'est plus simple de manipuler avec l'index.
Je m'oriente vers l'idée de prendre la peine de faire une boucle qui
teste B1 sur les mots compta, soc et jurid et B2 qui contient une
date, pour vérifier et repositionner les feuilles avant d'afficher
les 5 feuilles.
l'idée de protéger - déprotéger (si c'est ce que j'imagine) suppose
qu'à un moment l'utilisateur peut inverser la position des feuilles.
Si je ne vérifie pas, je ne suis pas à l'abri d'un décalage et
l'affichage manquera de précision.
Pour l'instant me risque n'est qu'à l'affichage, mais après à la
compilation des données, ça risque d'être cata.
Ben dis donc, ta remarque anodyne anonymous m'emmène loin...
Merci de m'avoir montré ce point essentiel.
à+twinleyre,
le + simple c'est de proteger la structure du classeur une fois ton
affichage fait. Mais il faudra le deproteger avant ton action sur les
visible car autrement ca va se planter.
Autre solution eventuelle, un peu + complexe à gerer, c'est de
travailler sur les codenames des feuilles et pas sur leurs noms ou
sur leurs index et bien sur proteger ton projet VBA pour eviter à des
petits malins d'aller changer les codesnames par derrière.
A+Merci anonymousA
J'avais besoin de cette fonctionnalité, et voilà que je la trouve
sur un site.
Je vois qu'elle bosse avec les tableaux auquels je n'ai jamais touché.
Belle occase de m'y interesser avec peu de code !
Mais je n'ai pas réussi à la faire tourner et quand j'ai modifié,
c'était de mal en pis. Des tonnes d'erreurs. Quand on sait pas, on
touche pas...
Tu me fous les jetons, effectivement si les onglets sont inversés
par l'utilisateur, ça va pas être terrible.
Est-il possible de figer la place des feuilles sans perdre cette
nouvelle possibilité d'affichage par paquets de 5 feuilles ?
Remarque judicieuse de ta part.
à+twinleyBonjour,
imaginons que tu récupères l'info sur tes feuilles à afficher sous
la forme 1-5-3.
Dans l'exemple suivant , j'ai récupréré cette valeur depuis un
click sur un combobox mais peu importe. Tu peux obetnir ce que tu
souhaites de la manière suivante. Ceci dit, il faut diablement bien
gérer les numéros d'index de tes feuilles pour n epa s te planter.
Enfin, le passage par un array peut êtr utile et même extrêmement
efficace mais dans ce cas , je n'y vois qu'assez peu d'interet.
tabtext = Split(ComboBox1.Value, "-")
For i = 2 To Sheets.Count
Sheets(i).Visible = False 'on masque tout sauf ta 1ere feuille
Next
'ensuite on ne démasque que ce qui correspond à la valeur choisie.
Ce 'n'est pas utile de commencer le for next à 0 bien qu'il
commence 'effectivement à 0 car ta première feuille est toujours
visible.
For J = 1 To UBound(tabtext)
Sheets(CInt(tabtext(J))).Visible = True
Next
A+
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event,
mais c'est pas trop grave, juste agaçant car je ne peux pas
l'adapter à mon besoin, car je veux en faire une macro ordinaire
et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les
38 feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois
selon les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie
devrait aller car j'ai trouvé une sub qui crée les menus.
J'adapterai dès que la macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit
Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
re, twinley
proteger la structure d'un fclasseur est aussi simple que de proteger
une feuille et ce sont les mêmes instructions.
Ce que veut dire proteger la structure c'est empecher l'utlisateur de
changer le nom des feuilles , de les déplacer, d'en inserer, d'en
suppimer etc.... fais l'essai avec le menu à la main et tu verras.
pour les instruction VBA
ActiveWorkbook.Unprotect "toto" 'deprotege le classeur avec mdp toto
'protege le classeur et sa structure mais pas les fenetres avec mdp toto
ActiveWorkbook.Protect "toto", Structure:=True, Windows:úlse
PAr ailleurs, si tu proteges et deproteges par programmation ton
classeur, l'utilisateur ne peut pas deproteger celui-ci (enfin sauf s'il
connait VBA et qu'il connait un tout petit peu comment on casse une
protection parceque le code pour y arriver est on ne peut plus, facile).
A+
.../...
je ne suis pas sur de comprendre ce que signifie "protéger la
structure " et comment le faire !
la feuil1 c'est un index
la dernière c'est une recap
la 2 c'est janviercompta
la 3 c'est janviersocial
la 4 c'est janvierjuridique
la 5 c'est févriercompta
la 6 c'est févriersocial
la 7 c'est févrierjuridique
etc jusqu'à decembre.
le nom des onglets devraient éviter des confusions si personne ne les
modifie (et aussi l'entête de la feuille). Par contre c'est un nom
composé lourd et c'est plus simple de manipuler avec l'index.
Je m'oriente vers l'idée de prendre la peine de faire une boucle qui
teste B1 sur les mots compta, soc et jurid et B2 qui contient une
date, pour vérifier et repositionner les feuilles avant d'afficher
les 5 feuilles.
l'idée de protéger - déprotéger (si c'est ce que j'imagine) suppose
qu'à un moment l'utilisateur peut inverser la position des feuilles.
Si je ne vérifie pas, je ne suis pas à l'abri d'un décalage et
l'affichage manquera de précision.
Pour l'instant me risque n'est qu'à l'affichage, mais après à la
compilation des données, ça risque d'être cata.
Ben dis donc, ta remarque anodyne anonymous m'emmène loin...
Merci de m'avoir montré ce point essentiel.
à+twinley
re,
le + simple c'est de proteger la structure du classeur une fois ton
affichage fait. Mais il faudra le deproteger avant ton action sur les
visible car autrement ca va se planter.
Autre solution eventuelle, un peu + complexe à gerer, c'est de
travailler sur les codenames des feuilles et pas sur leurs noms ou
sur leurs index et bien sur proteger ton projet VBA pour eviter à des
petits malins d'aller changer les codesnames par derrière.
A+
Merci anonymousA
J'avais besoin de cette fonctionnalité, et voilà que je la trouve
sur un site.
Je vois qu'elle bosse avec les tableaux auquels je n'ai jamais touché.
Belle occase de m'y interesser avec peu de code !
Mais je n'ai pas réussi à la faire tourner et quand j'ai modifié,
c'était de mal en pis. Des tonnes d'erreurs. Quand on sait pas, on
touche pas...
Tu me fous les jetons, effectivement si les onglets sont inversés
par l'utilisateur, ça va pas être terrible.
Est-il possible de figer la place des feuilles sans perdre cette
nouvelle possibilité d'affichage par paquets de 5 feuilles ?
Remarque judicieuse de ta part.
à+twinley
Bonjour,
imaginons que tu récupères l'info sur tes feuilles à afficher sous
la forme 1-5-3.
Dans l'exemple suivant , j'ai récupréré cette valeur depuis un
click sur un combobox mais peu importe. Tu peux obetnir ce que tu
souhaites de la manière suivante. Ceci dit, il faut diablement bien
gérer les numéros d'index de tes feuilles pour n epa s te planter.
Enfin, le passage par un array peut êtr utile et même extrêmement
efficace mais dans ce cas , je n'y vois qu'assez peu d'interet.
tabtext = Split(ComboBox1.Value, "-")
For i = 2 To Sheets.Count
Sheets(i).Visible = False 'on masque tout sauf ta 1ere feuille
Next
'ensuite on ne démasque que ce qui correspond à la valeur choisie.
Ce 'n'est pas utile de commencer le for next à 0 bien qu'il
commence 'effectivement à 0 car ta première feuille est toujours
visible.
For J = 1 To UBound(tabtext)
Sheets(CInt(tabtext(J))).Visible = True
Next
A+
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event,
mais c'est pas trop grave, juste agaçant car je ne peux pas
l'adapter à mon besoin, car je veux en faire une macro ordinaire
et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les
38 feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois
selon les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie
devrait aller car j'ai trouvé une sub qui crée les menus.
J'adapterai dès que la macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit
Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.
re, twinley
proteger la structure d'un fclasseur est aussi simple que de proteger
une feuille et ce sont les mêmes instructions.
Ce que veut dire proteger la structure c'est empecher l'utlisateur de
changer le nom des feuilles , de les déplacer, d'en inserer, d'en
suppimer etc.... fais l'essai avec le menu à la main et tu verras.
pour les instruction VBA
ActiveWorkbook.Unprotect "toto" 'deprotege le classeur avec mdp toto
'protege le classeur et sa structure mais pas les fenetres avec mdp toto
ActiveWorkbook.Protect "toto", Structure:=True, Windows:úlse
PAr ailleurs, si tu proteges et deproteges par programmation ton
classeur, l'utilisateur ne peut pas deproteger celui-ci (enfin sauf s'il
connait VBA et qu'il connait un tout petit peu comment on casse une
protection parceque le code pour y arriver est on ne peut plus, facile).
A+
.../...
je ne suis pas sur de comprendre ce que signifie "protéger la
structure " et comment le faire !
la feuil1 c'est un index
la dernière c'est une recap
la 2 c'est janviercompta
la 3 c'est janviersocial
la 4 c'est janvierjuridique
la 5 c'est févriercompta
la 6 c'est févriersocial
la 7 c'est févrierjuridique
etc jusqu'à decembre.
le nom des onglets devraient éviter des confusions si personne ne les
modifie (et aussi l'entête de la feuille). Par contre c'est un nom
composé lourd et c'est plus simple de manipuler avec l'index.
Je m'oriente vers l'idée de prendre la peine de faire une boucle qui
teste B1 sur les mots compta, soc et jurid et B2 qui contient une
date, pour vérifier et repositionner les feuilles avant d'afficher
les 5 feuilles.
l'idée de protéger - déprotéger (si c'est ce que j'imagine) suppose
qu'à un moment l'utilisateur peut inverser la position des feuilles.
Si je ne vérifie pas, je ne suis pas à l'abri d'un décalage et
l'affichage manquera de précision.
Pour l'instant me risque n'est qu'à l'affichage, mais après à la
compilation des données, ça risque d'être cata.
Ben dis donc, ta remarque anodyne anonymous m'emmène loin...
Merci de m'avoir montré ce point essentiel.
à+twinleyre,
le + simple c'est de proteger la structure du classeur une fois ton
affichage fait. Mais il faudra le deproteger avant ton action sur les
visible car autrement ca va se planter.
Autre solution eventuelle, un peu + complexe à gerer, c'est de
travailler sur les codenames des feuilles et pas sur leurs noms ou
sur leurs index et bien sur proteger ton projet VBA pour eviter à des
petits malins d'aller changer les codesnames par derrière.
A+Merci anonymousA
J'avais besoin de cette fonctionnalité, et voilà que je la trouve
sur un site.
Je vois qu'elle bosse avec les tableaux auquels je n'ai jamais touché.
Belle occase de m'y interesser avec peu de code !
Mais je n'ai pas réussi à la faire tourner et quand j'ai modifié,
c'était de mal en pis. Des tonnes d'erreurs. Quand on sait pas, on
touche pas...
Tu me fous les jetons, effectivement si les onglets sont inversés
par l'utilisateur, ça va pas être terrible.
Est-il possible de figer la place des feuilles sans perdre cette
nouvelle possibilité d'affichage par paquets de 5 feuilles ?
Remarque judicieuse de ta part.
à+twinleyBonjour,
imaginons que tu récupères l'info sur tes feuilles à afficher sous
la forme 1-5-3.
Dans l'exemple suivant , j'ai récupréré cette valeur depuis un
click sur un combobox mais peu importe. Tu peux obetnir ce que tu
souhaites de la manière suivante. Ceci dit, il faut diablement bien
gérer les numéros d'index de tes feuilles pour n epa s te planter.
Enfin, le passage par un array peut êtr utile et même extrêmement
efficace mais dans ce cas , je n'y vois qu'assez peu d'interet.
tabtext = Split(ComboBox1.Value, "-")
For i = 2 To Sheets.Count
Sheets(i).Visible = False 'on masque tout sauf ta 1ere feuille
Next
'ensuite on ne démasque que ce qui correspond à la valeur choisie.
Ce 'n'est pas utile de commencer le for next à 0 bien qu'il
commence 'effectivement à 0 car ta première feuille est toujours
visible.
For J = 1 To UBound(tabtext)
Sheets(CInt(tabtext(J))).Visible = True
Next
A+
Bonjour à tous,
J'ai trouvé cette sub qui permet d'afficher des feuilles prédéfinies.
Elle est faite pour être placée dans le module ThisWorkbook.
Première chose je n'arrive pas à la faire tourner là en event,
mais c'est pas trop grave, juste agaçant car je ne peux pas
l'adapter à mon besoin, car je veux en faire une macro ordinaire
et pas un event.
Donc, je souhaite afficher les feuilles par paquet de 5 parmi les
38 feuilles totales.
A savoir les feuilles affichées : toujours la première, puis trois
selon les séries ci-dessous, puis toujours la dernière.
1-2-3-4-38
ou 1-5-6-7-38
ou 1-8-9-10-38
ou 1-11-12-13-38
ou 1-14-15-16-38
ou 1-17-18-19-38
ou 1-20-21-22-38
ou 1-23-24-25-38
ou 1-26-27-28-38
ou 1-29-30-31-38
ou 1-32-33-34-38
ou 1-35-36-37-38
La sélection se fera par un menu personnalisé, cette partie
devrait aller car j'ai trouvé une sub qui crée les menus.
J'adapterai dès que la macro tournera.
Option Explicit
'Ti
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim FeuillesVisibles, Boucle As Long
'ce tableau contient la liste des feuilles visibles
FeuillesVisibles = Array("Index", "Feuil2", "Feuil5")
For Boucle = 0 To UBound(FeuillesVisibles)
If Sh.Index = Sheets(FeuillesVisibles(Boucle)).Index Then Exit
Sub
Next Boucle
'si la feuille n'est pas dans la liste, on la masque
Sh.Visible = False
End Sub
J'ai besoin qu'on me mette le pied à l'étrier.
Je vous remercie pour votre aide.