Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Récupération de la mise en forme en utilisant la validation de donnée sur liste

5 réponses
Avatar
bertrand.dienis
Bonjour

J'utilise la validation de donn=E9es sur liste pour la saisie de valeurs
dans une colonne excel ; la liste de r=E9f=E9rence contenant un certain
nombre de codes.
Dans cette liste de r=E9f=E9rences, les cellules contiennent non seulement
ces codes mais sont en plus mises en forme avec un fond de couleur
sp=E9cfique =E0 chaque code.

A la saisie des valeurs dans ma colonne de donn=E9es (par liste
d=E9roulante) je souhaiterais que la mise en forme correspondante au
code sl=E9ectionn=E9 soit r=E9cup=E9r=E9e automatiquement ...

Je ne pense pas que cela soit possible par la mis ene forme
conditionnelle et je penche donc pour une macro.

Etes-vous d'accord ? Quelqu'un a-t-il d=E9j=E0 =E9t=E9 confront=E9 au probl=
=E8me
et peut-il m'aider ?

Merci d'avance

5 réponses

Avatar
Daniel
Bonjour.
Macro valable pour des données en colonne A validées par un liste appelée
"Plage" :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Target.Interior.ColorIndex = _
Range("Plage")(Application.Match(Target, [Plage], 0), 1). _
Interior.ColorIndex
End If
End Sub

Cordialement.
Daniel
a écrit dans le message de news:

Bonjour

J'utilise la validation de données sur liste pour la saisie de valeurs
dans une colonne excel ; la liste de référence contenant un certain
nombre de codes.
Dans cette liste de références, les cellules contiennent non seulement
ces codes mais sont en plus mises en forme avec un fond de couleur
spécfique à chaque code.

A la saisie des valeurs dans ma colonne de données (par liste
déroulante) je souhaiterais que la mise en forme correspondante au
code sléectionné soit récupérée automatiquement ...

Je ne pense pas que cela soit possible par la mis ene forme
conditionnelle et je penche donc pour une macro.

Etes-vous d'accord ? Quelqu'un a-t-il déjà été confronté au problème
et peut-il m'aider ?

Merci d'avance
Avatar
JB
Bonjour,

Pour récupérer tous les attributs: coleur,police,...

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
Application.EnableEvents = False
p = Application.Match(Target, [maliste], 0)
Range("maliste")(p).Copy Target
Target.Validation.Add Type:=xlValidateList,
AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=maliste"
Application.EnableEvents = True
End If
End Sub

http://boisgontierj.free.fr/fichiers/jb-DonneesValidationVBA.xls

JB

On 3 avr, 15:10, wrote:
Bonjour

J'utilise lavalidationde données sur liste pour la saisie de valeurs
dans une colonne excel ; la liste de référence contenant un certain
nombre de codes.
Dans cette liste de références, les cellules contiennent non seulement
ces codes mais sont en plus mises en forme avec un fond de couleur
spécfique à chaque code.

A la saisie des valeurs dans ma colonne de données (par liste
déroulante) je souhaiterais que la mise en forme correspondante au
code sléectionné soit récupérée automatiquement ...

Je ne pense pas que cela soit possible par la mis ene forme
conditionnelle et je penche donc pour une macro.

Etes-vous d'accord ? Quelqu'un a-t-il déjà été confronté au pro blème
et peut-il m'aider ?

Merci d'avance


Avatar
bertrand.dienis
Bonjour et merci beaucoup pour vos réponses rapides ! Cela réponds
totalement à ce que j'attendais.

Une question subsidiaire malgré tout : commenet faire pour ne pas
prendre de message d'erreur quand je saisis une valeur non comprise
dans "maliste" ? J'imagine qu'il faut tester avant d'appliquer les
attributes de couleur si la valeur saisie est bien dans "maliste" mais
je ne sais pas comment faire ...

Merci d'avance.
Avatar
JB
On veut récupérer la couleur de fond et la couleur d'écriture dans
une liste déroulante:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
p = Application.Match(Target, [maliste], 0)
If Not IsError(p) Then
Target.Interior.ColorIndex = Range("maliste")
(p).Interior.ColorIndex
Target.Font.ColorIndex = Range("maliste")(p).Font.ColorIndex
End If
End If
End Sub

On veut récupérer tous les attributs dans une liste déroulante:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
Application.EnableEvents = False
p = Application.Match(Target, [maliste], 0)
If Not IsError(p) Then
Range("maliste")(p).Copy Target
Target.Validation.Add Type:=xlValidateList,
AlertStyle:=xlValidAlertInformation, Operator:= _
xlBetween, Formula1:="=maliste"
End If
Application.EnableEvents = True
End If
End Sub

JB

On 4 avr, 12:48, wrote:
Bonjour et merci beaucoup pour vos réponses rapides ! Cela réponds
totalement à ce que j'attendais.

Une question subsidiaire malgré tout : commenet faire pour ne pas
prendre de message d'erreur quand je saisis une valeur non comprise
dans "maliste" ? J'imagine qu'il faut tester avant d'appliquer les
attributes de couleur si la valeur saisie est bien dans "maliste" mais
je ne sais pas comment faire ...

Merci d'avance.


Avatar
bertrand.dienis
Merci beaucoup !

C'est impec ; tout fonctionne ...