Passer d'une colonne à plusieurs colonnes

Bonjour,

j'ai un fichier avec une seule colonne qui est une liste de données comme dans l'exemple que j'ai joint onglet "base".

Est-il possible à partir de cette base de passer facilement à un fichier avec plusieurs colonnes comme dans l'onglet "résultat recherché".

Bien sur, mon fichier contient un nombre très conséquent de lignes. Je l'ai simplifié au maximum, mais le principe recherché est celui là.

Je serais très heureux que quelqu'un puisse m'aider, s'il y a une solution. J'ai trouvé une réponse à une question inverse : passer de plusieurs colonnes à une seule, mais pas dans mon cas.

Merci d'avance.

Bisontin.

Bonjour. bienvenue sur le Forum

Ton fichier n'est pas joint, essaie à nouveau de l'envoyer

Cordialement

Merci de m'avoir alerté. Voici un nouvel assai pour joindre le fichier.

Alain

56exemple.xls (13.50 Ko)

Bonsoir et bienvenue,

Il faut faire une macro, qui bien sûr ne marchera pas sur ton fichier réel,

envoie quelque chose reflétant la réalité (structure du fichier)

en précisant si il y a toujours 3 données par bloc et si chaque bloc est toujours

séparé par un ligne vide ?

Bref, envoie ta feuille (anonymisée si besoin), mais avec sa structure réelle,

pas besoin de 3000 lignes, une vingtaine de blocs suffira.

à te relire

Amicalement

Claude

Merci Claude pour cette réponse rapide.

Voilà le début du fichier. En fait seules les informations en jaune sont nécessaires, donc 6 lignes sur 12. La structure est toujours la même. Mon exemple n'avait que 3 lignes, c'était pour montrer ce que je recherchais.

Tu pense qu'avec une macro c'est faisable?

Amitiés

Alain

re,

Oui c'est faisable,

je regarde çà demain matin

Combien de lignes sur le fichier complet (environ)

Claude

Bonjour

En attendant la solution macro, une solution formule

Le tableau en Feuil2 contient 3 formules

La formule en A2 s'incrémente vers la droite jusqu'à la colonne D et jusqu'au bas.

=INDIRECT("Feuil1!A"&COLONNE()+2+(13*(LIGNE()-2)))

La formule en E2 s'incrémente vers le bas

=INDIRECT("Feuil1!A"&COLONNE()+3+(13*(LIGNE()-2)))

La formule en F2 s'incrémente vers le bas

=INDIRECT("Feuil1!A"&COLONNE()+5+(13*(LIGNE()-2)))

Fichier joint

Cordialement

Bonjour à tous,

Solution VBA

sous réserve que les données soient par groupes de

12 lignes séparés par une ligne vide, et tous structurés pareil.

Sub EnColonnes()
Dim Lg%, i%, x
    x = Time
        Application.ScreenUpdating = False
        Lg = Range("a65536").End(xlUp).Row

    '--- transpose ---
    For i = 1 To Lg Step 13
        Range(Cells(i, 1), Cells(i + 12, 1)).Copy

        Sheets("Archives").Range("A65536").End(xlUp)(2) _
        .PasteSpecial Paste:=xlPasteValues, Transpose:=True
        Application.CutCopyMode = False
    Next i

    '--- formate ---
        With Sheets("Archives")
            .Range("a:b,g:g,i:j,L:L").EntireColumn.Hidden = True
            With .Columns("k:k")
                .ColumnWidth = 100      'largeur colonne
                .WrapText = True        'retour ligne
            End With
            .Range("c:f,h:h").Columns.AutoFit
            .Activate
            Application.Goto .Range("a1"), Scroll:=True
        End With

    MsgBox ("temps macro = " & Format(Time - x, "hh:mm:ss"))
End Sub

Tu nous diras le temps de traitement pour le transfert complet

Salut Amadéus

Bonne journée

Claude

Vous êtes formidables...je travaille tout ça demain soir je pense.

En fait, le fichier était à l'origine en Word, je l'ai enregistré en excel, je pense avoir bien fait et pas compliqué la chose et il est tellement énorme que j'ai un 1er fichier avec le maximum de lignes, j'en suis là à 65532 et j'aurai un autre fichier avec la suite. J'aurais peut-être dû commencer par éliminer les lignes inutiles pour que ça rentre dans un seul.

Je n'ai pas le loisir de m'y mettre ce soir, mais je vous tiens au courant de la suite.

Encore un grand merci, je savais que vous étiez formidables.

Alain

Ca y est, encore merci.

Comme le fichier était important j'ai procédé par étapes de 10 à 15000 lignes et la macro a fonctionné merveilleusement, et avec résultat immédiat.

Merci et bon week-end.

Alain

Rechercher des sujets similaires à "passer colonne colonnes"