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

macro évenementielle

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 !

yannick63430

XLDnaute Junior
Bonjour à tous,

j'ai besoin d'aide concernant la création d'un fichier excel !!!!!
En fait, je voudrais que sur différentes cellules, lorsqu'un utilisateur saisit Oui ou Non, une macro se déclenche (grouper ou dégrouper une plage de cellule).
j'ai essayer avec la macro suivante :


Private Sub Worksheet_Change(ByVal Target As Range)

If Range("Cell_audit_interne").Value = "Oui" Then
Range("Cell_audit_interne_Group").Select
Selection.EntireRow.Hidden = False
Else
Range("Cell_audit_interne_Group").Select
Selection.EntireRow.Hidden = True
End If
If Range("Cell_Expert_externe").Value = "Oui" Then
Range("Cell_Expert_externe_Group").Select
Selection.EntireRow.Hidden = False
Else
Range("Cell_Expert_externe_Group").Select
Selection.EntireRow.Hidden = True
End If
End Sub​


Mais, je suis confronté à différents problème :
- dès que je saisi sur d'autres cellules ou que je déclenche un grouper/dégrouper, la macro se déclenche et je ne veux pas qu'elle s’exécute
- Impossible d'annuler ou de rétablir

En espérant avoir été clair.
D'avance merci.

Bien cordialement
 

Pièces jointes

Re : macro évenementielle

Bonsoir,
J'ajouterais la condition if not intersect pour définir que seul une modification dans cette plage execute la macro
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([Cell_audit_interne , Cell_Expert_externe], Target) Is Nothing Then
If Range("Cell_audit_interne").Value = "Oui" Then
Range("Cell_audit_interne_Group").Select
Selection.EntireRow.Hidden = False
Else
Range("Cell_audit_interne_Group").Select
Selection.EntireRow.Hidden = True
End If
If Range("Cell_Expert_externe").Value = "Oui" Then
Range("Cell_Expert_externe_Group").Select
Selection.EntireRow.Hidden = False
Else
Range("Cell_Expert_externe_Group").Select
Selection.EntireRow.Hidden = True
End If
End If
End Sub
 
Re : macro évenementielle

Bonjour yannick63430, st007,

On peut un peu réduire le code initial de yannick63430.
VB:
Option Explicit
Option Compare Text

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([Cell_audit_interne , Cell_Expert_externe], Target) Is Nothing Then
Range("Cell_audit_interne_Group").EntireRow.Hidden = Range("Cell_audit_interne") <> "oui"
Range("Cell_Expert_externe_Group").EntireRow.Hidden = Range("Cell_Expert_externe") <> "oui"
End If
End Sub
 
- 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
7
Affichages
179
Réponses
18
Affichages
598
Réponses
9
Affichages
509
Réponses
4
Affichages
738
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…