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

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
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.

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)

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
A+