Macro et liste déroulante de choix
Résolu/Fermé
rapha1186
Messages postés
4
Date d'inscription
mercredi 3 juillet 2013
Statut
Membre
Dernière intervention
17 juillet 2013
-
3 juil. 2013 à 14:33
rapha1186 Messages postés 4 Date d'inscription mercredi 3 juillet 2013 Statut Membre Dernière intervention 17 juillet 2013 - 17 juil. 2013 à 08:59
rapha1186 Messages postés 4 Date d'inscription mercredi 3 juillet 2013 Statut Membre Dernière intervention 17 juillet 2013 - 17 juil. 2013 à 08:59
A voir également:
- Macro et liste déroulante de choix
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
7 réponses
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
337
7 juil. 2013 à 18:48
7 juil. 2013 à 18:48
Bonjour
voici une proposition
https://www.cjoint.com/c/CGhsPl6ON3l
Vu que l'action doit être exécutée lors de l'appui sur un bouton, j'en conclu que la liste déroulante est soit un contrôle de formulaire, soit une validation de données.
voici donc les 2 cas de figures, libre à vous de l'adapter à votre appli.
Nota: quand on arrive en fin de liste, évidemment au remonte en début de liste
bonne réception
cdlt
voici une proposition
https://www.cjoint.com/c/CGhsPl6ON3l
Vu que l'action doit être exécutée lors de l'appui sur un bouton, j'en conclu que la liste déroulante est soit un contrôle de formulaire, soit une validation de données.
voici donc les 2 cas de figures, libre à vous de l'adapter à votre appli.
Nota: quand on arrive en fin de liste, évidemment au remonte en début de liste
bonne réception
cdlt
Bonjour,
Désolé de ne répondre que maintenant mais j'étais en vacences.
Mon problème est quasiment résolu grâce à vous. En fait si je n'arrive pas à adapter votre macro c'est parce que les données de ma liste déroulante de choix ne sont pas sur la même feuille du classeur. Vous serez t'il possible de m'éclairer une nouvelle fois? Je ne sais pas si c'est très claire, n'hésitez pas à me poser des questions. Je vous donne une petite précision, dans mon cas, c'est validation de données.
Merci.
Raphaël
Désolé de ne répondre que maintenant mais j'étais en vacences.
Mon problème est quasiment résolu grâce à vous. En fait si je n'arrive pas à adapter votre macro c'est parce que les données de ma liste déroulante de choix ne sont pas sur la même feuille du classeur. Vous serez t'il possible de m'éclairer une nouvelle fois? Je ne sais pas si c'est très claire, n'hésitez pas à me poser des questions. Je vous donne une petite précision, dans mon cas, c'est validation de données.
Merci.
Raphaël
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
337
16 juil. 2013 à 17:54
16 juil. 2013 à 17:54
Bonjour
il suffit de donner un nom à la liste qui se trouve sur l'autre feuille.
pour rester conforme au fichier que je vous ai fourni, il suffit de la nommer "Liste", mais vous pouvez mettre le nom que vous voulez, dans ce cas, il faudra remplacer le mot Liste dans la macro
Au cas ou vous ne sauriez pas créer la liste, voici comment procéder
sur la feuille de la liste, sélectionnez toute la liste,
dans la zone de nom, (en haut à gauche de la barre de formule), tapez le nom de votre choix que vous voulez attribuer à la liste. validez par "Entrée" - la nouvelle liste est créée.
pour la validation de données, dans les options, sélectionnez "liste"
dans la zone source, tapez =liste (ou le nom que vous aurez choisi).
en espérant avoir été assez clair.
bonne soirée
cdlt
il suffit de donner un nom à la liste qui se trouve sur l'autre feuille.
pour rester conforme au fichier que je vous ai fourni, il suffit de la nommer "Liste", mais vous pouvez mettre le nom que vous voulez, dans ce cas, il faudra remplacer le mot Liste dans la macro
Sub SelectionSuivante2() On Error Resume Next Liste = Range("A12:A15").Address Validation = Range("E3").Value Set c = Range(Liste).Find(Validation, LookIn:=xlValues) If c.Offset(1, 0).Value = "" Then Range("E3").Value = Range("A12").Value Else Range("E3").Value = c.Offset(1, 0).Value End If End Sub
Au cas ou vous ne sauriez pas créer la liste, voici comment procéder
sur la feuille de la liste, sélectionnez toute la liste,
dans la zone de nom, (en haut à gauche de la barre de formule), tapez le nom de votre choix que vous voulez attribuer à la liste. validez par "Entrée" - la nouvelle liste est créée.
pour la validation de données, dans les options, sélectionnez "liste"
dans la zone source, tapez =liste (ou le nom que vous aurez choisi).
en espérant avoir été assez clair.
bonne soirée
cdlt
rapha1186
Messages postés
4
Date d'inscription
mercredi 3 juillet 2013
Statut
Membre
Dernière intervention
17 juillet 2013
16 juil. 2013 à 18:07
16 juil. 2013 à 18:07
Re,
Ce n'est pas exactement ça le problème... Dans votre macro on fait toujours référence aux cellules A12 à A15 de la feuille sur laquelle il y a le bouton mais si ces cellules sont sur une autre feuille cela ne fonctionne plus. Pour faire simple j'aimerais que sur une feuille il n'y ait que le bouton et la liste déroulante et tout le reste sur une autre feuille du même classeur.
Raphaël
Ce n'est pas exactement ça le problème... Dans votre macro on fait toujours référence aux cellules A12 à A15 de la feuille sur laquelle il y a le bouton mais si ces cellules sont sur une autre feuille cela ne fonctionne plus. Pour faire simple j'aimerais que sur une feuille il n'y ait que le bouton et la liste déroulante et tout le reste sur une autre feuille du même classeur.
Raphaël
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
337
16 juil. 2013 à 18:21
16 juil. 2013 à 18:21
Exemple
la liste est sur la feuille 2, de la cellule A1 à A100
Liste = sheets("Feuil2").Range("A1:A100").Address
mettez le nom de votre feuille, et les adresse de départ et de fin de votre liste, tout simplement
essayez
la liste est sur la feuille 2, de la cellule A1 à A100
Liste = sheets("Feuil2").Range("A1:A100").Address
mettez le nom de votre feuille, et les adresse de départ et de fin de votre liste, tout simplement
essayez
rapha1186
Messages postés
4
Date d'inscription
mercredi 3 juillet 2013
Statut
Membre
Dernière intervention
17 juillet 2013
16 juil. 2013 à 18:48
16 juil. 2013 à 18:48
RE,
J'ai beau essayé je ne trouve pas d'où viens le problème.
Regardez sur le document: https://www.cjoint.com/?3GqsTtDucm5
peut-être verrez vous d'où vient le problème.
En tout cas merci de prendre le temps de me répondre.
J'ai beau essayé je ne trouve pas d'où viens le problème.
Regardez sur le document: https://www.cjoint.com/?3GqsTtDucm5
peut-être verrez vous d'où vient le problème.
En tout cas merci de prendre le temps de me répondre.
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
337
16 juil. 2013 à 19:49
16 juil. 2013 à 19:49
et cette fois-ci
Sub SelectionSuivante2()
On Error Resume Next
Liste = Sheets("Feuil2").Range("A5:A8").Address
Validation = Range("E3").Value
Set c = Sheets("Feuil2").Range(Liste).Find(Validation, LookIn:=xlValues)
If c.Offset(1, 0).Value = "" Then
Range("E3").Value = Sheets("Feuil2").Range("A5").Value
Else
Range("E3").Value = c.Offset(1, 0).Value
End If
End Sub
A+
Sub SelectionSuivante2()
On Error Resume Next
Liste = Sheets("Feuil2").Range("A5:A8").Address
Validation = Range("E3").Value
Set c = Sheets("Feuil2").Range(Liste).Find(Validation, LookIn:=xlValues)
If c.Offset(1, 0).Value = "" Then
Range("E3").Value = Sheets("Feuil2").Range("A5").Value
Else
Range("E3").Value = c.Offset(1, 0).Value
End If
End Sub
A+
rapha1186
Messages postés
4
Date d'inscription
mercredi 3 juillet 2013
Statut
Membre
Dernière intervention
17 juillet 2013
17 juil. 2013 à 08:59
17 juil. 2013 à 08:59
Nickel merci,
A+
A+