Macro transpose

Résolu/Fermé
RDV18H Messages postés 5 Date d'inscription mercredi 10 juillet 2013 Statut Membre Dernière intervention 10 juillet 2013 - 10 juil. 2013 à 15:45
RDV18H Messages postés 5 Date d'inscription mercredi 10 juillet 2013 Statut Membre Dernière intervention 10 juillet 2013 - 10 juil. 2013 à 17:40
Bonjour,

Je n'arrive pas à réaliser une macro qui transpose en ligne en colonne
Mon fichier d'origine se présente ainsi :
Ligne 1 : intitulés des colonnes ident var1 var2 var3 ... var10

Le résultat que je cherche à obtenir est le suivant (tableau à 2 colonnes seulement)

Ligne 1 : Ident Var (intitulés des 2 colonnes)

Ligne2 : Ident1 var1
Ligne3 : ident1 var2
Ligne4 : Ident1 var3

Etc

Ligne12 : Ident2 var1 ....

J'ai fait une petite macro pour insérer des lignes blanches ==> ça marche
ensuite, je bloque

Mon fichier de départ

277193 99 99 99 99 15 21 99 99 24 25

Ce que je veux obtenir

277193 99
99
99
99
15
21
99
99
24
25

Quelqu'un pourrait-il m'aider ?

Merci beaucoup
A voir également:

5 réponses

En positionnant ta chaine en cellule A1 utilise la macro suivante :

Sub test()
X = 2
Reste = Cells(1, 1)
Suite:
Coupure = InStr(Reste, " ")
If Coupure <> 0 Then
Info = Mid(Reste, 1, Coupure - 1)
Cells(X, 1) = Info
Reste = Mid(Reste, Coupure + 1)
X = X + 1
GoTo Suite
End If
End Sub


Seule le dernier terme ne sera pas positionné.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
10 juil. 2013 à 16:21
Salut,

Je penses que c'est pas bon ce que tu proposes...
2 choses :
1- si j'ai bien compris, Cells(i, 1) ne contient que l'identifiant, les var sont sur les colonnes B, C, D etc...
2- le goto n'est pas approprié, même dans le cas que tu décris. Il eu mieux valu utiliser Split et boucler après...
0
RDV18H Messages postés 5 Date d'inscription mercredi 10 juillet 2013 Statut Membre Dernière intervention 10 juillet 2013
10 juil. 2013 à 16:39
Merci à tous les deux.
Effectivement, la solution que tu proposes WeaponEDGE ne fonctionne pas.
Comment faut-il que j'utilise split

Encore merci
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
10 juil. 2013 à 16:50
Split ne te servirait pas dans ton cas. Il aurait été utile si toutes les données d'un identifiant avaient été dans une seule cellule.
Toi, tu as 10 colonnes et tu n'en veux que 2. C'est bien ça?
0
RDV18H Messages postés 5 Date d'inscription mercredi 10 juillet 2013 Statut Membre Dernière intervention 10 juillet 2013
10 juil. 2013 à 16:54
Oui, c'est exactement cela
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
10 juil. 2013 à 16:55
Pour chaque ligne, tes 11 colonnes sont elles remplies?
0
RDV18H Messages postés 5 Date d'inscription mercredi 10 juillet 2013 Statut Membre Dernière intervention 10 juillet 2013
10 juil. 2013 à 16:56
oui
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
10 juil. 2013 à 17:12
Ce code "transpose" tes données de la feuil1 à la feuil2.
Tu peux adapter le nom des feuilles dans la macro :

Sub TransposeEn2Col()
Dim i As Byte
Dim ident As String
Dim Cel As Range, Plage As Range

With Sheets("Feuil1") 'A ADAPTER
    Set Plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
For Each Cel In Plage
    With Sheets("Feuil2") 'A ADAPTER
        ident = Cel.Value
        For i = 1 To 10
            .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0) = ident
            .Cells(.Rows.Count, 2).End(xlUp).Offset(1, 0) = Sheets("Feuil1").Cells(Cel.Row, i + 1).Value 'A ADAPTER
        Next
    End With
Next
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
RDV18H Messages postés 5 Date d'inscription mercredi 10 juillet 2013 Statut Membre Dernière intervention 10 juillet 2013
10 juil. 2013 à 17:40
Oh, c'est génial

Un très grand merci

Bonne soirée
0