Code VBA Excel: case à choix successif

Résolu/Fermé
studio103 Messages postés 51 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 6 décembre 2010 - 23 nov. 2010 à 09:12
studio103 Messages postés 51 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 6 décembre 2010 - 26 nov. 2010 à 12:55
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 !

A voir également:

6 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
23 nov. 2010 à 09:33
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.
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
23 nov. 2010 à 10:05
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
0
studio103 Messages postés 51 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 6 décembre 2010 23
Modifié par studio103 le 23/11/2010 à 11:02
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 ...
0
studio103 Messages postés 51 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 6 décembre 2010 23
24 nov. 2010 à 11:38
Quelqu'un pour me donner un coup de main ?

S'il vous plait ...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
25 nov. 2010 à 11:20
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
0

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

Posez votre question
studio103 Messages postés 51 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 6 décembre 2010 23
25 nov. 2010 à 16:15
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 !
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
25 nov. 2010 à 17:28
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....
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
25 nov. 2010 à 18:54
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
0
studio103 Messages postés 51 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 6 décembre 2010 23
26 nov. 2010 à 12:55
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 :!
0