Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Transformer un tableau croisé en liste

debutante01

XLDnaute Nouveau
Bonjour,

étant débutante sur excel, j'ai un petit souci que je n'arrive pas à régler, même en ayant visualisé des tutoriels et autres exemples sur le net.

J'ai un tableau avec 5000 lignes et à peu près 200 colonnes, avec des valeurs dans le tableau. Je souhaite transformer ce tableau en liste avec 3 colonnes (1ère colonne avec les données qui étaient en colonne, 2ème colonne avec les données qui étaient déja en colonne et 3ème colonne avec les valeurs du tableau). J'ai mis mon fichier en PJ. Je sais quelles sont les étapes pour entrer une macro, mais je ne connais pas les formules à appliquer... J'ai trouvé des macros sur le forum, mais à chaque fois trés différentes et que je n'arrive pas à adapter à mon cas

Est-ce que quelqu'un pourrait m'aider`?

Merci beaucoup
 

debutante01

XLDnaute Nouveau
Re : Transformer un tableau croisé en liste

Ah désolée

mon fichier était trop lourd même compressé alors je l'ai réduit seulement à quelques lignes et quelques colonnes, pour apporter un exemple...

Merci
 

Pièces jointes

  • Exports(exemple).xlsx
    12.3 KB · Affichages: 161

debutante01

XLDnaute Nouveau
Re : Transformer un tableau croisé en liste

Oui Pierrejean tu as tout à fait compris ce que je voulais
J'ai vu le code que tu as entré. Et maintenant j'aimerais l'appliquer à mon fichier d'origine qui est bcp plus lourd (plus de lignes et plus de colonnes). Que dois-je modifier dans la macro et d'ailleurs puis-je copier coller la macro?
Désolée car je ne sais vraiment pas l'utiliser...
Merci bcp en tout cas
 

pierrejean

XLDnaute Barbatruc
Re : Transformer un tableau croisé en liste

Re

A priori il n'y a rien à changer si plus de lignes et plus de colonnes

Pour l'utiliser : Copier / coller l'integraliter du Module1 dans le Module1 de ton fichier
Teste et dis-nous
 

debutante01

XLDnaute Nouveau
Re : Transformer un tableau croisé en liste

Je viens d'essayer mais j'ai une erreur 13 qui s'affiche, et ensuite sur le module, j'ai la 3ème ligne en partant du bas qui est surlignée en jaune...

Celle-ci :

Sheets("Sheet1").Range("A1").Resize(UBound(tabres, 2), 3) = Application.Transpose(tabres)

J'imagine que je dois changer qq chose là dedans
 

pierrejean

XLDnaute Barbatruc
Re : Transformer un tableau croisé en liste

Re

Il est possible que la quantité de lignes depasse les les possibilités du Transpose
Teste cette version:

Code:
Option Base 1
Sub test()
Dim n As Long
Dim m As Long
Sheets("Sheet2").Cells.ClearContents
tablo = Sheets("Sheet1").Range("A1").CurrentRegion
ReDim tabres(1 To 3, 1 To 1)
For n = LBound(tablo, 1) + 1 To UBound(tablo, 1)
 For m = LBound(tablo, 2) + 1 To UBound(tablo, 2)
   If tablo(n, m) <> "" Then
     tabres(1, UBound(tabres, 2)) = tablo(n, 1)
     tabres(2, UBound(tabres, 2)) = tablo(1, m)
     tabres(3, UBound(tabres, 2)) = tablo(n, m)
     ReDim Preserve tabres(1 To 3, 1 To UBound(tabres, 2) + 1)
   End If
 Next m
Next n
ReDim Preserve tabres(1 To 3, 1 To UBound(tabres, 2) - 1)
Application.ScreenUpdating = False
For n = LBound(tabres, 1) To UBound(tabres, 1)
  For m = LBound(tabres, 2) To UBound(tabres, 2)
    Sheets("Sheet2").Cells(m, n) = tabres(n, m)
  Next m
Next n
Application.ScreenUpdating = True
Sheets("Sheet2").Select
End Sub
 

Discussions similaires

Réponses
2
Affichages
213
Réponses
4
Affichages
324
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…