Transposition tableau via VBA

Bonjour à tous,

Je suis un novice en VBA... voici mon problème, je ne pense pas qu'il ait été abordé par ailleurs dans le forum.

J'ai un très long tableau de donnée avec en 1ere colonne des références en chiffre (1,2,3, ... 11000) puis 2e 3e 4e etc. colonnes des noms d'entreprises.

Il arrive que certaines lignes il y ait qu'une entreprise pour une référence, d'autres ont trouve une dizaine.

J'ai besoin de mettre ces lignes d'entreprise en colonne : de les transposer.

Pour expliquer : au lieu d'avoir en colonne A la ref 1 puis colonne B,C,D les noms des trois entreprises, j'ai besoin d'avoir :

Colonne A ref 1 : entreprise de la colonne B

Colonne A ref 1 : entreprise de la colonne C

etc.

Je transpose d'une feuille à une autres (feuille nommée liens à feuille colonne)

Comme je l'ai dit je débute à mort dans VBA. Jusque maintenant j'ai écris un code qui me permet de faire ce que je veux pour une ligne (la première) :

Sub Macro1()

Range(A1).End(xlToRight).Select

Selection.Copy

Sheets("colonne").Select

Range("D1").Select

Selection.End(xlDown).Select

Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _

, Transpose:=True

End Sub

Je suppose qu'il faut une boucle genre For .. to, j'essaye mais je n'y arrive juste pas :

Sub Macro2()

Dim i As Integer

For i = 1 To 10500

Range(Cells(i, 1)).End(xlToRight).Select

=> Je pense que le problème est ici... je n'arrive pas à écrire que à chaque fois je veux qu'il reprenne ceci + 1

Selection.Copy

Sheets("colonne").Select

Range("D1").Select

Selection.End(xlDown).Select

Range("D3").Select

Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _

, Transpose:=True

Sheets("Liens").Select

Range("B3:K3").Select

Application.CutCopyMode = False

Selection.Copy

Sheets("colonne").Select

Range("D1").Select

Selection.End(xlDown).Select

Range("D5").Select

Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _

, Transpose:=True

Next

End Sub

Vraiment désolé, j'essaye je n'ai jamais eu de cours en informatique je découvre tout ceci et suis dessus depuis maintenant 3 jours... mais j'en suis à un stade où ... à l'aide.

J'éspère que vous trouverez ma réponse...

Bien à vous

Bonjour,

Puisque tu es débutant, tu as du lire qu'il est préférable d'envoyer une copie de ton fichier sans data confidentielles , ça aide à t'aider

P.

Oui effectivement c'est plus facile : voic donc un extrait pour imager, le tout est trop lourd.

EN gros je cherche à avoir le tableau de la feuille "liens" sous la forme "colonne". Sauf que comme j'ai 11000 lignes, je veux pouvoir le faire automatiquement... cf. les macro ci-dessous qui fonctionnent pour une ligne mais que je n'arrive pas à mettre en boucle.

Merci Merci Merci !!

101exemple.xlsx (47.81 Ko)

re,

essaie ceci :

Option Explicit
Sub Transposer()
Dim Li
Dim Col
Dim Last
Dim Ws1, Ws2 As Worksheet
Set Ws1 = Sheets("liens"): Set Ws2 = Sheets("colonne")
Last = Ws1.[A65000].End(xlUp).Row
For Li = 1 To Last
  For Col = 2 To 44
    If Cells(Li, Col) <> "" Then
      Ws2.[A65000].End(xlUp)(2) = Ws1.Cells(Li, 1).Value
      Ws2.[B65000].End(xlUp)(2) = Ws1.Cells(Li, Col)
    End If
  Next
Next
End Sub

Magique... wow j'étais à des années limières de produire le bon code visiblement. Je pensais qu'il suffisait de produire une boucle... mais non

Merci !!!

Rechercher des sujets similaires à "transposition tableau via vba"