Affichage d'une liste selon plusieurs critères

Résolu
Tonie Messages postés 21 Statut Membre -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
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

  1. DjiDji59430 Messages postés 4280 Date d'inscription   Statut Membre Dernière intervention   718
     
    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
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    un essai en vba:

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

    0
  3. Tonie Messages postés 21 Statut Membre
     
    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
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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
    2. Tonie Messages postés 21 Statut Membre > cs_Le Pivert Messages postés 8437 Statut Contributeur
       
      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
    3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730 > Tonie Messages postés 21 Statut Membre
       
      Voilà

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

      Bonne lecture

      @+ Le Pivert
      0
    4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730 > cs_Le Pivert Messages postés 8437 Statut Contributeur
       
      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
    5. Tonie Messages postés 21 Statut Membre > cs_Le Pivert Messages postés 8437 Statut Contributeur
       
      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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Tonie Messages postés 21 Statut Membre
     
    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