XL 2013 [Résolu] Tri VBA en fonction d'une liste déroulante !

casualexcel

XLDnaute Nouveau
Bonjour à tous !

Je vais essayer d'être clair et concis, j'ai vu qu'il fallait également joindre un fichier pour aider et j'en ai préparé un:

Mon classeur excel possède deux feuilles. Dans la deuxième feuille [Sheet 2], je colle des données depuis un export excel (export réalisé depuis une base de données en ligne au bureau).

Dans la première feuille [Sheet 1], j'ai un tableau dans lequel j'essaie de synthétiser les données de mon export [Sheet 2].
La première feuille [Sheet 1] comporte donc 3 boutons tous liés à une macro différente:
- bouton extract (filtre la colonne (B) de la deuxième feuille [Sheet 2] et exporte les données qui nous intéressent dans le tableau de la première feuille [Sheet 1] )
- bouton clear (efface le contenu du tableau)
- bouton clear filtre (efface les filtres appliqués sur la deuxième feuille [Sheet 2], pratique si on veut garder les données du tableau en [Sheet 1] mais voir toutes celles de l'export)

Cependant, mes données comportent une colonne Date de création au format jj/mm/aaaa.
Ce que j'aimerais, c'est qu'à l'aide d'une liste déroulante (déjà créée sur la [Sheet 1] en B6) je puisse filtrer les dates des données que j'importe dans le tableau (en fonction du mois).

Par exemple, si je réalise l'extract en juillet mais que je ne m'intéresse qu'aux données du début d'année à fin juin, j'aimerais pouvoir sélectionner "6" ou "Juin" dans la liste déroulante de la [Sheet 1] en B6 et qu'un filtre s'opère sur la colonne Date de création (ou dans la [Sheet 2] avant l'extract vers la [Sheet 1], ou sur la [Sheet 1] directement peu importe) que je ne récupère que les données allant jusqu'à fin juin. (ou que j'ignore les données à partir du 01er Juillet).

Ci joint le fichier test, vous pouvez évidemment manipuler ce que vous voulez y compris les macros déjà présentes.
Merci infiniment pour votre lecture !! Je serai ravi de répondre aux questions sur mon fichier ou sur ma demande s'ils y'en a !
 

Pièces jointes

  • ListeDéroulanteVBA.xlsm
    26.5 KB · Affichages: 11
Solution
hello
voir en PJ

j'ai mis des commentaires dans les différentes macros (dont les tiennes que j'ai modifiées)

pour savoir quel code utiliser, je passe souvent par l'enregistreur de macro
Macro ON - je fais le filtre en passant par Données - filtrer..... Macro OFF
je regarde le code obtenu (exemple du module 3) et j'adapte à mon besoin

casualexcel

XLDnaute Nouveau
Hello

en pj une proposition
bonjour @vgendron
Merci beaucoup pour le retour.
Je voulais vous demander si vous pouviez expliquer très brièvement ce que vous avez fait/comment vous vous y êtes pris please ?
Mon but est d'afficher les valeurs du début d'année jusqu'au mois selectionné.
ex: si je choisis 6 dans la liste déroulante, j'aimerais que le tri s'opère de manière à ce que le tableau affiche les données de janvier à juin en même temps.
Si ce n'est pas possible je devrais pouvoir m'en sortir avec votre proposition, merci beaucoup !
 

vgendron

XLDnaute Barbatruc
hello
voir en PJ

j'ai mis des commentaires dans les différentes macros (dont les tiennes que j'ai modifiées)

pour savoir quel code utiliser, je passe souvent par l'enregistreur de macro
Macro ON - je fais le filtre en passant par Données - filtrer..... Macro OFF
je regarde le code obtenu (exemple du module 3) et j'adapte à mon besoin
 

Pièces jointes

  • ListeDéroulanteVBA.xlsm
    33.1 KB · Affichages: 11

casualexcel

XLDnaute Nouveau
hello
voir en PJ

j'ai mis des commentaires dans les différentes macros (dont les tiennes que j'ai modifiées)

pour savoir quel code utiliser, je passe souvent par l'enregistreur de macro
Macro ON - je fais le filtre en passant par Données - filtrer..... Macro OFF
je regarde le code obtenu (exemple du module 3) et j'adapte à mon besoin
Merci infiniment @vgendron !

Le fichier et les macros fonctionnent parfaitement, c'est exactement ce que je voulais, les explications commentaires en VBA sont très claires et merci d'avoir également laissé la première macro disponible en commentaire dans mes macros !!

Je suis encore en train de regarder ce que tu as fait sur les autres macros mais c'est très propre et très complet niveau commentaire, encore merci ça m'est et ça me sera d'une grande aide !!
 

casualexcel

XLDnaute Nouveau
Bonjour @vgendron

J'avance encore sur mon excel et j'essaye d'appliquer votre macro FiltreMois à plusieurs colonnes simultanément.
Puis-je vous joindre le fichier pour que vous y jetiez un coup d'oeil please ?
J'ai rajouté du contenu donc le fichier est un peu plus lourd mais je n'ai pas beaucoup changé les macro, j'ai essayé d'ajouter des Set zone1 (colonne H) -zone2 (colonne R) -zone3 (colonne AQ) pour définir d'autres Range dans la macro FiltreMois mais ça ne fonctionne pas..
Sinon c'est surement faisable en séparant en trois macro identiques à la macro FiltreMois que vous avez réalisé et en les faisant marcher une par une; je me pencherai là dessus si c'est plus simple !
 

Pièces jointes

  • monthlyfinal.xlsm
    753 KB · Affichages: 5

vgendron

XLDnaute Barbatruc
bonjour
oui, il vaut mieux recopier les quelques lignes et les adapter pour les différentes colonnes

j'ai regardé ce que tu as fait:
un commentaire
plutot que faire sheets(2), il faut mieux utiliser sheets("Nomdelafeuille")

1) on comprend mieux sur quelle feuille on travaille
2) si tu déplaces la feuille (changement d'ordre des différentes feuilles) le sheets(2) ne travaillera plus sur la meme feuille...
 

casualexcel

XLDnaute Nouveau
bonjour
oui, il vaut mieux recopier les quelques lignes et les adapter pour les différentes colonnes

j'ai regardé ce que tu as fait:
un commentaire
plutot que faire sheets(2), il faut mieux utiliser sheets("Nomdelafeuille")

1) on comprend mieux sur quelle feuille on travaille
2) si tu déplaces la feuille (changement d'ordre des différentes feuilles) le sheets(2) ne travaillera plus sur la meme feuille...
c'est ce que je me suis dit aussi et je suis sur le coup, merci !!
Et oui, surtout qu'il arrive que j'inverse des feuilles par hasard et que ça change tout, merci encore
 

Discussions similaires

Réponses
10
Affichages
237

Membres actuellement en ligne

Statistiques des forums

Discussions
302 236
Messages
2 001 686
Membres
215 256
dernier inscrit
Adso