Code VBA Excel: case à choix successif

Résolu/Fermé
Signaler
Messages postés
51
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
6 décembre 2010
-
Messages postés
51
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
6 décembre 2010
-
Bonjour,

Mon problème est relativement complexe:

Je fais un masque de saisie sous excel 2007 - j'ai trouvé un code VBA pour faire un choix successif dans une liste déroulante.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 15 And Target.Row > 5 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

Le problème c'est qu'à chaque fois que je veux revenir sur un des choix, je suis obligé de tout effacer pour pouvoir ressaisir quelque chose !

Ce que je voudrais, c'est pouvoir revenir sur mon dernier choix. Par une modalité supprimé dans la liste par ex. ou je ne sais quoi ...

Je tiens à préciser que je ne connais pas le VB !

Merci d'avance !

6 réponses

Messages postés
16538
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
1 décembre 2021
3 252
Bonjour,

Il est très aléatoire de copier-coller un code quand on ne le comprends pas (ce n'est pas un reproche)

Dis plutôt ce que tu veux faire de façon claire et précise et quelqu'un ici pourra te proposer une solution.
Messages postés
17705
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
4 décembre 2021
4 857
Salut,

Il ne suffit pas de glaner un code pour l'adapter à un besoin approximatif, un code est écrit avec des critères bien précis. Le code présenté me rappelle une discussion, mais la n'est pas la question.
Comme te l'écrit Michel_m explique simplement ce que tu souhaites faire
Messages postés
51
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
6 décembre 2010
23
Ok ! vous avez raison ... mais ça va être long:

1er - je fais un masque de saisie sous excel. Pour l'une des questions les individus doivent indiquer une ou plusieurs émotions et cela à différent moment de la journée.

2eme - j'ai donc une cellule par moment de la journée. J'ai fait dans chacune d'elle une condition de réponse qui renvoie à ma liste d'émotions, puis j'ai bidouillé un code pour que la liste déroulante accepte plusieurs choix dans la même case (plusieurs émotions pour le même moment de la journée)

3eme - mon problème c'est que l'on ne peut pas revenir sur un choix qu'on a fait dans la liste, sans tout effacer le contenu de la case. Alors ce que je voudrais c'est avoir une modalité dans ma liste d'émotion qui renvoie à une fonction qui annule la dernière modalité saisie

Voici le lien vers le classeur dont j'ai repris partiellement le code (sur la page "accueil" => "choix successif" dans "divers") et qui a le même inconvénient !!!
https://www.cjoint.com/?0lxk8w5dtDs

Voila, j'espère avoir été claire

Merci !

Ps: désolé, je n'ai plus la provenance du classeur ex. ! après y a un renvoie vers un site sur la page d'accueil ...
Messages postés
51
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
6 décembre 2010
23
Quelqu'un pour me donner un coup de main ?

S'il vous plait ...
Messages postés
16538
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
1 décembre 2021
3 252
Bonjour,

On voudrait bien mais je ne dois pas être le seul à ne pas comprendre tes explications

peut-^tre qu'en mettant le classeur en pièce jointe
sans données confidentielles (format XL97-2003) sur
http://cijoint.fr/
et coller le lien proposé dans le message de réponse
Messages postés
51
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
6 décembre 2010
23
Ok, c'est vrai que c'est pas clair ... c'est parce que je ne maitrise pas Excel !

Bref, voila une partie de mon fichier.
C'est la partie en vert qui pose problème !

Pour la "saisie successive", pas de problème, mais pour changer ou tout simplement supprimer une item précédemment sélectionné, il faut impérativement tout effacer !
Voyez vous-même ...
https://www.cjoint.com/?0lzqo6bNHDb

Merci d'avance !
Messages postés
16538
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
1 décembre 2021
3 252
Ok, fait est que c'était difficile à expliquer!

je regarde demain matin peut-être avec 1 clic droit ou une mention "erreur" dans L_emotions....
Messages postés
16538
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
1 décembre 2021
3 252
re,
la macro worksheet_change est très intéressante: félicitations! :-)

vite fait avant la soupe avec un clic droit
http://www.cijoint.fr/cjlink.php?file=cj201011/cijOmuQ3uW.xls
Messages postés
51
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
6 décembre 2010
23
Merci michel_m,

ça marche du feu de dieu !!!

Pour ce qui est de la macro worsheet_change c'est repiqué du classeur ex. que j'ai mis en premier (https://www.cjoint.com/?0lxk8w5dtDs

Problème résolu :!