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 SubLe 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 SubMais y a t-il un moyen de le faire tourner sur toutes les feuilles du classeur?
Merci