Aplliquer macro sur plusieurs onglets
Résolu/Fermé
PLAYA2
Messages postés
15
Date d'inscription
mardi 8 janvier 2013
Statut
Membre
Dernière intervention
28 janvier 2013
-
10 janv. 2013 à 15:02
PLAYA2 - 16 janv. 2013 à 16:14
PLAYA2 - 16 janv. 2013 à 16:14
A voir également:
- Aplliquer macro sur plusieurs onglets
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Restaurer onglets chrome - Guide
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Macro recorder - Télécharger - Confidentialité
14 réponses
PLAYA2
Messages postés
15
Date d'inscription
mardi 8 janvier 2013
Statut
Membre
Dernière intervention
28 janvier 2013
10 janv. 2013 à 15:04
10 janv. 2013 à 15:04
Cette demande est pour excel 2002.
Merci
Merci
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 10/01/2013 à 15:59
Modifié par michel_m le 10/01/2013 à 15:59
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
PLAYA2
Messages postés
15
Date d'inscription
mardi 8 janvier 2013
Statut
Membre
Dernière intervention
28 janvier 2013
10 janv. 2013 à 16:18
10 janv. 2013 à 16:18
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
10 janv. 2013 à 17:19
10 janv. 2013 à 17:19
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
PLAYA2
Messages postés
15
Date d'inscription
mardi 8 janvier 2013
Statut
Membre
Dernière intervention
28 janvier 2013
10 janv. 2013 à 19:42
10 janv. 2013 à 19:42
Ok, je tente ça dès demain et te tiens au courant.
Merci et bonne soirée !!!
Merci et bonne soirée !!!
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 !!!
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
14 janv. 2013 à 14:31
14 janv. 2013 à 14:31
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.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
14 janv. 2013 à 17:39
14 janv. 2013 à 17:39
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.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
15 janv. 2013 à 17:10
15 janv. 2013 à 17:10
Ce n'est pas la dernière macro que je t'ai transmis, le 14/1 à 14:31H...
d'autre part "entirerow" est à écrire aussi pour les "false"
d'autre part "entirerow" est à écrire aussi pour les "false"
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
16 janv. 2013 à 11:54
16 janv. 2013 à 11:54
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
16 janv. 2013 à 13:45
16 janv. 2013 à 13:45
C'est pas possible! fais un peu attention !!! :-(
regarde la macro que je t'ai envoyé et dis moi si hasard il n'y aurait pas un point devant les références cells et rows...
Abandon du suivi
regarde la macro que je t'ai envoyé et dis moi si hasard il n'y aurait pas un point devant les références cells et rows...
Abandon du suivi
Ok, un grand mea culpa mais vu que sur la 1ère macro qui fonctionne très bien, il n'a pas de point devant rows et cells...
Quoiqu'il en soit un grand merci pour ta patience qui je l'ai compris et c'est normal à des limites !!!
Quoiqu'il en soit un grand merci pour ta patience qui je l'ai compris et c'est normal à des limites !!!