Remplir un tableau selon le nom des onglet

Bonjour à tous

Je récupère tous les jours des données sous Excel (nom, prénom, cadence, ect) sous forme de tableau . Je souhaiterai un deuxième classeur avec un onglet par nom Où se copirais automatiquement la ligne correspondante au nom de l'onglet.

Autrement dit, je voudrais que lorsque je lance la macro, Excel reconnaisse les noms et prénoms du premier tableau, copie la ligne correspondante et la colle dans l'onglet du deuxième tableau qui porte le même nom. En sachant qu' il n'y aura pas les forcément les même personnes tous les jours.

Voilà j'espère avoir été suffisamment clair et espère que quelqu'un pourras m'aider merci

Bonsoir,

ce serait plus simple si tu nous donnais un fichier exemple de ce que tu veux.

voici une macro, qu'il te faudra peut-être adapter. sans doute remplacer le nom de la feuille "base" par le nom de la feuille qui contient tes données à répartir.

j'ai fait l'hypothèse que le nom est en colonne A et le prénom en colonne B.

Sub copie()
' feuille de base d'où on prend la copie, reférencée sous wss
    Set wss = Worksheets("base")
    ' dls dernière ligne de wss
    dls = wss.Range("a" & Rows.Count).End(xlUp).Row
    ' dcs dernière colonne de wss
    dcs = wss.Range(wss.Cells(1, Columns.Count).Address).End(xlToLeft).Column
    ' on prend toutes les lignes de wss en passant la ligne des entêtes
    For i = 2 To dls
        ' si on n'a pas déjà copié la ligne
        If wss.Cells(i, 1).Interior.ColorIndex <> 6 Then
            ' on arme un traitement d'erreur si la feuille pour une personne n'existe pas
            On Error GoTo terreur
            ongletàcréer = False
            ' wst est la référence de la feuille correspondant à nom + " " + prénom
            Set wst = Worksheets(wss.Range("A" & i) & " " & wss.Range("B" & i))
            ' on remet le traitement d'erreur par défaut
            On Error GoTo 0
            If ongletàcréer Then
                ' ajout d'un feuille
                Worksheets.Add after:=Worksheets(Worksheets.Count)
                Set wst = Worksheets(Worksheets.Count)
                ' on renomme la feuille d'après le nom et prénom
                wst.Name = wss.Range("A" & i) & " " & wss.Range("B" & i)
                ' on copie les entêtes de colonnes sur la nouvelle feuille créée
                wss.Range("A1:" & Cells(1, dcs).Address).Copy wst.Range("A1")
            End If
            'dlt = première ligne vide dans wst
            dlt = wst.Range("a" & Rows.Count).End(xlUp).Row + 1
            'on copie la ligne
            wss.Range(Cells(i, 1).Address & ":" & Cells(i, dcs).Address).Copy wst.Range("A" & dlt)
            ' on met la ligne en jaune dans wss pour indiquer que la ligne  a été copiée
            wss.Range(Cells(i, 1).Address & ":" & Cells(i, dcs).Address).Interior.ColorIndex = 6
        End If
    Next i
    Set wss = Nothing
    Set wst = Nothing

    Exit Sub
terreur:
    ongletàcréer = True
    Resume Next
End Sub

Je te remercie je posterai le fichier demain mais je vais tester ça avant

Rechercher des sujets similaires à "remplir tableau nom onglet"