Re : Mise à jour des cellules renseignées d'après liste déroulante, si modif de cette
Bonsoir,
issu d'un site culte
Si on modifie un item de la liste, les choix déjà faits dans les menus déroulants sont modifiés.
DVLiaison
http://boisgontierjacques.free.fr/fichiers/DonneesValidation/dvliaison2
1ere méthode
Au moment du choix dans le menu, on écrit une formule qui pointe vers la cellule de la liste.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([saisieChoix], Target) Is Nothing Then
Application.EnableEvents = False
p = Application.Match(Target, [Liste], 0)
Set mc = Worksheets("feuil2").[Liste].Cells(p, 1)
Target.Formula = "=Feuil2!" & mc.Address
Application.EnableEvents = True
End If
End Sub
2e méthode
Pour chaque item modifié dans la liste, on explore tous les choix déjà faits dans les menus
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([Liste], Target) Is Nothing Then
Application.EnableEvents = False
valSaisie = Target.Value
Application.Undo
For Each c In Cells.SpecialCells(xlCellTypeAllValidation)
If c.Value = Target Then c.Value = valSaisie
Next
Target = valSaisie
Application.EnableEvents = True
End If
End Sub
Modification d'un item dans les menu déroulants
DVModifItem
http://boisgontierjacques.free.fr/fichiers/DonneesValidation/DVModifieItem.xls
Sub ModifieItemListeValidation()
ancien = "kk"
nouveau = "pp"
For Each c In Cells.SpecialCells(xlCellTypeAllValidation)
If Left(c.Validation.Formula1, 1) <> "=" Then
temp = c.Validation.Formula1
temp = Replace(temp, ancien, nouveau)
temp = Replace(temp, ";", ",")
c.Validation.Delete
c.Validation.Add xlValidateList, Formula1:=temp
End If
Next c
End Sub