Affichage d'une liste selon plusieurs critères

Résolu
Tonie Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   -
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
A voir également:

6 réponses

DjiDji59430 Messages postés 4253 Date d'inscription   Statut Membre Dernière intervention   700
 
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
0
Tonie Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

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

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

D'avance merci.
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,

un essai en vba:

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

0
Tonie Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
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,
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
réponse 1:

oui comme ceci:

Call boucledepartement("CENTRE", "3") 'nom de la région,numero colonne concernée C Worksheets("LIST_DEP")


le nom de la feuille région en respectant la casse et le numéro de colonne ici 3 par exemple

réponse 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, 4) = FL1.Cells(ligne, colonne + 2) 'adresse
FL2.Cells(DerniereCellule_Ligne, 2) = FL3.Cells(NoLig, NoCol) 'numero du département
et ici ajouter les colonne suivant à incrementer?


là j'ai ajouté une colonne adresse en changeant la colonne en +2 et dans la feuille réceptrice en 4

Quand on a compris le principe ce n'est pas très compliqué. C'est de la déduction!

dans l'exemple les listes commencent sur la 5ème ligne. Si on veut les faire démarrer sur la 2 ème ligne il suffit de changer 5 en 2 dans le code

For NoLig = 2
' il y a 2 changements à effectuer

Bon courage, n’hésitez pas en cas de difficulté

@+ Le Pivert
0
Tonie Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   > cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention  
 
Encore merci pour votre aide,

Je pense avoir saisis pour la déclaration des régions...
Par contre pour la réponse 2 c'est le flou, comment savoir quel est la position des colonnes, est ce que c'est à partir de l'onglet d'extraction ou est ce sur les colonnes de destination?

Vous trouverez ci-joint un exemple plus complet du document que je cherche a automatiser.
https://www.cjoint.com/c/JFskqpj0gt8

D'avance merci de votre aide.
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729 > Tonie Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
Voilà

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

Bonne lecture

@+ Le Pivert
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729 > cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention  
 
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
0
Tonie Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   > cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention  
 
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DjiDji59430 Messages postés 4253 Date d'inscription   Statut Membre Dernière intervention   700
 
Bonjour à tous,

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

Crdlmt
0
Tonie Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
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
0