Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

macro événementielle

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

FDO94

XLDnaute Nouveau
Bonjour, je viens vers la communauté car j'ai besoin d'aide pour résoudre le souci suivant :
Dans la feuille 3, j'ai un tableau où je masque les lignes avec zéro avec une macro. Je veux automatiser cette opération, soit quand je change les chiffres en feuille 2 en liaison avec la feuille 3, la macro se déclenche
Merci pour votre attention
 

Pièces jointes

Bonjour FDO94,

J'espère que la "Feuil3" n'est qu'un exemple, car le tableau est très mal construit 🤔
- pas d'entête
- Il est inutile de fusionner 3 colonnes pour afficher une désignation, il suffit d'agrandir la colonne

Voici le fichier avec l'évènement "Change" dans la feuille 2

A+
 

Pièces jointes

Bonjour FDO94 et bienvenu sur XLD, bonjour wDog,
Une autre approche en PJ avec une macro Worksheet_Activate qui s'exécute automatiquement lorsqu'on sélectionne la Feuil3.
VB:
Sub Worksheet_Activate()
Dim DL%, L%
Application.ScreenUpdating = False
DL = Cells(Cells.Rows.Count, "C").End(xlUp).Row
Range("C1:G" & DL).EntireRow.Hidden = False
For L = DL To 1 Step -1
    If Cells(L, "G") = 0 Then Cells(L, "A").EntireRow.Hidden = True
Next L
End Sub
 

Pièces jointes

Bonjour a vous
wDog66 & syvanu
Merci pour vos solutions, je n'ai pas eu le temps de les appliquer sur mon fichier principal, mais à l'ouverture de vos fichiers c'est exactement ça que je cherchais
oui wdog66 c'est bien un brouillon que j'ai mis dans le fichier et les lignes fusionnées font partie d'une feuille qui est structurée comme ça
Un grand merci à vous

 
Re,
La modif est simple :
VB:
Sub Worksheet_Activate()
Dim DL%, L%
Application.ScreenUpdating = False
Range("C2:G29" & DL).EntireRow.Hidden = False
For L = 2 To 29
    If Cells(L, "G") = 0 Then Cells(L, "A").EntireRow.Hidden = True
Next L
End Sub
 

Pièces jointes

Bonjour Bsalv,
Le problème du filtre ( tout du moins sur XL2007, au delà je ne sais pas ) c'est que c'est statique et non dynamique.
Si on modifie la Feuil2 et qu'on revient sur la feuil3 rien n'a changé, il faut réactualiser le filtre pour le nouveau rafraichissement.
En VBA c'est automatique.
 
Bonjour,
merci pour vos propositions, je essaie ce soir une autre question si je veux agrandir ma liste, augmenter de nombre de lignes je dois intervenir où
ici : Range("C2:G29" & DL)? ou : For L = 2 To 29 ?
 
Bonjour,
Si la première cellule du tableau synthèse commence par "PRIX", sur le fichier en C32, alors utilisez :
VB:
Sub Worksheet_Activate()
Dim DL%, L%
Application.ScreenUpdating = False
DL = Application.Match("PRIX *", [C:C], 0) - 3
Range("C2:G" & DL + 3).EntireRow.Hidden = False
For L = 2 To DL
    If Cells(L, "G") = 0 Then Cells(L, "A").EntireRow.Hidden = True
Next L
End Sub
Il s'adaptera automatiquement puisqu'il masquera de la ligne 2 à la ligne où il y a "PRIX" -3
 

Pièces jointes

Merci beaucoup pour votre réactivité, je vous donnerai de nouvelles une fois essayé
 
Bonjour Sylvanu,

Une fois mon tableau terminé avec des lignes en plus, je n'arrive pas à adapter votre macro. Ci-joint la feuille terminée avec les feuilles a masquer de 12 a 73, pouvez-vous adapter votre code svp
merci
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
75
Affichages
1 K
Réponses
4
Affichages
169
Réponses
4
Affichages
330
Réponses
6
Affichages
347
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…