Bonjour à tous et merci de votre aide.
Je débute en VBA Excel et je me bat avec le pb suivant.
J'ai une cellule qui contient une liste de validation (des niveaux) et j'ai une cellule qui contient une liste de groupes en fonction du niveaux et quand je change le niveau la liste des groupes s'ajuste.
Mais si il y a déjà un groupe sélectionné le contenu de la cellule n'est pas effacé si on change le niveau et on peut donc avoir une inchérence entre Niveau <-> Groupe.
J'ai fait la macro suivante
et si je la lance directement, ça marche, la cellule M7 est remise à blanc MAIS si je la lance dans l'événement Change de ma feuille (Worksheet_Change(ByVal Target As Range)) Excel excute le code sans erreur mais il n'efface pas le contenu de la cellule.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public sub Macro2 'Test effacement Range("M7").Select Selection.ClearContents end sub
Actuellement la feuille n'est pas protégée et la cellule visée (M7) n'est pas verrouillée.
Curieusement dans la même procédure Worksheet_Change(ByVal Target As Range) j'ajoute une formule de cacul et ça marche trés bien.
Quelqu'un aurait-il une idée d'où cela peut venir ?
Ci-dessous le code de ma sub Worksheet_Change(ByVal Target As Range)
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row >= DONNEES_LIGNE_MIN Then Select Case Target.Column Case DONNEES_COLONNE_JOUR, DONNEES_COLONNE_MOIS, DONNEES_COLONNE_ANNEE Call shtDonnees.DeprotegerFeuille Call CopierDonneesCalculAge(Target) Call shtDonnees.ProtegerFeuille Case DONNEES_COLONNE_NIVEAU 'shtDonnees.Range(Cells(Target.Row, DONNEES_COLONNE_GROUPE), Cells(Target.Row, DONNEES_COLONNE_GROUPE)).ClearContents Call Macro2 Case Else 'Ne rien faire End Select End If End Sub
Partager