XL 2013 Macro VBA appliquer une formule somme.si.ens à un tableau et ensuite une recherche mutli critere

chac10

XLDnaute Junior
Supporter XLD
Bonjour à toute la communauté,

J'espère que tout le monde va bien et que vous progresser toujours et encore !!
Je réitère mes remerciements pour l'aide déjà apporté par le passé :)
Aujourd'hui, Je souhaite exécuter plusieurs taches à l'aide d'une macro à partir d'un fichier qui ne change pas ( format dans la pièce jointe est celui que j'utilise),
Voici la liste des tâches que je souhaite mettre en place :
1ère Macro :

1- créer une nouvelle feuille
1- sélectionner deux colonnes de ma base de donnée ( ap de la feuille existante)
3- coller cette sélection dans la nouvelle feuille
4- supprimer les doublons
5- calculer une somme.si.ens à partir de cette sélection réduite pour chaque ligne unique.

La difficulté pour moi a été de déclencher le calcul de la somme.si.ens selon la taille du tableau ( qui peut varier).
Je n'y suis pas arrivé. J'appellerai ce tableau "Somme.si.ens"

2 macro ;
Idée :
elle consiste en fait à reprendre les résultats obtenus sur le tableau crée avec la 1ère macro " somme.si.ens"
Mais de pouvoir la remettre selon l'ordre souhaitée, car les filtres ne sont pas satisfaisants.

Donc l'idée c'est que:

1- Je colle la liste dans l'ordre souhaitée dans une zone défini
2- Une seconde macro me permet de rechercher la valeur associée à partir du premier tableau " somme.si.ens"
3- De la même manière, il faudrait que la recherche multicritère se génére sur toutes les lignes de la liste collée.


Dans mon fichier joint, j'ai utilisé une recherche multiple avec index et equiv ( dans une macro est ce possible ?)
Voilà ca me parait possible mais pas forcément évident.
Si vous pouviez m'aider :) !!!!

j'ai essayé d'être plus clair dans le fichier joint.
Ne vous fâchez pas si je me suis mal fait comprendre svp !!

Chac10
 

Pièces jointes

  • macro test.xlsx
    12.9 KB · Affichages: 6

Dranreb

XLDnaute Barbatruc
IndexerParFusions est une procédure Sub du module MGigogne invoquée par la fonction Gigogne. Elle établit une liste de numéros d'index de lignes classés dans l'ordre approprié pour que les valeurs à ces lignes puissent être parcourus dans l'ordre de classement des colonnes souhaitées.
Elle procède par interclassements successifs (ou fusions) de petits paquets établis lors d'une phase préalable.
Je n'ai rien compris au rôle souhaité d'une seconde macro.
 
Dernière édition:

chac10

XLDnaute Junior
Supporter XLD
D accord merci,

Pour la seconde, je voudrais coller en colonne f et g les listes de deux éléments lot et fichier ( les mêmes) dans l'ordre voulu. A partir de cette liste faire la recherche du montant correspondant dans le tableau obtenu après la première macro. Vous comprennez ? En fait le premier tableau obtenu après la première macro n est pas dans le bon ordre. Et le filtre ne me permet pas d obtenir ce que je veux.
Donc mon idée est de coller la liste dans l ordre voulu. Et que la 2 ème macro face la recherche du montant automatiquement. La vous avez un tout petit échantillon, mais en réalité, j ai plusieurs fichiers à travailler. Ça me faciliterait la tâche.
 

Dranreb

XLDnaute Barbatruc
Là je vous conseillerais d'utiliser un UserForm pour rechercher ça, avec des ComboBox prises en charge par mon outil disponible en téléchargement.
Le tableau intermédiaire serait inutile pour y afficher la somme des montants propre à une combinaison Lot/Fichier.
Une 2ème ComboBox pourrait prendre les "Oui" et "Non" de la colonne I.
Mais ce serait mieux si les données étaient sous forme de tableau Excel.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Sinon pour obtenir directement une liste classée par noms de fichiers et ensuite seulement, pour chacun, par lots, c'est très facile aussi avec la fonction Gigogne. C'est pour ça que je vous demandais au poste #3 quel était votre ordre de classement voulu, vous en parlez tout le temps mais vous ne dites jamais lequel est-ce …
 

Statistiques des forums

Discussions
292 782
Messages
1 926 174
Membres
182 939
dernier inscrit
Mbc31360