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?

1 réponse

  1. Contributeur
    Bonjour,

    Pour moi, ta macro fonctionne sur 150 onglets sans souci.
    à tout hasard, en début de macro, je supprimerai les liens existants
    ActiveSheet.Hyperlinks.Delete
    0
    1. 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
      0
    2. Contributeur
      @benetonBonsoir,

      C'est ta feuille qui a des erreurs et il faut les enlever.
      Alors en début de macro tu mets cette ligne
      ActiveSheet.Range("B7:B" & Cells(Rows.Count, "B").End(xlUp).Row).ClearContents
      

      Ton classeur : https://www.cjoint.com/c/GBkwuGGhgll
      0
    3. @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
      0
    4. @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
      0