Affichage d'une liste selon plusieurs critères [Résolu]

Signaler
Messages postés
15
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
18 juin 2020
-
Messages postés
6823
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
1 juillet 2020
-
Bonjour,

Sur le premier onglet de mon fichier excel, j'ai une liste de nom en ligne avec des informations correspondante sur plusieurs colonne type (mail, departement, etc)
Sur les autres onglets de mon fichiers sont référencés les régions. (NORD / BRETAGNE / CENTRE... )

Je souhaiterais pouvoir extraire de ma liste du premier onglet les noms, et les afficher sous forme de liste dans chaque Region correspondante en fonction d'une recherche département.

D'avance merci de votre aide.





Configuration: Windows / Chrome 83.0.4103.97

6 réponses

Messages postés
2681
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
2 juillet 2020
354
Bonjour à tous,

Autrement dit, tu veux dans chaque onglet departement la liste des clients estraite de la liste generale du premier onglet ?
si c'est ça,

Un fichier (test ou non), complété par des explications exhaustives et des exemples remplis à la main, mis sur https://www.cjoint.com/ permettrait aux intervenants de répondre plus précisément à ta question.

Crdmt
Messages postés
15
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
18 juin 2020

Bonjour,

Suite à votre demande, veuillez trouver le fichier type en exemple

https://www.cjoint.com/c/JFrnXylhTH8

D'avance merci.
Messages postés
6823
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
1 juillet 2020
528
Bonjour,

un essai en vba:

https://www.cjoint.com/c/JFsgwwZ14LQ

Messages postés
15
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
18 juin 2020

Bonjour,

Merci !
Donc si je comprends bien (excusé moi je ne suis pas très à l'aise avec les macros ) .

1 -
Call boucledepartement("BRETAGNE", "1") 'nom de la région,numero colonne concernée A Worksheets("LIST_DEP")
Call boucledepartement("NORD", "2") 'nom de la région,numero colonne concernée B Worksheets("LIST_DEP")
Ici je n'ai plus qu'à déclarer mes autres régions ?

2 -
DerniereCellule_Ligne = FL2.Range("A" & Rows.Count).End(xlUp).Row + 1
FL2.Cells(DerniereCellule_Ligne, 1) = FL1.Cells(ligne, colonne - 1) 'nom
FL2.Cells(DerniereCellule_Ligne, 3) = FL1.Cells(ligne, colonne + 1) 'mail
FL2.Cells(DerniereCellule_Ligne, 2) = FL3.Cells(NoLig, NoCol) 'numero du département
et ici ajouter les colonne suivant à incrementer?

Dans tout les cas je vais essayer.

Encore merci de votre retour et pour cette solution proposé ! Je vous tiens informé !

Cdt,
Messages postés
6823
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
1 juillet 2020
528 >
Messages postés
15
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
18 juin 2020

Voilà

https://www.cjoint.com/c/JFsnljpIGUQ

Bonne lecture

@+ Le Pivert
Messages postés
6823
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
1 juillet 2020
528 >
Messages postés
6823
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
1 juillet 2020

J'ai oublié d'effacer les anciennes données, sinon cela va s'accumuler à chaque lancement de la macro .

Mettre ceci:

Option Explicit
Sub test()
'a compléter
Call boucledepartement("AURA", "1") 'nom de la région,numero colonne concernée A  Worksheets("LIST_DEP")
Call boucledepartement("EST", "2") 'nom de la région,numero colonne concernée B  Worksheets("LIST_DEP")
Call boucledepartement("IDF", "3") 'nom de la région,numero colonne concernée C  Worksheets("LIST_DEP")
Call reset("NBC")'effacement des anciennes données
Call boucledepartement("NBC", "4") 'nom de la région,numero colonne concernée D  Worksheets("LIST_DEP")
Call boucledepartement("NORD", "5") 'nom de la région,numero colonne concernée E  Worksheets("LIST_DEP")
Call reset("PACA")'effacement des anciennes données
Call boucledepartement("PACA", "6") 'nom de la région,numero colonne concernée F  Worksheets("LIST_DEP")
Call boucledepartement("SO", "7") 'nom de la région,numero colonne concernée G  Worksheets("LIST_DEP")
Call boucledepartement("AUTRE", "8") 'nom de la région,numero colonne concernée H  Worksheets("LIST_DEP")
End Sub
'effacement des anciennes données
Sub reset(ByVal feuille As String) 'nettoie la feuille
Dim DerniereCellule_Ligne As Long
DerniereCellule_Ligne = Worksheets(feuille).Range("A" & Rows.Count).End(xlUp).Row
If Worksheets(feuille).Range("A6") = "" Then Exit Sub
Worksheets(feuille).Range("A6:H" & DerniereCellule_Ligne).ClearContents
End Sub
Messages postés
15
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
18 juin 2020
>
Messages postés
6823
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
1 juillet 2020

De nouveau moi, je n'ai vu le complément une fois finis:
J'ai tenter d'integrer le "reset", par contre maintenant quand je fais Ctrl + W le document ce ferme . :-(

Sub test()
'a compléter
Call reset("AURA") 'effacement des anciennes données
Call boucledepartement("AURA", "1") 'nom de la région,numero colonne concernée A Worksheets("LIST_DEP")
Call reset("EST") 'effacement des anciennes données
Call boucledepartement("EST", "2") 'nom de la région,numero colonne concernée B Worksheets("LIST_DEP")
Call reset("IDF") 'effacement des anciennes données
Call boucledepartement("IDF", "3") 'nom de la région,numero colonne concernée C Worksheets("LIST_DEP")
Call reset("NBC") 'effacement des anciennes données
Call boucledepartement("NBC", "4") 'nom de la région,numero colonne concernée D Worksheets("LIST_DEP")
Call reset("NORD") 'effacement des anciennes données
Call boucledepartement("NORD", "5") 'nom de la région,numero colonne concernée E Worksheets("LIST_DEP")
Call reset("PACA") 'effacement des anciennes données
Call boucledepartement("PACA", "6") 'nom de la région,numero colonne concernée F Worksheets("LIST_DEP")
Call reset("SO") 'effacement des anciennes données
Call boucledepartement("SO", "7") 'nom de la région,numero colonne concernée G Worksheets("LIST_DEP")
Call reset("AUTRE") 'effacement des anciennes données
Call boucledepartement("AUTRE", "8") 'nom de la région,numero colonne concernée H Worksheets("LIST_DEP")
End Sub
'effacement des anciennes données
Sub reset(ByVal feuille As String) 'nettoie la feuille
Dim DerniereCellule_Ligne As Long
DerniereCellule_Ligne = Worksheets(feuille).Range("A" & Rows.Count).End(xlUp).Row
If Worksheets(feuille).Range("A6") = "" Then Exit Sub
Worksheets(feuille).Range("A6:H" & DerniereCellule_Ligne).ClearContents
End Sub
Messages postés
6823
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
1 juillet 2020
528 >
Messages postés
15
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
18 juin 2020

Pour créer un raccourci clavier:

Sélection Developpeur dans le Ruban, Macro en haut à gauche, Option, Sélection de la macro et choisir une lettre

voir capture d'écran:



@+ Le Pivert
Messages postés
15
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
18 juin 2020
>
Messages postés
6823
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
1 juillet 2020

Super!!!
Un grand merci pour votre aide!

Et a bien observer le vba, je pense avoir compris l'articulation pour les prochaine fois!!

Bonne fin de journée.
Messages postés
2681
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
2 juillet 2020
354
Bonjour à tous,

Une variante a formule
https://www.cjoint.com/c/JFsmY41R3ef

Crdlmt
Messages postés
15
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
18 juin 2020

Merci, pour votre proposition. J'étais au début partie aussi avec des formules mais ça rendais le tableau bcp plus lourds. Et surtout comme c'est un document partagé, je souhaitais éviter les fausse manipulations.

Par contre je garde vaut formule sous le coude!

Encore merci