XL 2016 Macro pour Reproduire un tableau suivant critères

luke3300

XLDnaute Impliqué
Bonjour le forum,

J'aimerais parvenir via une macro à copier le tableau de la feuille "WP" de mon fichier dans une nouvelle feuille nommée "New".
La ligne 2 de la feuille "WP" donne des indications et j'aimerais avoir le choix de sélectionner via les indications de la ligne 2, les colonnes que je veux voir apparaître dans ma nouvelle feuille.

Via par exemple une boîte de choix mise dans la feuille WP du fichier test joint.

Par exemple dans le fichier joint, il y a après la colonne C, 149 autres colonnes mais toutes ne m'intéressent pas :) et c'est là que la boîte de choix pourrait me permettre de par exemple n'en sélectionner qu'une partie. A partir de là, je retrouverais dans la feuille "New" créée les colonnes désirées. Je vous mets un exemple de résultat espéré.
L'idéal serait aussi que la macro détecte elle-même le fichier dans lequel elle irait chercher les données en sachant que le nom de celui-ci est toujours intitulé comme ceci: competenceMatrix_1.xlsx (seul le numéro est susceptible de changer).
Ah oui, le contenu de la feuille "WP" est dynamique, c'est à dire que d'une semaine à l'autre, le nombre de lignes et de colonnes peut changer soit à la baisse soit à la hausse.

Je pense n'avoir rien oublié ... et d'ores et déjà un tout grand merci pour votre aide.;)
 

Pièces jointes

  • Matrix_Test - Copie.xlsx
    335.4 KB · Affichages: 26
Dernière édition:

luke3300

XLDnaute Impliqué
Re Job75 et le forum,

Une fois encore sensationnel! :D
Est-il possible cependant que:
1. par défaut, toutes les données soient sélectionnées dans la ListBox et que je n'aie plus qu'à décocher celles dont je n'ai pas besoin?
2. que le résultat de la sélection s'applique dans la feuille "New" tout comme le filtre des colonnes? Ainsi il y a un filtre des colonnes et celui de la colonne A.

Je suis époustouflé des résultats de votre travail :)
Merci beaucoup et bonne fin d'après-midi.
 

job75

XLDnaute Barbatruc
Re,

Il suffit d'une boucle pour sélectionner tous les éléments de la ListBox, dans la macro Filtrer_colonneA :
Code:
For i = 0 To UserForm3.ListBox1.ListCount - 1: UserForm3.ListBox1.Selected(i) = True: Next 'sélectionne tout
Edit : j'ai ajouté un test dans le code de UserForm2 pour le cas où l'on ne décoche rien.

Fichier (3).

A+
 

Pièces jointes

  • Mx2019 - Test(3).xlsm
    968.1 KB · Affichages: 16
Dernière édition:

ChTi160

XLDnaute Barbatruc
Bonsoir luke3300
Bonsoir le Fil (Job75) ,le Forum
une adaptation du Fichier de Job75(sans prétention)
Pour ce qui est du transfert des Noms et Numéros (Colonnes A et B) dans la feuille "New"
Bonne fin de Soirée
jean marie
 

Pièces jointes

  • Mx2019 - Test(2)-Chti160.xlsm
    976.3 KB · Affichages: 17

luke3300

XLDnaute Impliqué
Bonjour Job75, ChTi160, le forum, :)

Je viens de tester vos solutions ... c'est tip-top pour les sélections (Job75).
Pour ce qui est de reproduire le choix des données en colonne A de la feuille "New", ça marche aussi mais c'est pas tout à fait le résultat escompté (ChTi160).
Et c'est de ma faute ... en fait j'aurais dû demander s'il était possible qu'un filtre de données s'applique sur la colonne A de la feuille "New" pour reproduire les choix de données fait dans la ListBox? De cette manière, les données en correspondance (horizontale) du tableau restent complètes.
Par exemple, dans la ListBox, si je sélectionne 10 données seulement, je ne devrais avoir que ces 10 lignes dans la colonne A de la feuille "New" avec bien entendu toutes les données de ligne correspondantes. Est-ce possible?
Quoi qu'il en soit, déjà 10000 mercis pour votre temps et votre aide ;)
Très bon samedi à toutes et tous et déjà un excellent dimanche.
 

job75

XLDnaute Barbatruc
Bonjour luke3300, Jean-Marie,
il y a donc un lien entre la sélection des Noms dans la Colonne "A" et les colonnes sélectionnées ?
Il n'y en a pas a priori mais il est facile de regrouper les filtrages par lignes et par colonnes dans un seul UserForm.

Fichier (4), voyez la macro Filtrer et le code de UserForm2.

A+
 

Pièces jointes

  • Mx2019 - Test(4).xlsm
    966.4 KB · Affichages: 12

luke3300

XLDnaute Impliqué
Bonjour Job75, Jean-Marie, le forum :)

Je teste tout ça en journée ou demain au plus tard et vous dis quoi ...

D'ores et déjà, un énorme merci pour votre aide et votre amabilité.

C'est vraiment sympa! ;)

Excellent dimanche à vous 2 en particulier et au forum :D
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour luke3300, le forum,

2 choses ne vont pas du tout dans la mise à jour de la feuille "New" de mes fichiers (3) et (4) :

- l'ajout des 31 colonnes "J0" correspondant à "JS" qui prend beaucoup trop de temps

- les formules en ligne 4 (il ne faut pas de $) et en colonne C.

J'y ai porté remède dans ces fichiers (3 bis) et (4 bis).

A+
 

Pièces jointes

  • Mx2019 - Test(3 bis).xlsm
    967.5 KB · Affichages: 5
  • Mx2019 - Test(4 bis).xlsm
    966.7 KB · Affichages: 6

luke3300

XLDnaute Impliqué
Bonjour Job75, Jean Marie, le forum,

Super! Tout fonctionne nickel et c'est vrai que cela met moins de temps maintenant pour l'ajout des colonnes.

J'ai encore 3 questions si vous le permettez ...

1. Est-il possible que pour les lignes, la dimension (largeur) de la ListBox s'ajuste suivant la longueur des données à sélectionner? Parfois les données vont jusqu'à 25 caractères voir plus encore donc ... pour pouvoir les sélectionner correctement, il serait bien qu'elles apparaissent en entier dans la ListBox.
2. Est-il possible que l'ajout de colonne concernant les "JS" se fasse aussi pour les "CS" qui seraient remplacés eux par des "C0"?
3. Pour ces mêmes colonnes qui sont ajoutées suite au caractère "S" (JS, CS) dans l'intitulé de la colonne d'origine, serait-il possible que lorsque cette colonne d'origine comprend des "1" ou des "0" dans les données au-dessous, elles soient copiées en "J0" ou "C0" sans ces "0" ou "1" ?

Formidable travail en tout cas et merci beaucoup pour votre aide précieuse :)
 

job75

XLDnaute Barbatruc
Bonjour luke3300, le forum,

Réponses aux 3 questions.

1. L'ajustement automatique de la largeur des ListBoxes n'est pas possible simplement, augmentez manuellement cette dimension.

2. Je viens de modifier les codes des fichiers (3 bis) et (4 bis) du post #25 en conséquence.

3. Pas compris la question.

A+
 

job75

XLDnaute Barbatruc
Re,

Bon OK voyez ces fichiers (3 ter) et (4 ter) mais l'effacement des "1" et des "0" semble bien curieux !

Finalement vous voulez travailler sur quel fichier, (3 ter) ou (4 ter) ?

A+
 

Pièces jointes

  • Mx2019 - Test(3 ter).xlsm
    963 KB · Affichages: 8
  • Mx2019 - Test(4 ter).xlsm
    967.3 KB · Affichages: 13

luke3300

XLDnaute Impliqué
Bonjour Job75, Jean Marie, le forum,

Pour ce qui est de la suppression des "1" et des "0" c'est parce que ces données ne sont utiles que lorsque l'intitulé de la colonne comporte un "S". Lorsqu'il n'y en a pas, seuls les "2" et les "3" me sont utiles ...
Le fichier 4 ter est le plus pratique donc on continue avec celui-là si ça vous convient? :)

Je remarque cependant que dans celui-là, le code ne copie plus les données filtrées de la colonne A de la feuille "New" pour les coller à partir de la cellule A1 de la feuille "Données" ... chez vous aussi?

Et encore une fois ... merci énormément. :D

La dernière manipulation que je dois faire maintenant est copier les résultats de l'onglet "New" vers la feuille "Dist" de cette manière:
  • Les données de la cellule D2 à la dernière qui en a sur la ligne 2 vers la cellule F9 à ???9
  • Les données de la cellule D5 à la dernière ligne et dernière colonne qui ont des données vers la cellule F26
Sait-on intégrer cela dans le code?

Excellent mardi à toutes et tous ;)
 

Discussions similaires

Statistiques des forums

Discussions
312 169
Messages
2 085 909
Membres
103 032
dernier inscrit
etima