Comment croiser 2 tableaux tout en conservant les groupements de lignes

Malka

XLDnaute Occasionnel
Salut à tous,

Je suis vraiment tres embetée sur mon tableau excel et je ne vois pas comment je peux m'en sortir sans faire de miliers d'opération à la main... :(

Je vous expose mon souci.
J'ai un fichier excel avec 2 feuilles. La premiere contient un tableau structuré avec des groupements de ligne que je souhaite absolument garder. La deuxieme feuille contient d'autres données que je voudrais croiser (insertion ligne en réalité) dans le tableau de la premiere feuille sans que cela me detruise les groupements de ligne... Le nombres d'insertion de ligne est tres variable.

Exemple :

Tableau 1 avec les groupements de lignes
AAAAA
A1
A2
A3
BBBBB
B1
CCCCC
C1
C2
C3
C4
C5
etc...

Tableau 2 avec les données à inserrer dans le tableau 1 (plusieurs colonnes)C1 aaaa
C1 bbbb
C1 cccc
B1 dddd
A1 eeee
A1 ffff
A1 gggg
A2 hhhh
etc...

Le resultat attendu dans le tableau 1 avec le croisement des données du tableau 2 :
AAAAA
A1
eeee
ffff
gggg
A2
hhhh
A3
BBBBB
B1
dddd
CCCCC
C1
aaaa
bbbb
cccc
C2
etc...

En réalité le premier tableau fait 10000 lignes et le deuxieme 30000 lignes :confused:
Je cherche en fait à le faire automatiquement car je devrais renouveler l'operation sur 40 fichiers differents (merci SAP :mad:)

J'ai tenté de le faire avec un tableau croisé dynamique mais je perds tous les groupements de ligne...et c'est pas bon puisque je dois le refaire à la main sans compter que je dois refaire les formules de sous totaux à chaque fois.

J'ai mis en piece joint un exemple concret de mon probleme. :rolleyes:

Si ce probleme inspire quelqu'un je suis preneuse ! :cool:

Merci à tous ;)

Malka
 

Pièces jointes

  • P&L Template Malka.zip
    47.9 KB · Affichages: 48

Celeda

XLDnaute Barbatruc
Re : Comment croiser 2 tableaux tout en conservant les groupements de lignes

Bonjour,

Autant je comprends (à peu près ;)) ta formulation
"Le resultat attendu dans le tableau 1 avec le croisement des données du tableau 2 :"
autant je nage quand je regarde le fichier...mais bon...je ne suis pas une référence....:D

Je suggère que tu partes concrètement de ton fichier et que tu fasses la relation entre la Data et l'Etat1 pour "éclaircir" la demande. Bref, fais le manuellement et montre ce que tu attends comme résultat, juste sur un exemple de Data.
 

Malka

XLDnaute Occasionnel
Re : Comment croiser 2 tableaux tout en conservant les groupements de lignes

Je viens de faire 2 exemples de resultat attendu sur la version 2 de mon fichier (feuille "Tableau 1 final".) --> les données ont été inserrées tout en conservant le groupement de ligne)
Il suffit de suivre les couleurs. Dans mon cas, la donnée "clé ou pivot" est la Nature Comptable. (voir le fichier)

Merci beaucoup pour toutes les contributions :p

Malka
 

Pièces jointes

  • P&L Template Malka 2.zip
    45 KB · Affichages: 45

James007

XLDnaute Barbatruc
Re : Comment croiser 2 tableaux tout en conservant les groupements de lignes

Bonjour Malka,

Un bout de Code à tester ...
VB:
Sub Inserer()
Dim c As Range
Dim x As Long

For Each c In Sheet1.Range("A2:A138")
    x = Application.WorksheetFunction.Match(c.Value, SAPSheet1.Range("C1:C127"), 0)
    x = x + 1
    SAPSheet1.Rows(x & ":" & x).Insert Shift:=xlDown
    SAPSheet1.Cells(x, 2) = c.Offset(0, 1)
Next c
End Sub

A +
:)
 

Malka

XLDnaute Occasionnel
Re : Comment croiser 2 tableaux tout en conservant les groupements de lignes

Salut James007 !

Merci pour le code !

Je viens de tester en l'adaptant à mes noms de feuille et il bloque sur la ligne violette sans que je sache pourquoi ???
Le message : "Impossible de lire la propriete Match de la classe WorkSheetFunction"


Aurais-tu une idée ?
Merci

Malka


Sub Inserer()
Dim c As Range
Dim x As Long

For Each c In Sheets("Tableau 2").Range("A2:A138")
x = Application.WorksheetFunction.Match(c.Value, Sheets("Tableau 1").Range("C1:C127"), 0)
x = x + 1
Sheets("Tableau 1").Rows(x & ":" & x).Insert Shift:=xlDown
Sheets("Tableau 1").Cells(x, 2) = c.Offset(0, 1)
Next c
End Sub
 

Malka

XLDnaute Occasionnel
Re : Comment croiser 2 tableaux tout en conservant les groupements de lignes

J'ai trouvé... il fallait que je remplace

x = Application.WorksheetFunction.Match(c.Value, Sheets("Tableau 1").Range("C1:C127"), 0)

par

x = Application.Match(c.Value, Sheets("Tableau 1").Range("C1:C127"), 0)

Merci beaucoup pour le petit code qui va m'eviter de galerer :cool:

Bon week-end

Malka
 

Discussions similaires

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87