Re
Faites un test à faire après avoir effectué les modifications suivantes:
1. Désactiver les deux Sub FUNCTION dans le module 1
2. Remplacez la sub Tableau par celle ci-dessous
Sub Tableau()
'Fonction ajouter une page type tableau à la suite de l'analyse de risques
Dim derniereligne As Integer
'Mettre la feuille des modèles visible
Sheets("Modèles").Visible = True
'Copier les lignes correspondant au tableau type de l'analyse de risques
With Sheets("Analyse de risques")
'Rechercher la denière ligne non vide
derniereligne = .Cells(.Rows.Count, 1).End(xlUp).Row ' + 3
'Controle si la dernière ligne ne contient pas le mot Risque
If .Range("A" & derniereligne) = "Risque" Then Exit Sub
'Coller valeur
Sheets("Modèles").Rows("31:45").Copy .Rows(derniereligne + 3)
'mise en page pour impression
.PageSetup.PrintArea = "$A$1:$AD$" & derniereligne + 15
'Mise a jour pagination
Call Numeroterpage
End With
'Remettre en masquer la feuille modèles
Sheets("Modèles").Visible = False
End Sub
3. Ajouter la macro ci-dessous dans un module
Sub Numeroterpage()
Dim WS As Worksheet
Dim VC As Integer, HC As Integer
Dim Totpage As Byte
Set WS = Sheets("Analyse de risques")
HC = WS.HPageBreaks.Count + 1
VC = WS.VPageBreaks.Count + 1
Totpage = HC * VC
Dim prem As String
Dim cel As Range
Dim i As Byte
With WS.Cells
Set cel = .Find("Pagination", LookIn:=xlValues, lookat:=xlPart)
If Not cel Is Nothing Then
prem = cel.Address
i = 1
Do
WS.Range("AB" & cel.Row) = i & " sur " & Totpage
i = i + 1
Set cel = .FindNext(cel)
Loop While Not cel Is Nothing And prem <> cel.Address
End If
End With
End Sub
J'ai considéré que vous ne cliquez sur le bouton tableau que si la dernière ligne en colonne A (Risque) est complétée. Ligne 104 dans votre fichier posté
Crdlt