Parser document en différentes feuilles

Hi Guys,

j'aurais besoin de votre aide pour mon fichier excel. L'idée serait de créer une macro qui permet à partir de mon tableau:

1/ Repérer les différentes catégories et les afficher chacune dans une feuille excel.

Tout est supposé etre dynamique: c'est a dire que mon code devrait marcher si je rajoute des cathégories et des lignes de peronnes.

Merci par avance pour votre aide. J'aurai besoin de la solutio en urgence. J'ai essayé mais en vain je suis encore débutante en VBA et ecci m'aiderai énormement.

Merci

78noms.xlsx (10.49 Ko)
67noms.xlsx (10.49 Ko)

Bonjour,

Ci-joint une proposition parmi tant d'autres ... pour exploser les data ...

En espèrant que cela t'aide ...

Bonne Chance pour la suite ...

Bonsoir à tous,

Vois ceci :

Option Explicit
Sub test()
Dim nomCat As String, myAreas As Areas, myArea As Range
    With Sheets("Feuil1")
        Set myAreas = .Range("g7", .Range("g" & .Rows.Count).End(xlUp)).SpecialCells(2).Areas
    End With
    For Each myArea In myAreas
        On Error Resume Next
        Application.DisplayAlerts = False
        nomCat = myArea.Cells(1).Offset(-1, -1).Value
        Sheets(nomCat).Delete
        On Error GoTo 0
        Sheets.Add(after:=Sheets("Feuil1")).Name = nomCat
        With myArea
            With .Offset(-1, -1).Resize(.Rows.Count + 1, 4)
                .Copy Sheets(nomCat).Cells(1)
            End With
        End With
    Next
    Set myAreas = Nothing
End Sub

klin89

merci pour ta réponse. Je n'ai pas compris ce que c'est le "g7".

La solution fonctionne pour un nombre de ligne égal à 4. comment faire pour le rendre dynamique?

Merci

fkso a écrit :

merci pour ta réponse. Je n'ai pas compris ce que c'est le "g7".

La solution fonctionne pour un nombre de ligne égal à 4. comment faire pour le rendre dynamique?

Merci

Bonjour,

A qui s'adresse ta question ...???

Le remerciement ets pour vous deux. La deuxième question était pour Klin89

Bonjour,

Merci ... pour tes remerciements ...

Re fkso

Exécute cette ligne, tu verras que l'on définit les différentes zones de la "Feuil1" que l'on va copier via la propriété Areas

Sheets("Feuil1").Range("g7", Sheets("Feuil1").Range("g" & Sheets("Feuil1").Rows.Count).End(xlUp)).SpecialCells(2).select

Dans ton cas, on peut aussi s'appuyer sur les colonnes H et I

klin89

Bonjour fkso,

Dans ton message de 10:18, tu as écrit :

Je n'ai pas compris ce que c'est le "g7".

à propos de cette ligne de code :

Set myAreas = .Range("g7", .Range("g" & .Rows.Count).End(xlUp)).SpecialCells(2).Areas

Range("g7") est la cellule G7 ; tu peux aussi écrire : Range("G7") ; ou plus simplement : [G7]

Range("g" & .Rows.Count).End(xlUp)) est la cellule de la dernière ligne du tableau, colonne G.

Le .Range() utilise les deux pour indiquer la plage G7:G100 (si la dernière ligne est 100).

Pour la suite de ton exercice, regarde la précédente réponse de Klin89.

Cordialement

Rechercher des sujets similaires à "parser document differentes feuilles"