Forum Clubic

Excel : Mise à jour données à l'aide de listes déroulantes

Bonjour à toutes et à tous,
Je vous soumets un problème que je ne sais pas trop par quel bout attraper. Pour illustrer, j’ai fait une version (très) simplifiée dans le fichier joint. Voilà :

  • Dans un onglet B, j’ai une liste prédéfinie de critères avec des données à côté à remplir
  • Dans l’onglet A : J’ai 4 emplacements pour saisir les données qui seront mises à jour dans l’onglet B et 2 listes déroulantes pour sélectionner les critères.

Les problèmes :

  • Mes listes déroulantes reprennent l’intégralité des critères avec les doublons ce que je voudrais éviter (car dans le modèle non simplifié, je vais me retrouver avec 10.000 lignes dans la combo :frowning: )
    J’ai trouvé du code pour éviter les doubles dans les combo mais ça ne fonctionne pas (ou plutôt, j’ai du mal m’y prendre.)
  • Je ne sais pas comment procéder à la mise à jour des données avec le bouton.
    Les fonctions INDEX ou RECHERCHE ne me paraissent pas utilisables.

Pour être plus clair, le fichier simplifié peut être trouvé ici : legac.ovh.org…

Bref, suis un peu paumé, si des âmes charitables veulent bien me donner un petit coup de main, ça serait très sympa.
Merci
XDiver
Edité le 07/01/2008 à 11:29

Tu n’es pas obligé d’utiliser de combo box, tu peux utiliser la propriété validation des cellules C5 et C7, mais ta méthode est tout à fait valable

Tu peux remplir tes combo par programme (fonction AddItem) à l’activation de l’onglet
Pour Criteres1, il suffit de mémoriser la valeur précédente et d’ignorer la courante si égalité
Pour la Criteres2, il suffit de se limiter aux lignes correspondant à la première valeur de Criteres1

Pour ton bouton de mise à jour, il faut que tu t’orientes vers la fonction RechercheV
Mais comme elle ne peut s’appliquer qu’à une seule colonne à la fois,

  • soit tu contatènes Criteres1 et Criteres2 dans une nouvelle colonne, et tu fais la recherche sur celle-ci
  • soit tu fais d’abord une sélection des lignes respectant le premier critère, puis une recherche du deuxième critère sur cette sélection (un peu plus compliqué)

Merci pour ta réponse gcc mais il me semble que la fonction recherchev ferait l’inverse de ce que je cherche à savoir ramener les valeurs de l’onglet B vers la cellule en question alors que c’est l’inverse que je cherche.

En sens inverse, tu fais ta recherche avec recherche (en fait seek(), puisque c’est dans une macro), puis tu affectes les valeurs par offset à partir de la cellule trouvée.