Dupliquer une macro sur plusieurs onglets

Bonjour à tous.

Je suis confronté à un soucis.

J'ai crée 2 macros, une qui masque des lignes et change des couleurs de cellules et la deuxième qui les réaffiche et remet les couleurs d'origine.

Voici la première macro :

Sub Masquageligne()

'

' Macro2 Macro

'

'

Range("8:10,12:14,17:21,23:23").Select

Range("B23").Activate

ActiveWindow.SmallScroll Down:=9

Range("8:10,12:14,17:21,23:23,25:28,31:31").Select

Range("B31").Activate

ActiveWindow.SmallScroll Down:=18

Range("8:10,12:14,17:21,23:23,25:28,31:31,35:36,44:45,46:46,48:49").Select

Range("B48").Activate

ActiveWindow.SmallScroll Down:=12

Range("8:10,12:14,17:21,23:23,25:28,31:31,35:36,44:45,46:46,48:49,55:55"). _

Select

Range("B55").Activate

Selection.EntireRow.Hidden = True

ActiveWindow.SmallScroll Down:=-84

Union(Range( _

"BB32:BC32,BB37:BC37,AG37:AH37,AB37:AE37,M37:N37,J37:K37,G37:H37,E37,C37,C39,E39,G39:H39,J39:K39,M39:N39,AB39:AE39,AG39:AH39,BB39:BC39,BB42:BC42,AG42:AH42,AB42:AE42,M42:N42,J42:K42,G42:H42,E42,C42,C7,E7,G7:H7,J7:K7,M7:N7,AB7:AE7,AG7:AH7" _

), Range( _

"BB7,C15,E15,G15:H15,J15:K15,M15:N15,AB15:AE15,AG15:AH15,BB15:BC15,BC7,C30,E30,G30:H30,J30:K30,M30:N30,AB30:AE30,AG30:AH30,BB30:BC30,C32,E32,G32:H32,J32:K32,M32:N32,AB32:AE32,AG32:AH32" _

)).Select

Range("C42").Activate

ActiveWindow.SmallScroll Down:=18

Union(Range( _

"BB32:BC32,BB37:BC37,AG37:AH37,AB37:AE37,M37:N37,J37:K37,G37:H37,E37,C37,C39,E39,G39:H39,J39:K39,M39:N39,AB39:AE39,AG39:AH39,BB39:BC39,BB42:BC42,AG42:AH42,AB42:AE42,M42:N42,J42:K42,G42:H42,E42,C42,C50,E50,C54,E54,G50,G54,H54" _

), Range( _

"H50,J50:K50,J54:K54,M50:N50,M54:N54,AB50:AE50,AB54:AE54,AG50:AH50,AG54:AH54,BB50:BC50,BB54:BC54,C7,E7,G7:H7,J7:K7,M7:N7,AB7:AE7,AG7:AH7,BB7,C15,E15,G15:H15,J15:K15,M15:N15,AB15:AE15,AG15:AH15,BB15:BC15,BC7,C30,E30,G30:H30,J30:K30" _

), Range( _

"M30:N30,AB30:AE30,AG30:AH30,BB30:BC30,C32,E32,G32:H32,J32:K32,M32:N32,AB32:AE32,AG32:AH32" _

)).Select

Range("BB54").Activate

With Selection.Interior

.Pattern = xlSolid

.PatternColorIndex = xlAutomatic

.ThemeColor = xlThemeColorDark1

.TintAndShade = -0.249977111117893

.PatternTintAndShade = 0

End With

Range("C60").Select

End Sub

Je souhaiterais que cette macro s'effectue sur tous les autres onglets qui ne sont pas masqué (oui car j'ai également des onglets masqué).

Quelqu'un aurait-il une solution à ce problème?

D'avance je vous remercie.

Cordialement,

Bonjour,

tout les onglets sont situer dans le même classeur ?

Bonjour.

Oui ils sont en effet sur le même classeur j'ai oublié de le préciser ^^

voila un petit teste :

Sub test()
Dim wk As Workbook
Set wk = ThisWorkbook
For Each ws In wk.Sheets
If ws.Visible = True Then
  Call  le nom de ta macro1 
  Call  le nom de ta macro2
End If
Next ws
End Sub

Je viens de faire un essai cela donne cela :

Sub Masquageligne()

'

' Macro2 Macro

'

'

Dim wk As Workbook

Set wk = ThisWorkbook

For Each ws In wk.Sheets

If ws.Visible = True Then

Call Masquageligne

Range("8:10,12:14,17:21,23:23").Select

Range("B23").Activate

ActiveWindow.SmallScroll Down:=9

Range("8:10,12:14,17:21,23:23,25:28,31:31").Select

Range("B31").Activate

ActiveWindow.SmallScroll Down:=18

Range("8:10,12:14,17:21,23:23,25:28,31:31,35:36,44:45,46:46,48:49").Select

Range("B48").Activate

ActiveWindow.SmallScroll Down:=12

Range("8:10,12:14,17:21,23:23,25:28,31:31,35:36,44:45,46:46,48:49,55:55"). _

Select

Range("B55").Activate

Selection.EntireRow.Hidden = True

ActiveWindow.SmallScroll Down:=-84

Union(Range( _

"BB32:BC32,BB37:BC37,AG37:AH37,AB37:AE37,M37:N37,J37:K37,G37:H37,E37,C37,C39,E39,G39:H39,J39:K39,M39:N39,AB39:AE39,AG39:AH39,BB39:BC39,BB42:BC42,AG42:AH42,AB42:AE42,M42:N42,J42:K42,G42:H42,E42,C42,C7,E7,G7:H7,J7:K7,M7:N7,AB7:AE7,AG7:AH7" _

), Range( _

"BB7,C15,E15,G15:H15,J15:K15,M15:N15,AB15:AE15,AG15:AH15,BB15:BC15,BC7,C30,E30,G30:H30,J30:K30,M30:N30,AB30:AE30,AG30:AH30,BB30:BC30,C32,E32,G32:H32,J32:K32,M32:N32,AB32:AE32,AG32:AH32" _

)).Select

Range("C42").Activate

ActiveWindow.SmallScroll Down:=18

Union(Range( _

"BB32:BC32,BB37:BC37,AG37:AH37,AB37:AE37,M37:N37,J37:K37,G37:H37,E37,C37,C39,E39,G39:H39,J39:K39,M39:N39,AB39:AE39,AG39:AH39,BB39:BC39,BB42:BC42,AG42:AH42,AB42:AE42,M42:N42,J42:K42,G42:H42,E42,C42,C50,E50,C54,E54,G50,G54,H54" _

), Range( _

"H50,J50:K50,J54:K54,M50:N50,M54:N54,AB50:AE50,AB54:AE54,AG50:AH50,AG54:AH54,BB50:BC50,BB54:BC54,C7,E7,G7:H7,J7:K7,M7:N7,AB7:AE7,AG7:AH7,BB7,C15,E15,G15:H15,J15:K15,M15:N15,AB15:AE15,AG15:AH15,BB15:BC15,BC7,C30,E30,G30:H30,J30:K30" _

), Range( _

"M30:N30,AB30:AE30,AG30:AH30,BB30:BC30,C32,E32,G32:H32,J32:K32,M32:N32,AB32:AE32,AG32:AH32" _

)).Select

Range("BB54").Activate

With Selection.Interior

.Pattern = xlSolid

.PatternColorIndex = xlAutomatic

.ThemeColor = xlThemeColorDark1

.TintAndShade = -0.249977111117893

.PatternTintAndShade = 0

End With

Range("C60").Select

End If

Next ws

End Sub

Mais il me dit que la ligne "Call masquageligne" pose un soucis "espace pile insuffisant)

dans ma boucle , il suffit d'écrire "call nom macro " pas besoin de réécrire la macro derière

Si je comprend bien c'est une nouvelle macro que je dois créer et non pas l'intégrer dans ma macro actuelle?

voila c'est sa c'est une nouvelle macro qui vérifie les feuille dans le classeur et si la condition est validé , il fait appelle aux macro que ta crée

Je viens de la créer mais malheureusement il ne me fait la macro que sur le premier onglet ='(

Bonjour,

puis je voir le code et depuis quels endroit et comment exécuté le code ?

Rechercher des sujets similaires à "dupliquer macro onglets"