Code VBA Excel: case à choix successif
Résolu
studio103
Messages postés
51
Date d'inscription
Statut
Membre
Dernière intervention
-
studio103 Messages postés 51 Date d'inscription Statut Membre Dernière intervention -
studio103 Messages postés 51 Date d'inscription Statut Membre Dernière intervention -
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 !
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:
- Code VBA Excel: case à choix successif
- Code ascii - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
6 réponses
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.
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.
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
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
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 ...
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 ...
Quelqu'un pour me donner un coup de main ?
S'il vous plait ...
S'il vous plait ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 !
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 !
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 :!
ç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 :!