Transfert de donnés dans une autre feuille avec des conditions

Bonjour à tous

13exemple.xlsx (11.09 Ko)

Je suis a la recherche de solutions pour les problèmes suivants :

+ Le premier

Je souhaiterai copie des données d'une feuille1 (nom de la feuille : liste des joueurs) : Dans cette feuille il y aurait imaginons le nom du joueurs, son numéro et son club. Dans cette feuille il y aurait un nombre important de joueurs et de clubs.

Je souhaiterai trier les joueurs par club en créant automatiquement (je ne sais pas si cela est possible) une feuille par club qui portrait le nom du club. Comme si on appliquait un filtrer dans chacune des feuilles de club.

Par la suite je souhaiterai y copier la liste de joueurs avec leurs numéro faisant partie du club évidement.

L'objectif final serait de rentrer un nom de joueurs dans la feuille1 (liste des joueurs) et retrouvé ce joueurs dans son club

Je sais pas si c'est très claire. Je suis disponible pour toute question

Merci par Avance

Quentino

Bonjour Quentino, le forum,

Une proposition avec une macro que j'avais en stock et adaptée à ton cas...

J'ai crée une feuille Villes avec la liste des villes, elle me sert à créer les onglets et filtrer les données.

Les données des 2 feuilles sont sous formes de tableaux structurés pour les rendre dynamiques.

Merci à l'auteur de cette macro ,

Cordialement,

Incroyable, Merci beaucoup c'est exactement ce que je recherchais.

Est ce qu'il serait possible que tu commentes la macro pour que je puisse adapter l'adapter dans d'autre exemple.Mes intérrogations ce porte principalement sur la selection des données.

Je suis vraiment surpris (en bien, bien sur ^^) par ce forum et la comu derriere. Je ne pensais pas qu'il avait une telle communauté pour Exel.

Bon week-end à tous

Quentino

Bonjour Quentino, le forum,

Merci pour ton retour,

Je ne suis pas très doué pour les explications, mais voici:

Option Explicit

Sub Dispatch()
'####################################################################
'on déclare les variables
'####################################################################
 Dim wb As Workbook '.....................................................classeur
 Dim ws As Worksheet, wsData As Worksheet, wsTemplate As Worksheet '......feuilles
 Dim lo As ListObject, lo2 As ListObject '................................tableaux structurés
 Dim Cell As Range '......................................................cellule
 Dim SheetName As String, critère As String '.............................nom de l'onglet et critère du filtre
'####################################################################
    With Application
        .DisplayAlerts = False '..........................................désactive le message d confirmation des suppressions des onglets
        .ScreenUpdating = False '.........................................désactive le rafraichissement de l'écran (évite le scintillement)
    End With

    Set wb = ActiveWorkbook '.............................................définit le classeur wb
    Set wsData = wb.Worksheets("Liste des joueurs") '.....................définit la feuille wsData
    Set wsTemplate = wb.Worksheets("Villes") '............................définit la feuille wsTemplate

    For Each ws In wb.Worksheets '........................................boucle sur toutes les feuilles du classeur
        Select Case ws.Name '.............................................en fonction du nom de l'onglet
            Case "Liste des joueurs", "Villes": '.........................on conserve Liste des joueurs et Villes
            Case Else: ws.Delete '........................................si nom <> Liste des joueurs où Villes, on supprime
        End Select
    Next ws '.............................................................fin de la boucle

    Application.DisplayAlerts = True '....................................on réactive les messages d'alerte

    Set lo = wsTemplate.ListObjects("Tableau2") '.........................définit le tableau structuré de la feuille Villes
    Set lo2 = wsData.ListObjects("Tableau1") '............................définit le tableau structuré de la feuille Liste des joueurs

    If Not lo.DataBodyRange Is Nothing Then '.............................si lo est rempli alors
        For Each Cell In lo.ListColumns(1).DataBodyRange '................on boucle sur toutes les cellules du tableau (liste des villes)
          SheetName = Cell.Value '........................................on définit le nom de l'onglet en fonction de la cellule
          Sheets.Add after:=wb.Worksheets(Worksheets.Count) '.............on ajoute l'onglet
            With ActiveSheet '............................................l'onglet ajouté devient la feuille active
              .Name = SheetName '.........................................on le renomme avec le nom défini
              critère = SheetName '.......................................ce nom devient le crtière de filtre
               wsData.ListObjects("Tableau1").Range.AutoFilter Field:=3, Criteria1:=.Name
               '.....on filtre le tableau de la feuille Liste des joueurs en fonction de la colonne 3 (Club)et du critère
               wsData.ListObjects("Tableau1").Range.SpecialCells(xlVisible).Copy Sheets(SheetName).Range("A1")
               '....on copie les cellules filtrées sur l'onglet créé à partir de A1
               If wsData.FilterMode = True Then wsData.ShowAllData '......on retire le filtre
            End With
        Next Cell '.......................................................on continue la boucle jusqu'à la dernière cellule
    End If
End Sub

Bonne continuation,

Cordialement,

Merci bcp

Rechercher des sujets similaires à "transfert donnes feuille conditions"