bonjour,
j'ai l'extrait de code suivant qui liste des onglets avec des liens
hypertexte
sur un fichier d' une trentaine d'onglets, et qui numérote les pieds de pages.
'création_liste_des_feuilles_avec_liens_hypertextes
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
On Error Resume Next
Sheets("Sommaire").Delete
Sheets.Add(Before:=Sheets(1)).Name = "Sommaire"
[a1] = "Liste des onglets du classeur"
For i = 2 To Sheets.Count
If Sheets(i).Name <> "info affaire" Then
If Val(Application.Version) > 8 Then
ActiveSheet.Hyperlinks.Add Anchor:=[A65536].End(xlUp)(2), _
Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1", _
TextToDisplay:=Sheets(i).Name
Else
Range([A65536].End(xlUp)(2).Address) = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=[A65536].End(xlUp)(1), _
Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1"
End If
End If
Next i
' numérote les pieds de pages
For f = 1 To Sheets.Count
If wks.Visible = True Then
If wks.Name <> ("info affaire") And wks.Name <> "Sommaire" Then ' nom de
la feuille à exclure
Sheets(f).PageSetup.RightFooter = "Page " & f - 2 & " de " & Sheets.Count
- 2
Sheets(f).PageSetup.CenterFooter = "N° PC 18-" & Sheets("info
affaire").[S1]
End If
End If
je voudrais que le code ne liste que les onglets visibles qu'à chaque
utilisation , je masque tous ceux inutilisés.
Si un dieu VBA de passage peut m'apporte sa lumière celeste ....
Merci d'avance
--
gilles72
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
poy-poy
Bonjour Gilles,
Tu as mélangé les 2 codes ( celui de Chris et le mien ) pour les feuilles masquées. Du coup, la fin de ton code plante forcement. Choisis en un et cela dervrait mieux marcher : soit dim wks as worksheet ... for each wks in activeworkbook.worksheets Puis tu travailles sur wks pas sur sheets(f) (soyons un peu égoiste et mettons son code en premier lol) ... next
soit dim f as integer ... For f = 1 To Sheets.Count et tu travailles sur sheets(f) et pas sur wks ... next f
Cordialement Benjamin
bonjour, j'ai l'extrait de code suivant qui liste des onglets avec des liens hypertexte sur un fichier d' une trentaine d'onglets, et qui numérote les pieds de pages.
'création_liste_des_feuilles_avec_liens_hypertextes With Application .ScreenUpdating = False .DisplayAlerts = False End With On Error Resume Next Sheets("Sommaire").Delete Sheets.Add(Before:=Sheets(1)).Name = "Sommaire" [a1] = "Liste des onglets du classeur"
For i = 2 To Sheets.Count If Sheets(i).Name <> "info affaire" Then If Val(Application.Version) > 8 Then ActiveSheet.Hyperlinks.Add Anchor:=[A65536].End(xlUp)(2), _ Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1", _ TextToDisplay:=Sheets(i).Name Else Range([A65536].End(xlUp)(2).Address) = Sheets(i).Name ActiveSheet.Hyperlinks.Add Anchor:=[A65536].End(xlUp)(1), _ Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1" End If End If Next i ' numérote les pieds de pages For f = 1 To Sheets.Count If wks.Visible = True Then If wks.Name <> ("info affaire") And wks.Name <> "Sommaire" Then ' nom de la feuille à exclure Sheets(f).PageSetup.RightFooter = "Page " & f - 2 & " de " & Sheets.Count - 2 Sheets(f).PageSetup.CenterFooter = "N° PC 18-" & Sheets("info affaire").[S1] End If End If
je voudrais que le code ne liste que les onglets visibles qu'à chaque utilisation , je masque tous ceux inutilisés.
Si un dieu VBA de passage peut m'apporte sa lumière celeste .... Merci d'avance -- gilles72
Bonjour Gilles,
Tu as mélangé les 2 codes ( celui de Chris et le mien ) pour les feuilles
masquées.
Du coup, la fin de ton code plante forcement. Choisis en un et cela dervrait
mieux marcher :
soit
dim wks as worksheet
...
for each wks in activeworkbook.worksheets
Puis tu travailles sur wks pas sur sheets(f) (soyons un peu égoiste et
mettons son code en premier lol)
...
next
soit
dim f as integer
...
For f = 1 To Sheets.Count
et tu travailles sur sheets(f) et pas sur wks
...
next f
Cordialement
Benjamin
bonjour,
j'ai l'extrait de code suivant qui liste des onglets avec des liens
hypertexte
sur un fichier d' une trentaine d'onglets, et qui numérote les pieds de pages.
'création_liste_des_feuilles_avec_liens_hypertextes
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
On Error Resume Next
Sheets("Sommaire").Delete
Sheets.Add(Before:=Sheets(1)).Name = "Sommaire"
[a1] = "Liste des onglets du classeur"
For i = 2 To Sheets.Count
If Sheets(i).Name <> "info affaire" Then
If Val(Application.Version) > 8 Then
ActiveSheet.Hyperlinks.Add Anchor:=[A65536].End(xlUp)(2), _
Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1", _
TextToDisplay:=Sheets(i).Name
Else
Range([A65536].End(xlUp)(2).Address) = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=[A65536].End(xlUp)(1), _
Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1"
End If
End If
Next i
' numérote les pieds de pages
For f = 1 To Sheets.Count
If wks.Visible = True Then
If wks.Name <> ("info affaire") And wks.Name <> "Sommaire" Then ' nom de
la feuille à exclure
Sheets(f).PageSetup.RightFooter = "Page " & f - 2 & " de " & Sheets.Count
- 2
Sheets(f).PageSetup.CenterFooter = "N° PC 18-" & Sheets("info
affaire").[S1]
End If
End If
je voudrais que le code ne liste que les onglets visibles qu'à chaque
utilisation , je masque tous ceux inutilisés.
Si un dieu VBA de passage peut m'apporte sa lumière celeste ....
Merci d'avance
--
gilles72
Tu as mélangé les 2 codes ( celui de Chris et le mien ) pour les feuilles masquées. Du coup, la fin de ton code plante forcement. Choisis en un et cela dervrait mieux marcher : soit dim wks as worksheet ... for each wks in activeworkbook.worksheets Puis tu travailles sur wks pas sur sheets(f) (soyons un peu égoiste et mettons son code en premier lol) ... next
soit dim f as integer ... For f = 1 To Sheets.Count et tu travailles sur sheets(f) et pas sur wks ... next f
Cordialement Benjamin
bonjour, j'ai l'extrait de code suivant qui liste des onglets avec des liens hypertexte sur un fichier d' une trentaine d'onglets, et qui numérote les pieds de pages.
'création_liste_des_feuilles_avec_liens_hypertextes With Application .ScreenUpdating = False .DisplayAlerts = False End With On Error Resume Next Sheets("Sommaire").Delete Sheets.Add(Before:=Sheets(1)).Name = "Sommaire" [a1] = "Liste des onglets du classeur"
For i = 2 To Sheets.Count If Sheets(i).Name <> "info affaire" Then If Val(Application.Version) > 8 Then ActiveSheet.Hyperlinks.Add Anchor:=[A65536].End(xlUp)(2), _ Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1", _ TextToDisplay:=Sheets(i).Name Else Range([A65536].End(xlUp)(2).Address) = Sheets(i).Name ActiveSheet.Hyperlinks.Add Anchor:=[A65536].End(xlUp)(1), _ Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1" End If End If Next i ' numérote les pieds de pages For f = 1 To Sheets.Count If wks.Visible = True Then If wks.Name <> ("info affaire") And wks.Name <> "Sommaire" Then ' nom de la feuille à exclure Sheets(f).PageSetup.RightFooter = "Page " & f - 2 & " de " & Sheets.Count - 2 Sheets(f).PageSetup.CenterFooter = "N° PC 18-" & Sheets("info affaire").[S1] End If End If
je voudrais que le code ne liste que les onglets visibles qu'à chaque utilisation , je masque tous ceux inutilisés.
Si un dieu VBA de passage peut m'apporte sa lumière celeste .... Merci d'avance -- gilles72
gilles
bonjour benjamin si je comprends bien , c'est toi le dieu de service , ces jours-ci !!! ...et merci pour cette remarque perspicace Entre temps j'ai effectivement remarqué, magré ma nullité vbatisque, ce que tu me dis là J'ai tenté de rectifier le code , mais c'est pas encore ça: il me liste toujours mes 27 onglets alors que j'en ai retenu 6 ou 7 jE REGARDE ça de plus près merci encore,et à gilles +
Bonjour Gilles,
Tu as mélangé les 2 codes ( celui de Chris et le mien ) pour les feuilles masquées. Du coup, la fin de ton code plante forcement. Choisis en un et cela dervrait mieux marcher : soit dim wks as worksheet ... for each wks in activeworkbook.worksheets Puis tu travailles sur wks pas sur sheets(f) (soyons un peu égoiste et mettons son code en premier lol) ... next
soit dim f as integer ... For f = 1 To Sheets.Count et tu travailles sur sheets(f) et pas sur wks ... next f
Cordialement Benjamin
bonjour benjamin
si je comprends bien , c'est toi le dieu de service , ces jours-ci !!!
...et merci pour cette remarque perspicace
Entre temps j'ai effectivement remarqué, magré ma nullité vbatisque, ce que
tu me dis là
J'ai tenté de rectifier le code , mais c'est pas encore ça: il me liste
toujours mes 27 onglets alors que j'en ai retenu 6 ou 7
jE REGARDE ça de plus près
merci encore,et à
gilles +
Bonjour Gilles,
Tu as mélangé les 2 codes ( celui de Chris et le mien ) pour les feuilles
masquées.
Du coup, la fin de ton code plante forcement. Choisis en un et cela dervrait
mieux marcher :
soit
dim wks as worksheet
...
for each wks in activeworkbook.worksheets
Puis tu travailles sur wks pas sur sheets(f) (soyons un peu égoiste et
mettons son code en premier lol)
...
next
soit
dim f as integer
...
For f = 1 To Sheets.Count
et tu travailles sur sheets(f) et pas sur wks
...
next f
bonjour benjamin si je comprends bien , c'est toi le dieu de service , ces jours-ci !!! ...et merci pour cette remarque perspicace Entre temps j'ai effectivement remarqué, magré ma nullité vbatisque, ce que tu me dis là J'ai tenté de rectifier le code , mais c'est pas encore ça: il me liste toujours mes 27 onglets alors que j'en ai retenu 6 ou 7 jE REGARDE ça de plus près merci encore,et à gilles +
Bonjour Gilles,
Tu as mélangé les 2 codes ( celui de Chris et le mien ) pour les feuilles masquées. Du coup, la fin de ton code plante forcement. Choisis en un et cela dervrait mieux marcher : soit dim wks as worksheet ... for each wks in activeworkbook.worksheets Puis tu travailles sur wks pas sur sheets(f) (soyons un peu égoiste et mettons son code en premier lol) ... next
soit dim f as integer ... For f = 1 To Sheets.Count et tu travailles sur sheets(f) et pas sur wks ... next f
Cordialement Benjamin
ChrisV
Bonjour Gilles,
Pas sûr d'avoir bien saisi ton principe de numérotation... (attention aux éventuels sauts de lignes intempestifs...)
Sub zaza() Dim i As Integer, j As Integer, k As Integer Dim n As Integer With Application .ScreenUpdating = False .DisplayAlerts = False End With On Error Resume Next Sheets("Sommaire").Delete Sheets.Add(Before:=Sheets(1)).Name = "Sommaire" [a1] = "Liste des onglets du classeur" k = 0 For j = 1 To Sheets.Count If Sheets(j).Visible = False Then _ k = 1 + k Next j n = 0 For i = 2 To Sheets.Count If Sheets(i).Name <> "info affaire" _ And Sheets(i).Visible = True Then n = 1 + n Sheets(i).PageSetup.CenterFooter = "N° PC 18-" _ & Sheets("info affaire ").[S1] Sheets(i).PageSetup.RightFooter = "Page " & n _ & " de " & Sheets.Count - 2 - k If Val(Application.Version) > 8 Then ActiveSheet.Hyperlinks.Add Anchor:=[A65536].End(xlUp)(2), _ Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1", _ TextToDisplay:=Sheets(i).Name Else Range([A65536].End(xlUp)(2).Address) = Sheets(i).Name ActiveSheet.Hyperlinks.Add Anchor:=[A65536].End(xlUp)(1), _ Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1" End If End If Next i End Sub
ChrisV
"gilles" a écrit dans le message de news:
bonjour benjamin si je comprends bien , c'est toi le dieu de service , ces jours-ci !!! ...et merci pour cette remarque perspicace Entre temps j'ai effectivement remarqué, magré ma nullité vbatisque, ce que tu me dis là J'ai tenté de rectifier le code , mais c'est pas encore ça: il me liste toujours mes 27 onglets alors que j'en ai retenu 6 ou 7 jE REGARDE ça de plus près merci encore,et à gilles +
Bonjour Gilles,
Tu as mélangé les 2 codes ( celui de Chris et le mien ) pour les feuilles masquées. Du coup, la fin de ton code plante forcement. Choisis en un et cela dervrait mieux marcher : soit dim wks as worksheet ... for each wks in activeworkbook.worksheets Puis tu travailles sur wks pas sur sheets(f) (soyons un peu égoiste et mettons son code en premier lol) ... next
soit dim f as integer ... For f = 1 To Sheets.Count et tu travailles sur sheets(f) et pas sur wks ... next f
Cordialement Benjamin
Bonjour Gilles,
Pas sûr d'avoir bien saisi ton principe de numérotation...
(attention aux éventuels sauts de lignes intempestifs...)
Sub zaza()
Dim i As Integer, j As Integer, k As Integer
Dim n As Integer
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
On Error Resume Next
Sheets("Sommaire").Delete
Sheets.Add(Before:=Sheets(1)).Name = "Sommaire"
[a1] = "Liste des onglets du classeur"
k = 0
For j = 1 To Sheets.Count
If Sheets(j).Visible = False Then _
k = 1 + k
Next j
n = 0
For i = 2 To Sheets.Count
If Sheets(i).Name <> "info affaire" _
And Sheets(i).Visible = True Then
n = 1 + n
Sheets(i).PageSetup.CenterFooter = "N° PC 18-" _
& Sheets("info affaire ").[S1]
Sheets(i).PageSetup.RightFooter = "Page " & n _
& " de " & Sheets.Count - 2 - k
If Val(Application.Version) > 8 Then
ActiveSheet.Hyperlinks.Add Anchor:=[A65536].End(xlUp)(2), _
Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1", _
TextToDisplay:=Sheets(i).Name
Else
Range([A65536].End(xlUp)(2).Address) = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=[A65536].End(xlUp)(1), _
Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1"
End If
End If
Next i
End Sub
ChrisV
"gilles" <gilles@discussions.microsoft.com> a écrit dans le message de news:
10AC9988-29AA-49E9-B337-E5E46D113CA9@microsoft.com...
bonjour benjamin
si je comprends bien , c'est toi le dieu de service , ces jours-ci !!!
...et merci pour cette remarque perspicace
Entre temps j'ai effectivement remarqué, magré ma nullité vbatisque, ce
que
tu me dis là
J'ai tenté de rectifier le code , mais c'est pas encore ça: il me liste
toujours mes 27 onglets alors que j'en ai retenu 6 ou 7
jE REGARDE ça de plus près
merci encore,et à
gilles +
Bonjour Gilles,
Tu as mélangé les 2 codes ( celui de Chris et le mien ) pour les feuilles
masquées.
Du coup, la fin de ton code plante forcement. Choisis en un et cela
dervrait
mieux marcher :
soit
dim wks as worksheet
...
for each wks in activeworkbook.worksheets
Puis tu travailles sur wks pas sur sheets(f) (soyons un peu égoiste et
mettons son code en premier lol)
...
next
soit
dim f as integer
...
For f = 1 To Sheets.Count
et tu travailles sur sheets(f) et pas sur wks
...
next f
Pas sûr d'avoir bien saisi ton principe de numérotation... (attention aux éventuels sauts de lignes intempestifs...)
Sub zaza() Dim i As Integer, j As Integer, k As Integer Dim n As Integer With Application .ScreenUpdating = False .DisplayAlerts = False End With On Error Resume Next Sheets("Sommaire").Delete Sheets.Add(Before:=Sheets(1)).Name = "Sommaire" [a1] = "Liste des onglets du classeur" k = 0 For j = 1 To Sheets.Count If Sheets(j).Visible = False Then _ k = 1 + k Next j n = 0 For i = 2 To Sheets.Count If Sheets(i).Name <> "info affaire" _ And Sheets(i).Visible = True Then n = 1 + n Sheets(i).PageSetup.CenterFooter = "N° PC 18-" _ & Sheets("info affaire ").[S1] Sheets(i).PageSetup.RightFooter = "Page " & n _ & " de " & Sheets.Count - 2 - k If Val(Application.Version) > 8 Then ActiveSheet.Hyperlinks.Add Anchor:=[A65536].End(xlUp)(2), _ Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1", _ TextToDisplay:=Sheets(i).Name Else Range([A65536].End(xlUp)(2).Address) = Sheets(i).Name ActiveSheet.Hyperlinks.Add Anchor:=[A65536].End(xlUp)(1), _ Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1" End If End If Next i End Sub
ChrisV
"gilles" a écrit dans le message de news:
bonjour benjamin si je comprends bien , c'est toi le dieu de service , ces jours-ci !!! ...et merci pour cette remarque perspicace Entre temps j'ai effectivement remarqué, magré ma nullité vbatisque, ce que tu me dis là J'ai tenté de rectifier le code , mais c'est pas encore ça: il me liste toujours mes 27 onglets alors que j'en ai retenu 6 ou 7 jE REGARDE ça de plus près merci encore,et à gilles +
Bonjour Gilles,
Tu as mélangé les 2 codes ( celui de Chris et le mien ) pour les feuilles masquées. Du coup, la fin de ton code plante forcement. Choisis en un et cela dervrait mieux marcher : soit dim wks as worksheet ... for each wks in activeworkbook.worksheets Puis tu travailles sur wks pas sur sheets(f) (soyons un peu égoiste et mettons son code en premier lol) ... next
soit dim f as integer ... For f = 1 To Sheets.Count et tu travailles sur sheets(f) et pas sur wks ... next f