Mise à jour données d'une liste déroulante

Bonjour,

Je butte sur un problème depuis plusieurs jours déjà et n'y connais pas grand chose en VBA.

J'ai 2 feuille Excel, la feuille active et une feuille "Janvier"

je souhaite que lorsque je change la valeur d'une cellule dans la zone B11:B24 de ma feuille Active, toutes les Cellules identiques dans les zone de validation (liste déroulante) de Janvier se mettent à jour.

J'utilise pour ça ce script:

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Range("B11:B24"), Target) Is Nothing Then
    Application.EnableEvents = False
    valSaisie = Target.Value
    Application.Undo
    For Each c In Sheets("Janvier").Cells.SpecialCells(xlCellTypeAllValidation)
      If c.Value = Target Then c.Value = valSaisie
    Next
    Target = valSaisie
   Application.EnableEvents = True
  End If
End Sub

Le seul problème, si je change une cellule vide, il change donc toute les cellules vides, hors je souhaite qu'il n'y ai aucune action sur les cellules vides..

Auriez-vous une idée?


... Après 2 Jours de bataille je viens de trouver tout seul...

j'ai changé :

For Each c In Sheets("Janvier").Cells.SpecialCells(xlCellTypeAllValidation).SpecialCells(xlCellTypeConstants)

J'ai maintenant le code

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Range("B11:B24"), Target) Is Nothing Then
    Application.EnableEvents = False
    valSaisie = Target.Value
    Application.Undo
    For Each c In Sheets("Janvier").Cells.SpecialCells(xlCellTypeAllValidation).SpecialCells(xlCellTypeConstants)
      If c.Value = Target Then c.Value = valSaisie
    Next
    Target = valSaisie
   Application.EnableEvents = True
  End If
End Sub

Mais y a t-il un moyen de le faire tourner sur toutes les feuilles du classeur?

Merci

Rechercher des sujets similaires à "mise jour donnees liste deroulante"