Comment appliquer une mise en forme VBA à toutes les cellules ?

Résolu/Fermé
JF123 Messages postés 3 Date d'inscription jeudi 27 juin 2013 Statut Membre Dernière intervention 27 juin 2013 - 27 juin 2013 à 17:23
 JFA123 - 1 juil. 2013 à 11:43
Bonjour, voici mon code (il permet d'afficher plusieurs choix dans une cellule à partir d'une liste déroulante). Mais, je n'arrive pas à l'appliquer à toutes les cellules. J'y travaille depuis 3 heures !

Merci pour votre aide

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$F$6" And Target.Count = 1 Then
Application.EnableEvents = False
ValSaisie = Target
Application.Undo
p = InStr(Target, ValSaisie)
If p > 0 Then
Target = Left(Target, p - 1) & Mid(Target, p + Len(ValSaisie) + 1)
If Right(Target, 1) = ":" Then
Target = Left(Target, Len(Target) - 1)
End If
Else
If Target = "" Then
Target = ValSaisie
Else
Target = Target & ":" & ValSaisie
End If
End If
Application.EnableEvents = True
End If
End Sub

5 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
29 juin 2013 à 05:31
Bonjour

qu'elle est la cellule liée à la liste déroulante?
où doit s'afficher le résultat?
Au premier abord, il semblerait que le programme ne se déroule que si c'est la cellule F6 qui est sélectionnée, donc si ce n'est pas le cas on en sort.

Pouvez-vous nous donner plus de précisions?

cdlt
0
Bonjour

D'abord merci pour votre aide.

Vous avez vu juste, c'est la cellule F6 qui est visée le code.

J'ai affecté à la cellule F6 une liste déroulante classique ("validation des données"), ainsi, cela me permet de sélectionner plusieurs choix de ma liste et que tous ces choix apparaissent dans la cellule F6 (ils sont juste séparés par :), le résultat est impeccable.

Mon problème est que je voudrais le faire sur d'autres cellules de ma feuille. Alors, je fais un copier coller de mon code sur la nouvelle cellule et je change la cellule sélectionnée sur le code : "If Target.Address = "$F$6" And Target.Count = 1 Then" et je mets une liste déroulante.

Et là, du coup ma cellule F6 ne fonctionne plus !

Avez-vous une idée pour que mon code s'applique à toutes les cellules que je veux, et pas à une seule ?

Cdlt
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
29 juin 2013 à 22:02
Bonsoir


il faut lister l'emplacement de toutes les cellules concernées et remplacez
"If Target.Address = "$F$6" And Target.Count = 1 Then" par

************************************************************
if Target.Count <> 1 then exit sub
"If Target.Address = "$F$6" or Target.Address = "$F$10" or Target.Address = "$F$20" Then
************************************************************
par exemple pour les cellules F6, F10 ou F20

ça devrait aller

cdlt
0
Merci pour votre aide, j'essaie votre solution dès lundi et je vous tiendrai au courant.

Encore merci, très bon weekend.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,

Bravo ! votre solution fonctionne très bien.

Je vous remercie pour votre aide, et si je peux vous renvoyer l'ascenseur....

Bonne journée.
0