VBA - Remplissage d'un tableau selon plusieurs critères

khroutchev

XLDnaute Nouveau
Bonjour,
ayant quelques notions en VBA mais n'ayant pas pratiqué depuis un bon moment je pose le problème suivant :

J'aimerais tout simplement à partir d'une table de données (feuil2) repertorier des valeurs dans un nouveau tableau visible par l'utilisateur. Ces valeurs affichées doivent correspondrent aux conditions rentrées par l'utilisateur.
Je sollicite votre aide car je n'arrive pas à effectuer ce travail sans passer par un Uform.
Le but est de rendre ce "reporting" accessible à des utilisateurs sans afficher de UserForm.
L'utilisateur rentre ces conditions et depuis le tableau (feuil2), un nouveau se remplit selon les critères rentrés par l'utilisateur.

Voilà j'espère avoir été claire et simple dans ma demande d'aide :confused:.

Je joins un fichier "exemple" du travail que j'aimerai réaliser.

Merci d'avance :eek:
 

Pièces jointes

  • Exemple1.xls
    33.5 KB · Affichages: 70
  • Exemple1.xls
    33.5 KB · Affichages: 56
  • Exemple1.xls
    33.5 KB · Affichages: 58
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : VBA - Remplissage d'un tableau selon plusieurs critères

Bonjour.
… aux conditions rentrées par l'utilisateur.
Dans le classeur vous mettez Sélection de l'utilisateur. Ce n'est pas la même chose. Voulez vous des liste de validation en colonne C ? Les 2 critères doivent ils être choisis dans l'ordre Secteur puis Région ou plus largement un seul ou les deux dans n'importe quel ordre ?
 

Dranreb

XLDnaute Barbatruc
Re : VBA - Remplissage d'un tableau selon plusieurs critères

C'est sûr qu'un simple filtre automatique sur la Feuill2 remplirait la fonction.
Sinon un dictionnaire arborescent (facile à créer avec des modules spécialisés que je vous fournirai si ça vous intéresse) permettrait d'avoir rapidement la liste de secteurs correspondant à chaque région, puis la liste des numéros de lignes se rapportant à un secteur d'une région.
 

Dranreb

XLDnaute Barbatruc
Re : VBA - Remplissage d'un tableau selon plusieurs critères

J'avais dans OutIdx une surcouche pour les utiliser dans des formules. Je l'ai mis. Mais ça ne vous convaincra pas de sa simplicité d'utilisation. L'instruction importante comme exemple c'est :
VB:
Set Dico1 = DictionnArbo(ActiveSheet.[A2:C5001]) ' Fabrique le dictionnaire pour les colonnes A, B, C pour 5000 lignes en partant de la 2
Derrière, ça s'utilise comme des dictionnaires ordinaires sauf que les Item renvoyés sont soit d'autres Dictionary, soit en dernier lieu des listes de lignes relatives à la plage à partir de laquelle le dictionnaire a été constitué.

P.S. Notez que du coup, ça pourrait se résoudre comme ça, sans aucune autre programmation additionnelle, à part une minuscule Worksheet_SelectionChange dans le module de la feuille, uniquement avec des formules personnalisées et des noms dans le classeur (j'ai re-joins le fichier).
 

Pièces jointes

  • AperçuDicArb.xls
    159.5 KB · Affichages: 74
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : VBA - Remplissage d'un tableau selon plusieurs critères

Bonjour.
Si on consid're une utilisation par VBA :
La fonction MDictionnArbo à laquelle vous passeriez juste votre plage de numéros vous fabriquerait un Dictionary.
Ses clés seraient classées et sans doublons. Les items correspondant seraient les listes des lignes pourtant chaque numéro correspondant à sa clé. C'est un tableau de Long commençant à l'indice 1. Après je ne vois pas trop ce que vous voulez en faire sur plusieurs feuilles.
 

khroutchev

XLDnaute Nouveau
Re : VBA - Remplissage d'un tableau selon plusieurs critères

Le problème c'est que la version 2003 d'excel est limité à 65 000 lignes et donc l'ensemble des données sur lesquelles le tableau se crée se répartit sur plus d'une feuille excel. J'aimerais tout simplement garder le même schéma de code que vous m'avez joint (et vous en remercie) mais avec d'avantâge de données. Après j'aimerais non plus sélectionner 2 critères depuis une liste (en l'occurence region et secteur) mais rentrer un code (en l'occurence le numéro d'adhérent) qui sera référencé en première colonne dans les données. Voilà, je ne sais pas si le code précédent (dictionnaires) est adéquate pour ce genre de programme mais je ne pense pas qu'il s'en éloigne non plus. Enfin bref, je vous remercie d'avance vous m'avez déjà bien éclairé !
 

Dranreb

XLDnaute Barbatruc
Re : VBA - Remplissage d'un tableau selon plusieurs critères

Bonjour.
En tout cas vous pouvez constater que le module MDictionnArbo est construit de façon modulaire. Il devrait être possible, en invoquant séparément les étapes de sa constitution, de fabriquer un dictionnaire arborescent à partir d'un tableau de Variant résultant d'un empilement de données prises de plusieurs feuilles.
Pourquoi tenez vous tant à éviter un Userform ?
 

Discussions similaires