Dans ce cas, le mieux est de ne rien faire.sans lenteur si possible
Sub Worksheet_Activate()
Dim NbLig%, L%, Deb%, Fin%
Deb = 22 ' Début du tableau dans la feuille
Fin = 208 ' et Fin
Application.ScreenUpdating = False
Rows(Deb & ":" & Fin).Hidden = False
Range("A" & Deb & ":E" & Fin).ClearContents
With Sheets("Acceuil")
NbLig = Application.CountIf(.Range("A10:A196"), ">0") ' Calcul Nb lignes utiles
Range("A" & Deb & ":B" & Deb + NbLig) = .Range("A10:B" & 10 + NbLig).Value ' Copier Coller valeurs Ref et Des.
Range("D" & Deb & ":D" & Deb + NbLig) = .Range("C10:C" & 10 + NbLig).Value ' Copier Qté
Range("C" & Deb & ":C" & Deb + NbLig) = .Range("D10:D" & 10 + NbLig).Value ' Mettre bonne colonne
For L = Deb To Deb + NbLig
Cells(L, "E") = Cells(L, "C") * Cells(L, "D") ' Calcul montant TTC
Next L
Rows(Deb + NbLig & ":" & Fin).Hidden = True ' Masque les lignes vides.
End With
End Sub
Sub Masquer_Afficher()
Dim a, b, test As Boolean, i%, w As Worksheet
a = Array("Accueil", "Hanifatoys1", "ATERNAL", "Arba") 'noms des feuilles à traiter
b = Array(10, 22, 13, 18) '1ères lignes à étudier
Application.ScreenUpdating = False
With ActiveSheet.DrawingObjects(Application.Caller)
test = .Text = "Masquer"
.Text = IIf(test, "Afficher", "Masquer")
End With
For i = 0 To UBound(a)
Set w = Sheets(a(i))
With w.Rows(b(i) & ":" & w.Rows.Count)
.Hidden = False
Intersect(w.Range("A" & b(i)).CurrentRegion.Columns(1), .Cells) _
.SpecialCells(xlCellTypeFormulas, 2).EntireRow.Hidden = test
End With
Next
End Sub
Il eut été sympa que votre PJ comportent les macros adéquates.t'as du remarquer les icônes des imprimantes au dessus
Sub ImpressionHanifatoys1()
Application.ScreenUpdating = False ' Ecran figé
Sheets("Hanifatoys1").Activate ' Selection feuille pour mise à jour
ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)" ' Ou autre méthode
Sheets("Accueil").Activate ' Retour page d'acceuil
End Sub
Sub ImpressionHanifatoys1()
Sheets("Hanifatoys1").Activate ' Selection feuille pour mise à jour
Worksheets("Hanifatoys1").PrintPreview
Sheets("Acceuil").Activate ' Retour page d'acceuil
End Sub