VBA - Liste déroulante dans UserForm variable

Bonsoir,

Mon document fait correspondre des codes avec les noms des espèces végétales qui correspondent (4 lettre : Genre ; 4 lettres : espèce).

Il arrive que le même code donne un résultat potentiellement différent ; exemple :

Rese lute => Reseda lutea et Reseda luteola.

Les codes ne peuvent pas changer, je dois conserver le format 4 + 4

Lorsqu'un code utilisé désigne plusieurs résultats, il apparaît la mention "Codes jumeaux" dans la colonne où apparaît habituellement la correspondance.

Compte tenu de la taille des bases de données, j'ai opté pour faire apparaître un User Form dans lequel sont ajoutés autant de listes déroulante (ComboBox) qu'il n'y a de mention "Code jumeaux" dans la plage de données.

S'il s'agissait de faire apparaître la liste déroulante dans le document, je vois comment m'y prendre (c'est d'ailleurs fait dans le document transmis en exemple pour illustrer).

Mais je ne sais pas comment faire pour :

  • Faire en sorte que chaque liste déroulante fasse référence à un code différent (les codes qui donnent pour résultat "Codes jumeaux")
  • Faire apparaître une liste déroulante qui propose les correspondances du code en question dans chaque combobox

Peut-être faudra-il avant tout, faire en sorte que les correspondances ne soit plus données par l'intermédiaire d'une formule :

Pour la correspondance
=SI(NB.SI('Database complete'!A$2:F$22126;C2)>1;"Codes jumeaux";SI(SIERREUR(RECHERCHEV(C2;'Database complete'!A$2:F$22126;6;FAUX);SI(SIERREUR(RECHERCHEV(C2;'Database synonymes complete'!$B:$T;19;FAUX);"Code erroné")="Code erroné";"Code erroné";RECHERCHEV(C2;'Database synonymes complete'!$B:$T;19;FAUX)))="Code erroné";"Code erroné";RECHERCHEV(C2;'Database synonymes complete'!$B:$T;19;FAUX)))

Pour la liste déroulante
=DECALER('Database complete'!$F$1; EQUIV(Correspondances!$C2;'Database complete'!$A:$A;0)-1; ; EQUIV(Correspondances!$C2;'Database complete'!$A:$A;0) - EQUIV(Correspondances!$C2;'Database complete'!$A:$A;0) +1)

mais également par un code VBA.

J'ai mis un document Excel en Pj avec une petite explication en plus sur la feuille Excel.

Je vous remercie de votre attention !

Bonne journée !

Bonjour,

Perso, je pense que tu te fourvoies à vouloir utiliser des formules

J'espère que ton fichier n'est pas trop gros, car tu cours au devant de gros problèmes

Oui, ce sont les dernières formules qu'il me reste à changer.

Ça et quelques recherches (RECHERCHEV).

Et, en effet, avec 3000 données, le document met environ 3 mins. Mais la quantité de données pourrait être multipliée par 10.

(La première année, potentiellement davantage si on conserve tout d'une année sur l'autre).

C'est pourquoi j'aimerais passer par du VBA, c'est pas non plus très grave si le document passe 5/10 mins à chercher étant donné le temps qu'il fait gagner au final.

Bonsoir !

Voilà, il ne reste plus aucune formule, tout est traité directement en VBA et le traitement des données est clairement plus rapide !

Par ailleurs, mon problème persiste sans que je n'ai de solution pour le moment.

J'ai créé un nouveau topic pour décrire clairement ce que je cherche à faire.

Lien vers le nouveau topic https://forum.excel-pratique.com/viewtopic.php?f=2&t=125618

Bonne fin de soirée !

Rechercher des sujets similaires à "vba liste deroulante userform variable"