Liste déroulante multiple et variable_Erreur de compilation

Bonjour à tous,

pour commencer, je me débrouille un peu avec excel mais je ne suis pas du tout calée en VBA ...

j'ai suivi un tuto de Joel GARBE sur YOU TUBE (désolée, il n'est pas possible de mettre le lien dans le forum...) pour créer ce que je voulais faire mais cela ne fonctionne pas,

j'ai un message qui s'affiche : "erreur de compilation nom ambigu détecté", j'ai du mal faire quelque part et je vous demande votre aide, svp pourriez vous regarder mon fichier et me dire ce qui cloche (mais j'espère que je pourrai comprendre la réponse )! Le but est d'avoir une liste déroulante multiple à cocher (en colonne Q) en fonction de ce qu'on renseigne en colonne P.

J'ai également un second problème avec ce message :

image

il faut forcément l'ouvrir avec l'application et je me demande s'il y a peut être une autre solution, un autre manière de faire ou de penser mon fichier afin qu'il fonctionne en version web ?

D'avance un grand merci pour votre expertise et votre aide,

Sabrina

Bonjour,

plusieurs erreurs qui montrent qu'il te manque les bases.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Option Explicit
' et à la fin
End sub

sont en trop. Tu as collé des procédures à l'intérieur d'une autre...

Pour une sélection multiple il faut utiliser une ListBox. Il faut personnaliser le ruban en ajoutant le menu 'Développeur' et insérer une ListBox ActivX.
Le VBA ne fonctionne pas en ligne, si certains n'ont accès qu'à cette version il faut abandonner cette idée.

Un fichier qui permet de les créer facilement.
Lire les explications et les commentaires des titres de la feuille Listes.
Le principe est d'y déclarer tes listes à partir de I:I et de dire où elles doivent fonctionner, et comment (1 ou 2 en F pour multi)

Seule Feuil1 a le code pour les gérer, à dupliquer ailleurs si besoin.
Ne pas tenir compte du UserForm1 non encore opérationnel, à supprimer
eric

Bonjour Eric, un grand merci pour ce retour,

j'aurai du dire clairement que je suis une quiche en VBA et que je ne sais pas du tout coder !!! je n'ai effectivement aucune base mais des besoins pour le boulot et aucun service dédié pour aider à concevoir ce type d'outil donc c'est système D !

J'ai repris ton fichier et mis mes info ... ca fonctionne sauf en colonne Q ... et je ne comprends comment faire pour que me soit proposés seulement les "options" correspondantes au choix fait en colonne P....

mais je vois que dans le gestionnaire de NOMS tu as mis ce type de formules (=DECALER(Listes!$I$1;1;;NBVAL(Listes!$I:$I)-1;))

peut être que c'est de là d'où vient mon problème ?

je suis désolée d'être nulle et de devoir encore demander de l'aide mais comme tu le dis : " En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche."

Merci encore et au plaisir de te lire !

Sabrina

9forum-excel.xlsm (84.19 Ko)

Bonjour,

Je l'avais deviné
On a tous débuté, c'est bien de ne pas te laisser rebuter par le coté abscond au départ.

De ce que j'ai compris, tu veux en plus des listes en cascade. C'est un peu plus complexe et ce n'est pas prévu.
Il faut que je réfléchisse tranquillement à ce qui est faisable car c'est un coup à rajouter des bugs en pagaille et se se retrouver avec un truc indémerdable...
A+
eric

suite...

J'ai mis cette évolution.
Un champ supplémentaire de paramétrage 'en cascade' en H
Ne pas remplir 'Liste utilisée' dans ce cas, c'est son absence qui enclenche le traitement liste en cascade.
2 possibilités :
- liste mère absolue : fournir la référence de la cellule mère. Ex : A2
- liste mère relative : fournir les offsets ligne, colonne. Ex : 0,-1 (même ligne, 1 colonne à gauche)
j'ai essayé de détecter les erreurs de saisies pour alerter plutôt que planter. Possible qu'il reste des cas non traités...

Autres évols :
- les listes à sélection unique sont cachées dès le choix fait
- un double-clic dans la cellule en cours masque la liste

Vois ce que ça donne et remonte les anomalies
eric

Merci beaucoup!! je regarde cela de ce pas mais existe - t-il une astuce pour activer les macros de manière forcée ?!

quand je veux tester et enlever le mode création pour ne pas avoir la zone Active X, j' ai toujours ce message d'erreur :

image

je galère, j'ai pourtant coché : les paramètres des macros "activer toutes les macros"....

Désolée, ça a l'air top c'est seconde version mais je n'arrive pas à l'ouvrir correctement et la tester, je me sens boulet de ouf

dans options / centre de gestion de la confidentialité /paramètre du centre de gestion de la confidentialité / paramètres des macros
regarde d'être ainsi :

image

et accepter les macros à la 1ère ouverture bien sûr.
'Activer les macros VBA' n'est pas raisonnable

Et tu peux approuver l'emplacement où tu mets tes fichiers dont tu es sûres :

image

Bonjour,

un oubli, je t'ai passé le paramètre Multi de 2 (que tu avais choisi) en 1.
2 oblige l'utilisateur à appuyer sur Ctrl pour modifier ses choix. C'est un coup à perdre les anciennes sélections pour les maladroits.

Et en reportant les modifs sur mon fichier je me suis aperçu qu'il fallait que je contrôle l'existence de la liste mère de celle en cascade sinon ça plante.
Tu peux faire des tests mais en étant rigoureuse et en sélectionnant bien la liste mère avant la sous-liste.
Je verrais ça demain si je peux.
eric

Re,

ta version mise à jour et à tester
eric

Bonjour Eric,

merci pour tes retours, c'est inespéré donc un grand MERCI vraiment !!

j'ai pas réussi à les ouvrir de la manière dont tu m'as indiquée

mais en faisant cette manip ça a marché !

image

j'ai testé et ça fonctionne très bien !!

sauf en Q9 alors j'ai supprimé dans la "Listes" la colonne P car c'était les "choix" indiqué en colonne V qui devaient s’afficher !

mais c'est top donc un grand / immense MERCI,

en revanche, j'ai essayé d'extraire des données de mon tableau de la feuil2 en TCD et j'ai un souci, je n'arrive pas à comptabiliser chaque option choisie,
par exemple j'aimerai savoir combien de fois il y a "Appel SES" dans SOCIAL et lorsque ce choix est couplé avec une autre option c'est impossible à comptabiliser...

je ne sais pas si je suis claire et si tu peux (encore) m'aider sur cet aspect ?

Eric,

en fait c''est ta seconde proposition qui convient et que je remets ici dans ce post (encore MERCI)

comme précédemment précisé, j'ai supprimé dans la feuille "Listes" la colonne P car c'était les "choix" indiqués en colonne V qui devaient s’afficher ;-)

car si j'ai bien testé, dans ta dernière proposition, on ne peut pas sélectionner plusieurs réponses en colonne Q sur la "Feuil 2"

Bonjour Sabrina,

Ah oui, il y a ce blocage parfois. Je n'y pense jamais car rencontré trop rarement...

sauf en Q9 alors j'ai supprimé dans la "Listes" la colonne P car c'était les "choix" indiqué en colonne V qui devaient s’afficher !

pas trop compris mais sans doute lié au fait que tu as 2 listes PA_PH
Pas dit, mais les noms de listes doivent être uniques qu'il puisse s'y retrouver

et j'ai un souci, je n'arrive pas à comptabiliser chaque option choisie,

normal, excel n'est pas prévu pour avoir plusieurs valeurs par cellules.
Une BDD correcte et exploitable c'est une ligne pour chaque enregistrement.
Donc soit tu changes ton fusil d'épaule et tu respectes ça : http://www.xlerateur.com/divers/2010/05/14/les-13-regles-d%E2%80%99or-pour-utiliser-excel-comme-gest...

Soit une fonction personnalisée où tu lui dis quoi compter et sur quelle plage.

Soit créer un nouveau tableau où chaque donnée serait sur une ligne :

image

A voir s'il faut le limiter aux enregistrements multiples ou y mettre également d'autres champs que tu dois analyser. Il faudrait lister lesquels.
C'est un exemple. Si tu as une autre idée de présentation qui faciliterai l'usage que tu vas en avoir mets un modèle.
Est-ce qu'il faut prévoir une période d'extraction ?

Autre chose.
Si qq'un change la catégorie en P, les sous-choix en S ne sont plus en adéquation.
Les utilisateurs penseront à nettoyer S ?
eric

exemple fonction personnalisée.
Prévue que pour les choix, sous-choix, pour le 3ème paramètre sélectionner les 2 colonnes

Syntaxe :
=nbLibellé(type, libellé, plage type+Libellé)
=nbLibellé(A2;B2;Feuil2!$P$2:$Q$11)

Bonjour Eric,

merci pour ce retour !!

je n'ai pas eu le temps de répondre avant, mais hier j'ai regardé pour mettre en place comme tu le proposais "une fonction personnalisée où tu lui dis quoi compter et sur quelle plage" : Voir la feuil1 du fichier, ca ressemble à ce que tu as proposé ensuite mais ce n'est pas la même formule ;-)

Je profite de cette réponse pour savoir s'il existe une méthode pour améliorer le fonctionnement que j'ai mis en place sur la Feuille 2

je m'explique :

  • Soit je fais de la mise en forme conditionnelle et « noircie » certaines cases

Exemple : sur la feuil2 : Si « la personne elle -même » est sélectionné en I, alors J et K se noircissent….

  • Soit à la base je choisis la couleur NOIRE pour REMPLIR une colonne : dans la Feuil2 => les colonnes D, G, H J et K, S à V, X

+ je configure une mise en forme conditionnelle qui me permet de coloriser autrement une case de la colonne en fonction d'un choix réalisé dans une autre cellule.

Exemples :

- Si "AUTRE" renseigné en C, la colonne D devient blanche

- Si "répondeur" renseigné en F, la colonne G devient blanche et on doit renseigner cette colonne

Le problème avec cette méthode quand il y a une validation de données d’enregistrée c’est que toutes les lignes ont ce format

Or il n’est pas exclu que par mégarde une réponse soit renseignée dans une mauvaise case (qu’on ne verrait pas car c’est noirci) mais comme je dois extraire des données ca va les fausser… comme d’hab, je ne sais pas si je suis claire, désolée !! n'hésite pas à me dire

Bonjour,

oui, ça peut être fait comme ça.
C'est une formule, pas une fonction personnalisée qui est faite en vba
Ensuite ça te fait une nouvelle fonction dédiée ajoutée à excel que tu peux utiliser sur la feuille.

J'ai tout de même une réticence. Tu devrais utiliser Nb.Si.Ens() qui permet de tester plusieurs valeurs
Tu as un nombre conséquent de ss-listes et il n'est peut-être pas exclu qu'un jour tu aies des libellés identiques dans plusieurs listes.
Si demain tu as blablabla dans SOCIAL et AIDE SOCIALE, blablabla sera compté sans distinction.
Si tu es sûre à 110% que ça n'arrivera jamais ça suffira, sinon il faut tester les 2 : SOCIAL et blabla.
Ce que fait ma fonction personnalisée.
Je lis le reste plus tard...

Avec qq relectures je pense avoir compris.
Normalement c'est une validation, seulement tu les utilises déjà pour les listes.
Sans se prendre la tête, je te propose de les empêcher de sélectionner une cellule noire.
Si une sélection (même une plage) contient une cellule noire, la sélection passe à la 1ère cellule non noire de la ligne.
Ca devrait les calmer...
Vois si ça correspond à ton besoin :

- Si "répondeur" renseigné en F, la colonne G devient blanche et on doit renseigner cette colonne
Le problème avec cette méthode quand il y a une validation de données d’enregistrée c’est que toutes les lignes ont ce format

Là je décroche...
Pourquoi tu ne testes pas si =$F2<>"Répondeur" alors noir, que le traitement soit homogène ?
Visuellement c'est pareil, mais en vba pas de couleur et couleur blanche c'est différent, c'est piégeux.

Mais ça m'a permis de voir que le noir que tu mets manuellement n'est pas le même que celui mis par MFC, j'avais oublié ça.
J'ai complété

Eric, c'est tout simplement GENIAL ce que tu sais faire en VBA!! suis admirative !!

Par contre, ta solution ne correspond pas à mon besoin, car finalement on ne peut plus rien saisir dans cette case,

Or si elle n'est pas noircie, je dois pouvoir y accéder pour indiquer la réponse ...

je vais tester ta proposition de mise en forme conditionnelle "si =$F2<>"Répondeur" alors noir, que le traitement"

Merci encore, bonne journée

Bonjour,

ah, je n'ai pas testé ça.
Normalement si le noir disparait elle redevient sélectionnable et éditable.
Je suis parti du principe que tes MFC étaient correctes et que le noir mis manuellement était ôté de la même façon.
Vide I6, J6 et K6 redeviennent accessibles.
Je pense que c'est surtout fond noir et MFC blanche qui s'avère là aussi un mauvais choix.
eric

PS : si tu patines, tu dis...

bonjour Eric,

patiner c'est peu dire, mais j 'imagine que j'ai un souci d'ordi pas assez puisant ou autre car j' ai "EXCEL ne répond pas" à chaque fois que je veux faire un truc sur le nouveau fichier que tu as envoyé,

j'ai supprimé les colonnes I, J K et ca fonctionne

en revanche ca ne fonctionne pas pour les premières colonnes C, F, G et H...

mais je pense que je vais en rester là...et rester sur cette version :

j'ai modifié mes MFC en suivant ton conseil (même si j'ai pas réussi à utiliser la fonction <>, j'ai paramétré autrement (sans mettre au préalable les colonnes en NOIR et dire ce que je voulais mettre en BLANC en fonction de la réponse précédente) pour que se colorie en noir les cellules en fonction de la réponse indiquée

tout m' a l'air de fonctionner,

je vais le tester en équipe et voir ce qu'ils en pensent...

Merci encore pour ton travail et tes retours !

bonne fin de journée et bon week-end!

Rechercher des sujets similaires à "liste deroulante multiple variable erreur compilation"