Séparation d'un tableau excel
Résolu
Blueflower
-
gbinforme Messages postés 14930 Date d'inscription Statut Contributeur Dernière intervention -
gbinforme Messages postés 14930 Date d'inscription Statut Contributeur Dernière intervention -
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!
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
-
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 -
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 !? -
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.