Modifier code pour sommaire automatique
Bonjour,
j'ai un fichier avec plus de 100 onglets (feuilles)
pour mis retrouver, le premier onglet est le sommaire que je crée automatiquement grâce à une macro que j'ai trouvé et remodelé
cependant, la macro fonctionne que sur une liste de 50 et le reste passe en "N/A"
voici le code:
Sub reactualiser()
'
Dim i, j As Integer
Dim MENU(5 To 305, 1 To 1) As Variant
Dim FeuilleActive As String
i = 1
FeuilleActive = ActiveSheet.Name
For i = 1 To ThisWorkbook.Sheets.Count
If Sheets(i).Name <> "Menu" Then
Cells(i + 5, 2).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1", TextToDisplay:=Sheets(i).Name
End If
Next
With ActiveWorkbook.Worksheets("sommaire").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
' mise en forme de la cellule "sommaire"
For Each x In Range("B6")
x.Value = UCase(x.Value)
Next
Range("B6").Select
Selection.Font.Bold = True
With Selection.Font
.Name = "Calibri"
.Size = 14
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleSingle
.ThemeColor = xlThemeColorHyperlink
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
'
End Sub
est ce que quelqu'un voit où est le probléme SVP?
j'ai un fichier avec plus de 100 onglets (feuilles)
pour mis retrouver, le premier onglet est le sommaire que je crée automatiquement grâce à une macro que j'ai trouvé et remodelé
cependant, la macro fonctionne que sur une liste de 50 et le reste passe en "N/A"
voici le code:
Sub reactualiser()
'
Dim i, j As Integer
Dim MENU(5 To 305, 1 To 1) As Variant
Dim FeuilleActive As String
i = 1
FeuilleActive = ActiveSheet.Name
For i = 1 To ThisWorkbook.Sheets.Count
If Sheets(i).Name <> "Menu" Then
Cells(i + 5, 2).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1", TextToDisplay:=Sheets(i).Name
End If
Next
With ActiveWorkbook.Worksheets("sommaire").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
' mise en forme de la cellule "sommaire"
For Each x In Range("B6")
x.Value = UCase(x.Value)
Next
Range("B6").Select
Selection.Font.Bold = True
With Selection.Font
.Name = "Calibri"
.Size = 14
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleSingle
.ThemeColor = xlThemeColorHyperlink
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
'
End Sub
est ce que quelqu'un voit où est le probléme SVP?
1 réponse
-
ContributeurBonjour,
Pour moi, ta macro fonctionne sur 150 onglets sans souci.
à tout hasard, en début de macro, je supprimerai les liens existantsActiveSheet.Hyperlinks.Delete
-
non ca ne marche pas avec cette ligne.
ca me supprime même la mise en forme
voila un fichier exemple si ca peut aider:
https://www.cjoint.com/c/GBkvZYQ13MG
je ne sais pas si il y a un rapport mais je suis sur excel 2007 -
Contributeur@benetonBonsoir,
C'est ta feuille qui a des erreurs et il faut les enlever.
Alors en début de macro tu mets cette ligneActiveSheet.Range("B7:B" & Cells(Rows.Count, "B").End(xlUp).Row).ClearContents
Ton classeur : https://www.cjoint.com/c/GBkwuGGhgll -
@gbinformedésolé, je n'ai pas vu la notification de ta réponse car elle était passé en spam.
je suis au boulot et bizarrement je n'arrive pas à ouvrir le fichier (avec office 2010)
je verrai se soir chez moi -
@gbinformeca me le telechargait en XLSX au lieu de XLMS c'est pour ca que je n'y arrivait pas.
ca marche nikel. je te remercie
-