Aplliquer macro sur plusieurs onglets
Résolu
PLAYA2
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
PLAYA2 -
PLAYA2 -
Bonjour,
J'ai créé une macro sur un onglet d'un fichier excel ; savez-vous comment appliquer cette même macro sur d'autres onglets de ce fichier (15 au maximum) ?
De plus, pour 2 onglets de ce fichier, il ne faut pas appliquer cette macro... Eh oui ce serait trop simple...
D'avance merci pour vos lumières !!!
J'ai créé une macro sur un onglet d'un fichier excel ; savez-vous comment appliquer cette même macro sur d'autres onglets de ce fichier (15 au maximum) ?
De plus, pour 2 onglets de ce fichier, il ne faut pas appliquer cette macro... Eh oui ce serait trop simple...
D'avance merci pour vos lumières !!!
A voir également:
- Aplliquer macro sur plusieurs onglets
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Restaurer les onglets chrome - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro maker - Télécharger - Divers Utilitaires
14 réponses
Bonjour
sans voir la dite macro, peu d'espoir de solution...
et le nom des 2 exclus
au besoin
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse
Michel
sans voir la dite macro, peu d'espoir de solution...
et le nom des 2 exclus
au besoin
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse
Michel
La macro est la suivante :
If Cells(129, "AK").Value = 0 And Not IsEmpty(Cells(129, "AK").Value) Then
Rows("8:133").Hidden = True
Else
Rows("8:133").Hidden = False
End If
If Cells(258, "AK").Value = 0 And Not IsEmpty(Cells(129, "AK").Value) Then
Rows("134:263").Hidden = True
Else
Rows("134:263").Hidden = False
End If
End Sub
et les 2 onglets auxquels ne pas appliquer la macro se nomment : DptVAL et MDG
L'onglet qui contient la macro se nomme VAL01et les autres onglets auxquels appliquer la macro : VAL02, VAL 03, VAL04 etc...
J'espère que ces infos suffiront!!!
D'avance merci
If Cells(129, "AK").Value = 0 And Not IsEmpty(Cells(129, "AK").Value) Then
Rows("8:133").Hidden = True
Else
Rows("8:133").Hidden = False
End If
If Cells(258, "AK").Value = 0 And Not IsEmpty(Cells(129, "AK").Value) Then
Rows("134:263").Hidden = True
Else
Rows("134:263").Hidden = False
End If
End Sub
et les 2 onglets auxquels ne pas appliquer la macro se nomment : DptVAL et MDG
L'onglet qui contient la macro se nomme VAL01et les autres onglets auxquels appliquer la macro : VAL02, VAL 03, VAL04 etc...
J'espère que ces infos suffiront!!!
D'avance merci
re,
essaies
essaies
Sub cacher_ou_non() Dim Nbre As Byte Application.ScreenUpdating = False Nbre = ThisWorkbook.Sheets.Count For cptr = 1 To Nbre If Sheets(cptr).Name <> "DptVAL " And Sheets(cptr).Name <> "MDG" Then If Cells(129, "AK").Value = 0 And Not IsEmpty(Cells(129, "AK").Value) Then Rows("8:133").Hidden = True Else Rows("8:133").Hidden = False End If If Cells(258, "AK").Value = 0 And Not IsEmpty(Cells(129, "AK").Value) Then Rows("134:263").Hidden = True Else Rows("134:263").Hidden = False End If End If Next End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re Miche-m,
Désolée de n'avoir répondu plus rapidement.
J'ai essayé ta macro mais je n'ai pas le résultat escompté, en effet elle fonctionne bien sur un onglet mais ne s'applique pas sur les autres !!!
Pour être sûre de ne pas faire d'erreur de frappe, j'ai fait un copier coller de ta macro et je n'ai pas eu de message d'erreur.
N'y a t-il pas, plus simplement, de syntaxe permettant de "boucler " ???
D'avance merci de votre aide à tous,
Et bonne journée !!!
Désolée de n'avoir répondu plus rapidement.
J'ai essayé ta macro mais je n'ai pas le résultat escompté, en effet elle fonctionne bien sur un onglet mais ne s'applique pas sur les autres !!!
Pour être sûre de ne pas faire d'erreur de frappe, j'ai fait un copier coller de ta macro et je n'ai pas eu de message d'erreur.
N'y a t-il pas, plus simplement, de syntaxe permettant de "boucler " ???
D'avance merci de votre aide à tous,
Et bonne journée !!!
Bonjour
Effectivement, une erreur grossière de ma part, excuse-moi
Effectivement, une erreur grossière de ma part, excuse-moi
Sub cacher_ou_non() Dim Nbre As Byte Application.ScreenUpdating = False Nbre = ThisWorkbook.Sheets.Count For cptr = 1 To Nbre With Sheets(cptr) If .Name <> "DptVAL " And .Name <> "MDG" Then If .Cells(129, "AK").Value = 0 And Not IsEmpty(.Cells(129, "AK").Value) Then .Rows("8:133").Hidden = True Else .Rows("8:133").Hidden = False End If If .Cells(258, "AK").Value = 0 And Not IsEmpty(.Cells(129, "AK").Value) Then .Rows("134:263").Hidden = True Else .Rows("134:263").Hidden = False End If End If End With Next
Re,
Je viens d'essayer mais j'ai le message d'erreur suivant :
Erreur d'exucution "1004"
Impossible de définir la propriété Hidden de la classe Range
et dans la macro la ligne suivante est surlignée en jaune :
.Rows("8:133").Hidden = False
Je rappelle que je travaille sur Excel 2002, serait-ce la raison ????
D'avance merci.
Je viens d'essayer mais j'ai le message d'erreur suivant :
Erreur d'exucution "1004"
Impossible de définir la propriété Hidden de la classe Range
et dans la macro la ligne suivante est surlignée en jaune :
.Rows("8:133").Hidden = False
Je rappelle que je travaille sur Excel 2002, serait-ce la raison ????
D'avance merci.
curieux... j'avais testé sur une maquette et c'était OK !
pour XL2002 je ne pense pas mais je ne l'ai plus, donc...
Je viens de faire l'opération avec l'enregistreur
et après élagage de select-sélection j'ai cette ligne
Rows("10:21").EntireRow.Hidden = True
à essayer, peut-^tre que...
Tu dis, ca peut servir
:o)
pour XL2002 je ne pense pas mais je ne l'ai plus, donc...
Je viens de faire l'opération avec l'enregistreur
et après élagage de select-sélection j'ai cette ligne
Rows("10:21").EntireRow.Hidden = True
à essayer, peut-^tre que...
Tu dis, ca peut servir
:o)
Hello,
J'ai retesté mais ça ne fonctionne toujours pas enfin que sur l'onglet dans lequel j'ai saisi la macro...
Pour être sûre d'avoir bien compris ton dernier message, voici la macro finalisée (les numéros de lignes ont changés) :
Sub Macropage()
'
'Dim Nbre As Byte
application.ScreenUpdating = False
Nbre = ThisWorkbook.Sheets.Count
For cptr = 1 To Nbre
If Sheets(cptr).Name <> "MDG" Then
If Cells(136, "AK").Value = 0 And Not IsEmpty(Cells(136, "AK").Value) Then
Rows("8:140").EntireRow.Hidden = True
Else
Rows("8:140").Hidden = False
End If
If Cells(280, "AK").Value = 0 And Not IsEmpty(Cells(280, "AK").Value) Then
Rows("163:284").EntireRow.Hidden = True
Else
Rows("163:284").Hidden = False
End If
End If
Next
End Sub
Cdlt.
J'ai retesté mais ça ne fonctionne toujours pas enfin que sur l'onglet dans lequel j'ai saisi la macro...
Pour être sûre d'avoir bien compris ton dernier message, voici la macro finalisée (les numéros de lignes ont changés) :
Sub Macropage()
'
'Dim Nbre As Byte
application.ScreenUpdating = False
Nbre = ThisWorkbook.Sheets.Count
For cptr = 1 To Nbre
If Sheets(cptr).Name <> "MDG" Then
If Cells(136, "AK").Value = 0 And Not IsEmpty(Cells(136, "AK").Value) Then
Rows("8:140").EntireRow.Hidden = True
Else
Rows("8:140").Hidden = False
End If
If Cells(280, "AK").Value = 0 And Not IsEmpty(Cells(280, "AK").Value) Then
Rows("163:284").EntireRow.Hidden = True
Else
Rows("163:284").Hidden = False
End If
End If
Next
End Sub
Cdlt.
Salut,
En effet désolée, j'ai posté la mauvaise macro mais j'avais bien tenté la deuxième version et même problème => Erreur d'exucution "1004"
Impossible de définir la propriété Hidden de la classe Range
Voici la macro testée :
'Dim Nbre As Byte
application.ScreenUpdating = False
Nbre = ThisWorkbook.Sheets.Count
For cptr = 1 To Nbre
With Sheets(cptr)
If .Name <> "MDG" Then
If .Cells(129, "AK").Value = 0 And Not IsEmpty(.Cells(129, "AK").Value) Then
.Rows("8:133").EntireRow.Hidden = True
Else
.Rows("8:133").EntireRow.Hidden = False
End If
If .Cells(258, "AK").Value = 0 And Not IsEmpty(.Cells(258, "AK").Value) Then
.Rows("134:263").EntireRow.Hidden = True
Else
.Rows("134:263").EntireRow.Hidden = False
End If
End If
End With
Next
End Sub
Pour info, quel élément dans cette macro donne l'ordre d'appliquer sur plusieurs onglets ??? J'essaie de décrypter pour mieux apprendre la logique et progresser - merci
A bientôt
En effet désolée, j'ai posté la mauvaise macro mais j'avais bien tenté la deuxième version et même problème => Erreur d'exucution "1004"
Impossible de définir la propriété Hidden de la classe Range
Voici la macro testée :
'Dim Nbre As Byte
application.ScreenUpdating = False
Nbre = ThisWorkbook.Sheets.Count
For cptr = 1 To Nbre
With Sheets(cptr)
If .Name <> "MDG" Then
If .Cells(129, "AK").Value = 0 And Not IsEmpty(.Cells(129, "AK").Value) Then
.Rows("8:133").EntireRow.Hidden = True
Else
.Rows("8:133").EntireRow.Hidden = False
End If
If .Cells(258, "AK").Value = 0 And Not IsEmpty(.Cells(258, "AK").Value) Then
.Rows("134:263").EntireRow.Hidden = True
Else
.Rows("134:263").EntireRow.Hidden = False
End If
End If
End With
Next
End Sub
Pour info, quel élément dans cette macro donne l'ordre d'appliquer sur plusieurs onglets ??? J'essaie de décrypter pour mieux apprendre la logique et progresser - merci
A bientôt
Bonjour
J'avais testé la macro et c'était OK....
donc, sur une maquette, essaies avec l'enregistreur de macro de cacher une sélection de lignes et regarde le code
relance la macro avec les lignes masquées
J'avais testé la macro et c'était OK....
donc, sur une maquette, essaies avec l'enregistreur de macro de cacher une sélection de lignes et regarde le code
relance la macro avec les lignes masquées
Je ne suis pas sûre d'avoir bien compris !!!
Cette macro fonctionne très bien (masquage de ligne selon condition) :
If Cells(129, "AK").Value = 0 And Not IsEmpty(Cells(129, "AK").Value) Then
Rows("8:133").Hidden = True
Else
Rows("8:133").Hidden = False
End If
If Cells(258, "AK").Value = 0 And Not IsEmpty(Cells(258, "AK").Value) Then
Rows("134:263").Hidden = True
End If
End Sub
Par contre pour celle-ci (appliquer masquage sur tous les onglets) :
Dim Nbre As Byte
application.ScreenUpdating = False
Nbre = ThisWorkbook.Sheets.Count
For cptr = 1 To Nbre
With Sheets(cptr)
If .Name <> "MDG" Then
If Cells(129, "AK").Value = 0 And Not IsEmpty(Cells(129, "AK").Value) Then
Rows("8:133").Hidden = True
Else
Rows("8:133").Hidden = False
End If
If Cells(258, "AK").Value = 0 And Not IsEmpty(Cells(258, "AK").Value) Then
Rows("134:263").Hidden = True
Else
Rows("134:263").Hidden = False
End If
End If
Next
End Sub
Me renvoie le message d'erreur => Next sans For
Cette macro fonctionne très bien (masquage de ligne selon condition) :
If Cells(129, "AK").Value = 0 And Not IsEmpty(Cells(129, "AK").Value) Then
Rows("8:133").Hidden = True
Else
Rows("8:133").Hidden = False
End If
If Cells(258, "AK").Value = 0 And Not IsEmpty(Cells(258, "AK").Value) Then
Rows("134:263").Hidden = True
End If
End Sub
Par contre pour celle-ci (appliquer masquage sur tous les onglets) :
Dim Nbre As Byte
application.ScreenUpdating = False
Nbre = ThisWorkbook.Sheets.Count
For cptr = 1 To Nbre
With Sheets(cptr)
If .Name <> "MDG" Then
If Cells(129, "AK").Value = 0 And Not IsEmpty(Cells(129, "AK").Value) Then
Rows("8:133").Hidden = True
Else
Rows("8:133").Hidden = False
End If
If Cells(258, "AK").Value = 0 And Not IsEmpty(Cells(258, "AK").Value) Then
Rows("134:263").Hidden = True
Else
Rows("134:263").Hidden = False
End If
End If
Next
End Sub
Me renvoie le message d'erreur => Next sans For