Séparation d'un tableau excel

Résolu
Bonjour a tous,

Je dispose d'un tableau où il y a une liste de personne avec tout un tas de données dont le nom de leur manager. J'ai donc une ligne par personne.

J'aimerai savoir comment à partir de ce tableau en créer plusieurs autres (par managers) en évitant de devoir faire des filtres et des copier/coller pour tout le monde.

En gros à la fin de mon retraitement il me faudrait un onglet Excel par manager avec le tableau des personnes étant dans son périmetre.

Merci beaucoup!
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  1. Contributeur
    bonjour

    est-ce que tu pourrais m'indiquer dans l'explication ci-dessus qu'est-ce que l'on doit adapter afin de séléction selon le bon NOM de Manager !?

    Normalement tu n'as rien à adapter, sinon les libellés éventuellement, il suffit de copier cette macro et l'insérer dans "thisworkbook"

    Pour l'utiliser, c'est avec un clic droit sur une cellule dont tu veux mettre les occurrences sur une feuille à part et quel que soit le contenu de la cellule, un onglet est créé avec le nom sélectionné et toutes les lignes qui contiennent cette valeur sont copiées dans le nouvel onglet.

    Merci de me dire le résultat de tes tests.
    0
    1. Bonjour,
      j'ai exactement le même problem, est-ce que tu pourrais m'indiquer dans l'explication ci-dessus qu'est-ce que l'on doit adapter afin de séléction selon le bon NOM de Manager !?
      0
      1. Contributeur
        bonjour

        Je te propose cette macro à insérer dans "thisworkbook" et avec un clic droit sur une cellule avec le nom du manager choisi tu obtiens l'onglet qui le concerne.
        Bien sûr, cette macro fonctionne sur n'importe qu'elle valeur de cellule, même si ce n'est pas un manager.
        Si ta ligne titre n'est pas sur la ligne 1, change la valeur.
        Private Sub Workbook_SheetBeforeRightClick(ByVal feu As Object, ByVal sel As Range, aff As Boolean)
        Dim c As Integer 'colonne
        Dim f As Integer 'feuille
        Dim l As Integer 'ligne
        Dim rec As Range 'recherche
        Dim rep As String 'réponse
        Dim tit As Integer 'ligne titre
        
        tit = 1 '   numéro ligne titre à adapter
        For f = 1 To Sheets.Count
            If Sheets(f).Name = sel.Value Then Exit For
        Next f
        If f > Sheets.Count Then
            rep = MsgBox("Voulez-vous créer l'onglet : " & sel.Value, vbQuestion + vbYesNo, "Création manager")
            If rep = vbNo Then Exit Sub
            Sheets.Add.Name = sel.Value 'création onglet manager
        End If
        Sheets(sel.Value).Activate
        With Sheets(sel.Value)
            .Cells.ClearComments ' initialisation
            Sheets(feu.Name).Cells(tit, 1).EntireRow.Copy
            ActiveSheet.Cells(tit, 1).Select
            ActiveSheet.Paste
            l = 1: c = 1
        Do ' recherche des enregistrements
            Set rec = Sheets(feu.Name).Cells.Find(What:=sel.Value, After:=.Cells(l, c), _
                LookIn:=xlValues, LookAt:=xlPart, _
                SearchOrder:=xlByColumns, _
                SearchDirection:=xlNext, MatchCase:=False)
            If rec Is Nothing Then Exit Do
            If rec.Row <= l Then Exit Do
            tit = tit + 1
            Sheets(feu.Name).Cells(rec.Row, 1).EntireRow.Copy
            ActiveSheet.Cells(tit, 1).Select
            ActiveSheet.Paste
            l = rec.Row:    c = rec.Column
        Loop
            Application.CutCopyMode = False
        End With
        End Sub
        
        0