Liste déroulante dépendante évolutive
Fermé
NoviceVBA2017
Messages postés
26
Date d'inscription
dimanche 29 janvier 2017
Statut
Membre
Dernière intervention
6 mai 2019
-
Modifié le 29 avril 2019 à 22:34
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 6 mai 2019 à 14:24
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 6 mai 2019 à 14:24
A voir également:
- Liste déroulante dépendante évolutive
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Google sheet liste déroulante - Accueil - Guide bureautique
- Supprimer une liste déroulante excel - Forum Word
- Trouver numéro liste rouge gratuitement ✓ - Forum Mobile
7 réponses
PHILOU10120
Messages postés
6393
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
9 octobre 2024
810
1 mai 2019 à 13:28
1 mai 2019 à 13:28
Bonjour
Le fichier avec une proposition feuille liste déroulante 2
https://www.cjoint.com/c/IEblAXr7lp2
Le fichier avec une proposition feuille liste déroulante 2
https://www.cjoint.com/c/IEblAXr7lp2
NoviceVBA2017
Messages postés
26
Date d'inscription
dimanche 29 janvier 2017
Statut
Membre
Dernière intervention
6 mai 2019
1 mai 2019 à 14:29
1 mai 2019 à 14:29
Bonjour Philou10120,
Merci pour ce retour, mais ma réelle difficulté ne résidait pas dans la création d'un troisième niveau de liste déroulante. Mon problème, pour garder l'exemple de la feuille "Liste déroulante 2", est que si je créé la lettre "G" dans la liste déroulante de niveau 1, comment mettre à jour automatiquement la liste de niveau 2?
Cette manipulation doit être faisable par des personnes qui ont des connaissances sur excel extrêmement limitées (rien de péjoratif) et c'est pourquoi je trouve la méthode avec les macros plus simple pour l'utilisateur.
Merci pour ce retour, mais ma réelle difficulté ne résidait pas dans la création d'un troisième niveau de liste déroulante. Mon problème, pour garder l'exemple de la feuille "Liste déroulante 2", est que si je créé la lettre "G" dans la liste déroulante de niveau 1, comment mettre à jour automatiquement la liste de niveau 2?
Cette manipulation doit être faisable par des personnes qui ont des connaissances sur excel extrêmement limitées (rien de péjoratif) et c'est pourquoi je trouve la méthode avec les macros plus simple pour l'utilisateur.
NoviceVBA2017
Messages postés
26
Date d'inscription
dimanche 29 janvier 2017
Statut
Membre
Dernière intervention
6 mai 2019
1 mai 2019 à 18:34
1 mai 2019 à 18:34
Donc en fait je souhaiterai que les applications displayalert false & screenupdating false fonctionnent^^
Et je ne comprend pas car elles marchent lorsque je les utilise dans d'autres macros. Les seules différences sont que sur celle-ci on est en macro événementiel et en fichier partagé, deux choses que je ne maîtrise pas et qui sont peut être la source de mes problèmes...
Et je ne comprend pas car elles marchent lorsque je les utilise dans d'autres macros. Les seules différences sont que sur celle-ci on est en macro événementiel et en fichier partagé, deux choses que je ne maîtrise pas et qui sont peut être la source de mes problèmes...
PHILOU10120
Messages postés
6393
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
9 octobre 2024
810
2 mai 2019 à 09:29
2 mai 2019 à 09:29
Bonjour
Je ne sais pas pour les macros.
Voici le fichier modifié avec l'ajout de la lettre G
https://cjoint.com/c/IEchDgZXai2
Je ne sais pas pour les macros.
Voici le fichier modifié avec l'ajout de la lettre G
https://cjoint.com/c/IEchDgZXai2
NoviceVBA2017
Messages postés
26
Date d'inscription
dimanche 29 janvier 2017
Statut
Membre
Dernière intervention
6 mai 2019
2 mai 2019 à 20:53
2 mai 2019 à 20:53
Bonjour Philou10120,
Merci encore pour ton retour, mais je me suis mal exprimé : mon fichier actuel n'est pas fini et c'est normal. Je sais comment ajouter manuellement des éléments dans la liste de N1 et faire de même pour les niveaux suivants.
Ce que je veux c'est que en ajoutant, par exemple le "G" dans le N1, un G se créé en auto dans le N2. Et si je créé quelque chose dans le N2, ça se créé en auto dans le N3
Merci encore pour ton retour, mais je me suis mal exprimé : mon fichier actuel n'est pas fini et c'est normal. Je sais comment ajouter manuellement des éléments dans la liste de N1 et faire de même pour les niveaux suivants.
Ce que je veux c'est que en ajoutant, par exemple le "G" dans le N1, un G se créé en auto dans le N2. Et si je créé quelque chose dans le N2, ça se créé en auto dans le N3
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié le 2 mai 2019 à 11:46
Modifié le 2 mai 2019 à 11:46
Bonjour à tous,
Apparemment, tu ne travailles que sur une seule feuille: tu nous ouvres pas ni fermes de classeurs, tu ne supprimes pas ni crée de nouvelles feuilles ---> displayalerts ne te sert ici à rien!
screenupdating: je ne vois pas de problèmes mais à la fin de la macro, il se met automatiquement à True donc tu peux supprimer cette ligne.
Quant à mettre calculation à manual: si tu as des formules en cascade, calculation ne les prend pas en compte, il faut une fois la macro terminée appuyer manuellement sur F9;
dans le cas de cette macro je ne l'aurais pas utilisée
Attention aux collisions avec un classeur partagé : une seule personne à la fois !
Apparemment, tu ne travailles que sur une seule feuille: tu nous ouvres pas ni fermes de classeurs, tu ne supprimes pas ni crée de nouvelles feuilles ---> displayalerts ne te sert ici à rien!
screenupdating: je ne vois pas de problèmes mais à la fin de la macro, il se met automatiquement à True donc tu peux supprimer cette ligne.
Quant à mettre calculation à manual: si tu as des formules en cascade, calculation ne les prend pas en compte, il faut une fois la macro terminée appuyer manuellement sur F9;
dans le cas de cette macro je ne l'aurais pas utilisée
Attention aux collisions avec un classeur partagé : une seule personne à la fois !
NoviceVBA2017
Messages postés
26
Date d'inscription
dimanche 29 janvier 2017
Statut
Membre
Dernière intervention
6 mai 2019
Modifié le 2 mai 2019 à 21:01
Modifié le 2 mai 2019 à 21:01
Bonjour Michel_m,
Merci pour ton retour.
Comment puis-je procéder pour que ça fonctionne alors? Le screenupdating et le calculation manual relèvent plus du confort pour l'utilisateur, mais le message d'alerte est véritablement problématique... existe t'il un moyen de contourner le problème?
Merci encore.
(La feuille "Liste déroulante 2 n'est pas à prendre en compte sur la macro")
Merci pour ton retour.
Comment puis-je procéder pour que ça fonctionne alors? Le screenupdating et le calculation manual relèvent plus du confort pour l'utilisateur, mais le message d'alerte est véritablement problématique... existe t'il un moyen de contourner le problème?
Merci encore.
(La feuille "Liste déroulante 2 n'est pas à prendre en compte sur la macro")
NoviceVBA2017
Messages postés
26
Date d'inscription
dimanche 29 janvier 2017
Statut
Membre
Dernière intervention
6 mai 2019
5 mai 2019 à 15:21
5 mai 2019 à 15:21
Bonjour à tous,
J'ai peut être trouvé la solution qui fonctionne à priori bien :
En début de macro : if activeworkbook.multiuserediting then activeworkbook.exclusiveacess
Et je le repasse en partage en fin de macro.
Je n'ai en revanche pas l'opportunité de tester cela si plusieurs personnes sont sur le fichier... quels serait les impacts potentiels de passer en accès exclusif si quelqu'un d'autre est aussi sur le fichier? Ca planterait?
J'ai peut être trouvé la solution qui fonctionne à priori bien :
En début de macro : if activeworkbook.multiuserediting then activeworkbook.exclusiveacess
Et je le repasse en partage en fin de macro.
Je n'ai en revanche pas l'opportunité de tester cela si plusieurs personnes sont sur le fichier... quels serait les impacts potentiels de passer en accès exclusif si quelqu'un d'autre est aussi sur le fichier? Ca planterait?
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
6 mai 2019 à 09:36
6 mai 2019 à 09:36
Bonjour,
Ca planterait?
Il y a de fortes possibilités que oui
Le screenupdating et le calculation manual relèvent plus du confort pour l'utilisateur,
Ben voyons!
screenupdating diminue grandement la durée d'une macro
Calculationmanual : si il y a des cascades de formules, cela oblige à ce que l'utilisateur n'oublie pas d appuyer sur F9 une fois la macro exécutée sinon il te dira qu'il y a des erreurs de calcul: BRAVO POUR LE CONFORT de TOUS...
J'ai essayé de t"expliquer mais comme tu ne veux rien savoir, bonne continuation.
Michel
Ca planterait?
Il y a de fortes possibilités que oui
Le screenupdating et le calculation manual relèvent plus du confort pour l'utilisateur,
Ben voyons!
screenupdating diminue grandement la durée d'une macro
Calculationmanual : si il y a des cascades de formules, cela oblige à ce que l'utilisateur n'oublie pas d appuyer sur F9 une fois la macro exécutée sinon il te dira qu'il y a des erreurs de calcul: BRAVO POUR LE CONFORT de TOUS...
J'ai essayé de t"expliquer mais comme tu ne veux rien savoir, bonne continuation.
Michel
NoviceVBA2017
Messages postés
26
Date d'inscription
dimanche 29 janvier 2017
Statut
Membre
Dernière intervention
6 mai 2019
6 mai 2019 à 13:24
6 mai 2019 à 13:24
Bonjour Michael,
Je n’ai pas précisé mais concernant le screenupdating, je le désactive en début de macro et comme tu l’as précisé, il se réactive tout seul en fin de macro -> j’ai retiré l’activation du screenupdating en fin de macro
Concernant le calculationmanual, je le repasse en auto en fin de macro -> pas de F9 à faire en fin de macro par l’utilisateur.
Concernant le displayalert je l’ai supprimé -> pas de problème
Donc, si, je t’écoute, même si je le l’ai pas précisé dans mes messages.
A présent, comme je le disais plus haut, tout semble fonctionner mais j’ai des doutes sur le fait de passer en acces exclusif puis de le repartager automatiquement en fin de macro.
Tu sembles dire qu’il y a des possibilités pour que ça plante : pourquoi et que puis-je faire pour y palier?
Je n’ai pas précisé mais concernant le screenupdating, je le désactive en début de macro et comme tu l’as précisé, il se réactive tout seul en fin de macro -> j’ai retiré l’activation du screenupdating en fin de macro
Concernant le calculationmanual, je le repasse en auto en fin de macro -> pas de F9 à faire en fin de macro par l’utilisateur.
Concernant le displayalert je l’ai supprimé -> pas de problème
Donc, si, je t’écoute, même si je le l’ai pas précisé dans mes messages.
A présent, comme je le disais plus haut, tout semble fonctionner mais j’ai des doutes sur le fait de passer en acces exclusif puis de le repartager automatiquement en fin de macro.
Tu sembles dire qu’il y a des possibilités pour que ça plante : pourquoi et que puis-je faire pour y palier?
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié le 6 mai 2019 à 14:26
Modifié le 6 mai 2019 à 14:26
c'est toujours le B... avec les classeurs partagés !!!
Voir
https://support.microsoft.com/fr-fr/office/en-savoir-plus-sur-la-fonctionnalit%c3%a9-classeur-partag%c3%a9-49b833c0-873b-48d8-8bf2-c1c59a628534?redirectsourcepath=%252ffr-fr%252farticle%252futiliser-un-classeur-partag%2525c3%2525a9-pour-collaborer-b8207fe9-a613-483f-b804-0ca4658b0c61&ui=fr-fr&rs=fr-fr&ad=fr
Et surtout
http://dj.joss.free.fr/reso.htm
Tu peux aussi tester si le classeur est fermé ou ouvert
macro sur chaque classeur utilisateur avec une msgbox "patientez"
F : chemin complet de ton classeur partagé
Voir
https://support.microsoft.com/fr-fr/office/en-savoir-plus-sur-la-fonctionnalit%c3%a9-classeur-partag%c3%a9-49b833c0-873b-48d8-8bf2-c1c59a628534?redirectsourcepath=%252ffr-fr%252farticle%252futiliser-un-classeur-partag%2525c3%2525a9-pour-collaborer-b8207fe9-a613-483f-b804-0ca4658b0c61&ui=fr-fr&rs=fr-fr&ad=fr
Et surtout
http://dj.joss.free.fr/reso.htm
Tu peux aussi tester si le classeur est fermé ou ouvert
Function FichOuvert(F As String) As Boolean
Dim Wk As Workbook
On Error Resume Next
Set Wk = Workbooks(F)
On Error GoTo 0
FichOuvert = Not Wk Is Nothing
End Function
macro sur chaque classeur utilisateur avec une msgbox "patientez"
F : chemin complet de ton classeur partagé