Bonjour,
Alors, voilà mon code.
Option Explicit
Sub Mod11_CreationOngletMenu()
Dim I As Integer, J As Integer
Dim ShMenu As Worksheet
Dim LigneOnglet As ListRow
Dim AdresseLien As String
Dim AireColonneP As Range
On Error GoTo Fin
Set AireColonneP = Sheets("Modèle").Range("P1:P73")
For I = Sheets.Count To 1 Step -1
If Sheets(I).Name = "Menu" Then
Application.DisplayAlerts = False
Sheets(I).Delete
Application.DisplayAlerts = True
Exit For
End If
Next I
Set ShMenu = Sheets.Add(before:=Sheets(1))
With ShMenu
.Name = "Menu"
.Range(.Cells(1, 1), .Cells(1, 2)) = Array("Onglet", "Lien")
.ListObjects.Add(xlSrcRange, Range("$A$1:$B$1"), , xlYes).Name = "TableDesOnglets"
End With
For I = 1 To Sheets.Count
Select Case Sheets(I).Name
Case "Menu", "Modèle"
Case Else
Set LigneOnglet = ShMenu.ListObjects("TableDesOnglets").ListRows.Add
With LigneOnglet
.Range(1, 1) = Sheets(I).Name
If Left(Sheets(I).Name, 2) = "FT" Then
.Range(1, 2) = "X"
AdresseLien = "'" & .Range(1, 1) & "'!A1"
ShMenu.Hyperlinks.Add Anchor:=LigneOnglet.Range(1, 3), Address:="", SubAddress:=AdresseLien, TextToDisplay:=CStr(I)
AireColonneP.Copy Destination:=Sheets(I).Range("P1")
With Sheets(I)
.Activate
For J = 1 To .Shapes.Count
If .Shapes(J).Name = "Masquer postes vides" Then
.Shapes(J).OnAction = "M10_MasquerLesTitres"
End If
Next J
End With
End If
End With
Set LigneOnglet = Nothing
End Select
Next I
ShMenu.Activate
GoTo Fin
Fin:
Set ShMenu = Nothing
End Sub
Ya quelque chose qui va pas parce que ça fait rien à part exécuter ma macro d'origine.
Si j'attribue M10_MasquerLesTitres à mon bouton ça fonctionne mais me cache aussi la ligne de total et tout ce qui se trouve après (ma liste de besoins)
Si j'attribue Mod11_CreationOngletMen à mon bouton ça met à jour l'onglet menu ... et c'est tout.