OVH Cloud OVH Cloud

liste deroulante

2 réponses
Avatar
gilou
bonsoir à tous

comment mettre à jour les champs d'une feuille utilisant une liste
deroulante (validation de donnees ) lors d'une modification.

Ex : dans les donnees source on remplace toto par tata , comment mettre à
jour les donnees ou il y avait toto.
merci d'avance

2 réponses

Avatar
Daniel
Bonjour.
Avec les données de validation regroupées dans le plage nommée
"PlageValidation" et la plage à valider "PlageValidée" :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
If Intersect(Range("PlageValidation"), Target) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
For Each c In Range("PlageValidée")
If c.Value = "" Then Exit Sub
If c.Value = Valeur Then
Application.EnableEvents = False
c.Value = Target.Value
Application.EnableEvents = True
End If
Next c

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Range("PlageValidation"), Target) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
Valeur = Target.Value
End Sub

et dans un module :
Public Valeur As String
Inconvénient : Il faut déplacer la cellule à modifier avant de cliquer
dessus afin de déclencher l'évènement :
Worksheet_SelectionChange
Cordialement.
Daniel
"gilou" a écrit dans le message de news:

bonsoir à tous

comment mettre à jour les champs d'une feuille utilisant une liste
deroulante (validation de donnees ) lors d'une modification.

Ex : dans les donnees source on remplace toto par tata , comment mettre à
jour les donnees ou il y avait toto.
merci d'avance


Avatar
Daniel
Plus simple, avec la macro suivante :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, Var
If Intersect(Range("PlageValidation"), Target) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
For Each c In Range("PlageValidée")
If c.Value = "" Then Exit Sub
If IsNumeric(Application.Match(c.Value, Range("PlageValidation"),
0)) Then
Else
Application.EnableEvents = False
c.Value = Target.Value
Application.EnableEvents = True
End If
Next c
End Sub

Daniel
"Daniel" a écrit dans le message de news:

Bonjour.
Avec les données de validation regroupées dans le plage nommée
"PlageValidation" et la plage à valider "PlageValidée" :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
If Intersect(Range("PlageValidation"), Target) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
For Each c In Range("PlageValidée")
If c.Value = "" Then Exit Sub
If c.Value = Valeur Then
Application.EnableEvents = False
c.Value = Target.Value
Application.EnableEvents = True
End If
Next c

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Range("PlageValidation"), Target) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
Valeur = Target.Value
End Sub

et dans un module :
Public Valeur As String
Inconvénient : Il faut déplacer la cellule à modifier avant de cliquer
dessus afin de déclencher l'évènement :
Worksheet_SelectionChange
Cordialement.
Daniel
"gilou" a écrit dans le message de news:

bonsoir à tous

comment mettre à jour les champs d'une feuille utilisant une liste
deroulante (validation de donnees ) lors d'une modification.

Ex : dans les donnees source on remplace toto par tata , comment mettre à
jour les donnees ou il y avait toto.
merci d'avance