Transformer un tableau croisé en liste

  • Initiateur de la discussion Initiateur de la discussion debutante01
  • 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 !

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
 
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 😀
 
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 😕
 
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
 
- 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

Discussions similaires

Réponses
11
Affichages
153
Réponses
7
Affichages
181
Réponses
11
Affichages
427
  • Question Question
Microsoft 365 tableau d'alerte
Réponses
2
Affichages
103
Retour