Affichage d'une liste selon plusieurs critères

Résolu/Fermé
Tonie Messages postés 20 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 16 janvier 2024 - 17 juin 2020 à 15:24
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 18 juin 2020 à 17:20
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

DjiDji59430 Messages postés 4046 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 11 mai 2024 647
17 juin 2020 à 15:41
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 jeudi 23 août 2012 Statut Membre Dernière intervention 16 janvier 2024
17 juin 2020 à 15:51
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
18 juin 2020 à 08:23
Bonjour,

un essai en vba:

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

0
Tonie Messages postés 20 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 16 janvier 2024
18 juin 2020 à 09:24
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
Modifié le 18 juin 2020 à 11:29
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 jeudi 23 août 2012 Statut Membre Dernière intervention 16 janvier 2024 > cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024
18 juin 2020 à 12:18
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728 > Tonie Messages postés 20 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 16 janvier 2024
18 juin 2020 à 15:12
Voilà

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

Bonne lecture

@+ Le Pivert
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728 > cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024
18 juin 2020 à 16:00
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 jeudi 23 août 2012 Statut Membre Dernière intervention 16 janvier 2024 > cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024
18 juin 2020 à 16:23
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 4046 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 11 mai 2024 647
18 juin 2020 à 14:51
Bonjour à tous,

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

Crdlmt
0
Tonie Messages postés 20 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 16 janvier 2024
18 juin 2020 à 16:22
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