Réorganiser un tableau excel automatiquement

Jez

XLDnaute Nouveau
Bonjour à tous,

J'ai une extraction excel d'informations issues d'un système informatique.

Je souhaite réorganiser les données du tableau extrait (réorganisation des lignes en fonction en fonction de deux critères de la ligne).
Jusqu'à maintenant, j'utilisais les filtres automatiques et le bon vieux ctrl C ctrl V mais je suis certain qu'avec Excel, il doit y avoir un moyen d'automatiser cette commande qui me prend beaucoup de temps chaque semaine et qui est relativement ennuyeuse.
J'imagine qu'il faut faire une macro mais j'ai eu beau essayé par moi même, je n'arrive à rien. Même l'aide précédemment apporté à mes compères fans d'excel ne m'a pas vraiment aidé. Pouvez-vous m'aider s'il vous plait.
Ce que je souhaite faire est détaillé dans le fichier joint.

Merci infiniment pour votre aide.

Jérémy
 

Pièces jointes

  • EXEMPLE réorganisation data.zip
    26.1 KB · Affichages: 128

Cousinhub

XLDnaute Barbatruc
Re : Réorganiser un tableau excel automatiquement

Bonjour,

un petit exemple dans le fichier ci-joint...

Le code :

Code:
Sub Extract()
Dim Sh As Range
Dim Cel As Range
Dim Derlig As Long
Application.ScreenUpdating = False
Derlig = [A1].End(xlDown).Row
Rows(Derlig + 1 & ":65000").Delete
Range("A1:J" & Derlig).Name = "base"
[M1] = [A1]: [N1] = [J1]
Range("base").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
        "M1:N1"), Unique:=True
For Each Cel In Range("M2:M" & [M65000].End(xlUp).Row)
    If IsNumeric(Cel.Offset(0, 1).Value) Then
        [M2] = Cel.Value: [N2] = Cel.Offset(0, 1).Value
        Range("base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
            "M1:N2"), CopyToRange:=Cells(Derlig + 2, 1), Unique:=False
        Rows(Derlig + 2).ClearContents
        Cells(Derlig + 2, 1).Value = "PERIOD " & [N2]
        Cells(Derlig + 2, 2).Value = "PROFILE " & [M2]
        Cells(Derlig + 2, 3).Value = "TRI PAR REGION"
        Derlig = [A65000].End(xlUp).Row
    End If
Next Cel
Columns("M:N").Delete
End Sub

Si tu n'arrives pas à adapter, reviens

Si tu préfères qu'on copie vers d'autres onglets, reviens également..

Bon courage

Le fichier : (clique sur le rectangle jaune...)
 

Pièces jointes

  • Reorganisation data_v1.zip
    32.5 KB · Affichages: 103

Jez

XLDnaute Nouveau
Re : Réorganiser un tableau excel automatiquement

Merci infiniment Bhbb,
Il faut vraiment que je me mette à potasser sévère mon VBA. Ca peut être tellement puissant.
Malheureusement, pour l'instant, je suis très très limité et j'ai du mal à tout comprendre. Je reviens donc vers toi avec une nouvelle requête.
1/ J'aimerai que ce soit dans un autre onglet.
2/ J'ai transposé ton programme vers mon fichier plus important et là, le tri par région ne se fait pas.

Je t'ai donc mis en pièce jointe l'extraction telle que je l'ai de mon système informatique et dans le deuxième onglet, les infos telle que j'aimerai qu'elle apparaisse. Si tu as le temps de jeter un oeil là dessus et de me renvoyer le programme modifié. Voir la différence entre les deux programmes m'aidera sûrement à mieux comprendre... Enfin, y a un truc que j'ai bien compris déjà, c'est que j'ai un boulot énorme à faire avant de bien savoir me servir de VBA.

Merci beaucoup pour ton aide

 

Cousinhub

XLDnaute Barbatruc
Re : Réorganiser un tableau excel automatiquement

Bonjour,

A priori, ton fichier n'est pas passé...

Copie un une dizaine de lignes de ton fichier dans un nouveau fichier, sur le premier onglet, et sur le 2ème, la ligne d'extraction qui t'intéresse....

A te relire
 

Jez

XLDnaute Nouveau
Re : Réorganiser un tableau excel automatiquement

Slt,
J'ai rajouté des colonnes, je n'arrive pas à les ajouter dans le nouveau tableau...
(J'ai ajouté les titres, mais les données ne s'affiche pas).

Peux tu m'aider à nouveau

Merci beaucoup
 

Pièces jointes

  • réorganisation tableau.xls
    36.5 KB · Affichages: 108
  • réorganisation tableau.xls
    36.5 KB · Affichages: 109
  • réorganisation tableau.xls
    36.5 KB · Affichages: 105

Cousinhub

XLDnaute Barbatruc
Re : Réorganiser un tableau excel automatiquement

Bonjour,

modifie ton code ainsi :

Code:
Sub Extract()
Dim Sh As Range
Dim Cel As Range
Dim Derlig As Long, DerLig2 As Long
Application.ScreenUpdating = False
Derlig = [A1].End(xlDown).Row
Range("A1:O" & Derlig).Name = "base"
[P1] = [A1]: [Q1] = [O1]
Range("base").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
        "P1:Q1"), Unique:=True
Range("P1:Q" & [P65000].End(xlUp).Row).Sort Key1:=Range("P2"), Order1:=xlAscending, Key2:=Range("Q2") _
    , Order2:=xlAscending, Header:=xlGuess
With Sheets("CAZ TABLE")
    .Cells.Clear
    For Each Cel In Range("P2:P" & [P65000].End(xlUp).Row)
        If IsNumeric(Cel.Offset(0, 1).Value) Then
            [P2] = Cel.Value: [Q2] = Cel.Offset(0, 1).Value
            DerLig2 = .[A65000].End(xlUp).Row + 2
            Range("B1,D1:N1").Copy .Cells(DerLig2 + 1, 1)
            Range("base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
                "P1:Q2"), CopyToRange:=.Range(.Cells(DerLig2 + 1, 1), .Cells(DerLig2 + 1, 12)), Unique:=False
            .Cells(DerLig2, 1).Value = "PROFILE " & [P2]
            .Cells(DerLig2, 2).Value = "PERIOD " & [Q2]
            With .Range(.Cells(DerLig2, 1), .Cells(DerLig2, 2))
                .Font.Bold = True
            End With
        End If
    Next Cel
    .Cells.EntireColumn.AutoFit
End With
Columns("P:Q").Delete
End Sub

Modifications apportées :

ligne :

Code:
Range("A1:O" & Derlig).Name = "base"

On va jusqu'à la colonne O pour déterminer la base

et ligne :

Code:
Range("base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
                "P1:Q2"), CopyToRange:=.Range(.Cells(DerLig2 + 1, 1), .Cells(DerLig2 + 1, 12)), Unique:=False

Ici, on extrait jusqu'à la colonne 12 (L) et non plus 7 (G) de la feuille "CAZ TABLE"

Bonne journée
 

Statistiques des forums

Discussions
312 275
Messages
2 086 707
Membres
103 377
dernier inscrit
fredy45