L'inverse d'un Tableau Croisé

  • Initiateur de la discussion Initiateur de la discussion CyK
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

CyK

Guest
Bonjour le Forum et d'avance merci.

Voilà j'ai en données source un tableau qui s'apparenterai dans sa présentation à un tableau croisé dynamique et je cherche à en reconstituer la liste. Je cherche donc à reconstituer les lignes qui décrivent les 'croisements' de mon tableau.

une belle image valant mieux qu'un long discours je vous joint le fichier.

Une idée, j'ai essayé de chercher sur le Forum et sur Goog mais sans succès. [file name=TcToListe.zip size=13176]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/TcToListe.zip[/file]
 

Pièces jointes

Bonjour Cyk, le forum

Une proposition en pièce jointe, par vba.

Sub Bouton5_QuandClic()
Dim tablo()
Dim i As Byte, j As Byte, x As Byte
Dim derligne As Byte

x = 1

For i = 3 To Cells(1, 256).End(xlToLeft).Column
derligne = Cells(65536, i).End(xlUp).Row
   
For j = 2 To derligne
       
If Cells(j, i) <> '' Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
ReDim Preserve tablo(1 To 4, 1 To x)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tablo(1, x) = Cells(1, i)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tablo(2, x) = Cells(j, 1)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tablo(3, x) = Cells(j, 2)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tablo(4, x) = Cells(j, i)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; x = x + 1
&nbsp; &nbsp; &nbsp; &nbsp;
End If
&nbsp; &nbsp;
Next j
Next i

Sheets('feuil2').Range('a1').Resize(UBound(tablo, 2), UBound(tablo, 1)) = WorksheetFunction.Transpose(tablo)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
End Sub

Renvoi des infos en feuille 2

salut
[file name=TcToListev2.zip size=17832]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/TcToListev2.zip[/file]
 

Pièces jointes

Re Cyk , le forum

J'avais pas vu que tu voulais aussi trier par produit, oublie corrigé dans la pièce jointe.

Le produit 29 n'est pas renseigné dans ta liste exemple, c'est normal ?

salut
[file name=TcToListev3.zip size=18457]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/TcToListev3.zip[/file]

Message édité par: Hervé, à: 16/09/2005 15:40
 

Pièces jointes

Bon ç'est sur la bonne voie, merci de ton aide Hervé, si j'applique le code sur ma feuille (qui compte sur le docs que je travaille 65 colonnes et 129 lignes mais qui pourrait en contenir plus) j'ai un dépassement de capacité sur X=X+1. évidemment quand x atteind 255 ! peut on agrandir le tablo ?
 
Merci Pascal et Hervé : ça marche impec sur toute la feuille mais uniquement si le bouton est placé sur la feuille, si le bouton est sur une autre feuille (ce qui est mon cas, la feuille 'TCD' etant inexistante au départ et crée à la volée) çela me retourne une erreur d'indice. J'active la feuille source en faisant un
Code:
Sheets('Ruptures Expés').Select
Si avant la boucle je fais un MsgBox ActiveSheet.Name j'ai bien la bonne feuille source activée.

Apparemment la boucle ne lit pas la bonne feuille car la première erreur se produit sur UBound(tablo, 2).
 
Re Cyk, pascal, le forum

Cyk, tu nous donne les infos aux comptes gouttes 🙂

With Sheets('TCD') 'A ADAPTER
For i = 3 To .Cells(1, 256).End(xlToLeft).Column
derligne = .Cells(65536, i).End(xlUp).Row
For j = 2 To derligne
If .Cells(j, i) <> '' Then
ReDim Preserve tablo(1 To 4, 1 To x)
tablo(1, x) = .Cells(1, i)
tablo(2, x) = .Cells(j, 1)
tablo(3, x) = .Cells(j, 2)
tablo(4, x) = .Cells(j, i)
x = x + 1
End If
Next j
Next i
End With

ce code travaillera avec la feuille nommée TCD (a adapter à ton cas), quel que soit l'endroit d'ou sera lancé la macro.

Note bien les points devant les cells, très important, car ils 'attachent' les codes qui les suivent au bloc d'instruction with.

salut
 
Merci Beaucoup je vais regarder ça.

Hervé écrit:
Re Cyk, pascal, le forum
Cyk, tu nous donne les infos aux comptes gouttes 🙂

😉

C'est parce que j'aime bien chercher au maximum par moi même, mais autant en langage de prog genre C#, perl .... je sais où aller chercher l'info autant j'ai du mal a me mettre en route en VBA. Heureusement que ce forum existe. Il va falloir que je m'achète un bon bouquin sur VBA vu ce qu'on me demande de faire avec excel, des analyses de données de plus en plus poussées sur des quantités de données énormes. Je découvre au fur et à mesure qu'excel couplé à VBA est une vrai mine d'or, c'est extrémement puissant :woohoo:

Encore merci à tous !!!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

L
Réponses
5
Affichages
1 K
louisavice
L
R
Réponses
4
Affichages
2 K
RantanFred
R
Réponses
2
Affichages
1 K
D
P
Réponses
3
Affichages
9 K
Pierrot93
P
A
  • Question Question
Réponses
2
Affichages
1 K
arthur1952
A
T
Réponses
4
Affichages
4 K
T
B
  • Question Question
Réponses
2
Affichages
1 K
Bertrand
B
M
Réponses
5
Affichages
1 K
M
C
Réponses
3
Affichages
2 K
C
Réponses
9
Affichages
1 K
E
Réponses
12
Affichages
2 K
Evgueny
E
Retour