cumuler des données d'une liste de validation dans une même cellule

strange_frog

XLDnaute Nouveau
Bonjour,
je souhaiterais réussir à cumuler plusieurs données d'une liste de validation dans une même cellule (celle qui présente la liste déroulante).
J'ai bien vu que cette demande a déjà été relevée sur le site par body 71C le 27/04/2007, mais il semblerait que les échanges d'idées ce soient terminées avant la résolution du problème...
Le but étant dans une même cellule de cumuler les données (au lieu de remplacer la précédente sélection à chaque fois).
Merci beaucoup pour votre aide.
Karine
P.S.: actuellement je travaille avec Excel 2003
 

Jocelyn

XLDnaute Barbatruc
Re : cumuler des données d'une liste de validation dans une même cellule

Bonjour le Forum,
Bonjour strange_frog,

Je ne sais pas si je pourrais t'aider mais un fichier exemple de quelques lignes seulement de ton besoin nous (enfin m') aiderait à comprendre ta demande.

Jocelyn
 

strange_frog

XLDnaute Nouveau
Re : cumuler des données d'une liste de validation dans une même cellule

Bien sur... je viens d'en créer un.
Je créé d'une part, une liste d'affection, et d'autre part un tableau, dans lequel les noms de plantes qui peuvent soigner certaines affections apparaissent. Or chaque plante peut soigner plusieurs affections simultanément, et je souhaiterai les afficher toutes dans la même cellule... est-ce plus clair?
 

Pièces jointes

  • exemple.xls
    13.5 KB · Affichages: 508
  • exemple.xls
    13.5 KB · Affichages: 511
  • exemple.xls
    13.5 KB · Affichages: 517

strange_frog

XLDnaute Nouveau
Re : cumuler des données d'une liste de validation dans une même cellule

Exemple concret: dans la case juste à droite de "plante 01" pour l'instant il y a "stress" sélectionné. J'aimerai ajouter "mal de tête" par exemple, et non pas le remplacer !!! les 2 données pourraient être l'une au-dessous de l'autre, ou séparées par un point virgule...?? mais dans cette cellule-ci (la C12)....
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : cumuler des données d'une liste de validation dans une même cellule

Bonsoir,


Les choix s'ajoutent ou se retranchent si choix déjà fait.
La colonne B est cachée.

Code:
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
 

Pièces jointes

  • DVChoixSuccessifs.xls
    39.5 KB · Affichages: 671
  • DVChoixSuccessifs.xls
    39.5 KB · Affichages: 695
  • DVChoixSuccessifs.xls
    39.5 KB · Affichages: 688

ruavaca

XLDnaute Nouveau
Re : cumuler des données d'une liste de validation dans une même cellule

Bonsoir,


Les choix s'ajoutent ou se retranchent si choix déjà fait.
La colonne B est cachée.

Code:
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



Bonjour,

C'est vraiment ce que je cherche à faire!

Par contre, pourriez vous m'expliquer comment faire pour avoir le résultat sur la colonne E, svp!

Merci beaucoup,

Ruavaca
 

Rhaly

XLDnaute Nouveau
Re : cumuler des données d'une liste de validation dans une même cellule

Je début également en VBA mais ayant utilisé target.offset récemment je crois pouvoir vous aider

Le "target" est $C$2, le target.offset (0,-1) correspond donc à un décalage de 0 ligne et de 1 colonne en arrière soit B.

Pour avoir le résultat sur la colonne E il faut donc un décalage de 2 colonnes vers la droite ce qui fait target.offset(0, 2).
 

eldo

XLDnaute Nouveau
Bonjour,

Merci pour vos réponses cela m'a rendu service.

J'ai une question supplémentaire: si l'on souhaite appliquer cette macro ("Les choix s'ajoutent ou se retranchent si choix déjà fait. La colonne B est cachée ") non pas uniquement sur la cellule C2 mais sur les cellules C2 à C50 comment peut on procéder ?

Merci,

Alexis
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG