Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

liste déroulante permettant double ajout

  • Initiateur de la discussion Initiateur de la discussion Flohb
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

Flohb

Guest
Bonjour,

Je souhaiterais créer une liste déroulante me permettant d'ajouter, si je le veux, 2 voir 3 mots, choisis dans cette même liste, dans la même cellule.

Merci d'avance pour vos réponses.
 
Re : liste déroulante permettant double ajout

Bonjour Flohb

A mon avis, ce n'est pas possible, la plus part des listes deroulantes, sont en realité des listess de validation

ce qui implique que la cellule doit comprendre une occurence de cette liste ou rien du tout

Si tu veux ajouter un ou deux mots dans cette cellule, il faut modifier la liste de validation, et y integrer ces valeurs, dans ce cas tu perds l'origine de ta liste de validation

C'est neanmoins faisable, mais autrement, via VBA par macro, et sans liste de validation
 
Re : liste déroulante permettant double ajout

Bonjour,

Un essai avec un fichier trouvé ici (André si ma mémoire est bonne).

Dans la zone de saisie, on peut rajouter une donnée qui est ensuite dispo dans la liste déroulante pour les saisies suivantes.

Le tout, sous réserve d'avoir compris la demande de Flohb

A tester.

@+
 

Pièces jointes

Re : liste déroulante permettant double ajout

Bonjour,


Données/Validation

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$2" And Target.Count = 1 Then
Application.EnableEvents = False
p = InStr(Target.Offset(0, -1), Target.Value)
If p > 0 Then
Target.Offset(0, -1) = Left(Target.Offset(0, -1), p - 1) & _
Mid(Target.Offset(0, -1), p + Len(Target.Value) + 1)
Else
Target.Offset(0, -1) = Target.Offset(0, -1) & Target.Value & " "
End If
Target.Value = Target.Offset(0, -1)
Application.EnableEvents = True
End If
End Sub

JB
Formation Excel VBA JB
 
Re : liste déroulante permettant double ajout

bonjour,

encore juste une petite question, si je veux adapter ce code non plus à une seule cellule mais a plusieurs cellule d'une même colonne, coment dois je configurer le "target.adress"?
 
Re : liste déroulante permettant double ajout

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 And Target.Count = 1 Then
Application.EnableEvents = False
p = InStr(Target.Offset(0, -1), Target.Value)
If p > 0 Then
Target.Offset(0, -1) = Left(Target.Offset(0, -1), p - 1) & _
Mid(Target.Offset(0, -1), p + Len(Target.Value) + 1)
Else
Target.Offset(0, -1) = Target.Offset(0, -1) & Target.Value & " "
End If
Target.Value = Target.Offset(0, -1)
Application.EnableEvents = True
End If
End Sub

JB
 

Pièces jointes

Re : liste déroulante permettant double ajout

bonjour,

encore juste une petite question, si je veux adapter ce code non plus à une seule cellule mais a plusieurs cellule d'une même colonne, coment dois je configurer le "target.adress"?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
XL 2016 liste
Réponses
10
Affichages
386
  • Question Question
Microsoft 365 INDEX equiv
Réponses
1
Affichages
204
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…