Transformer des cellules en colonne en ligne toutes les 3 lignes

Fermé
Chris - Modifié par Chris le 11/07/2013 à 00:54
 Chris - 18 juil. 2013 à 20:57
Bonjour,

J'ai la colonne F de mon tableau Excel dont je voudrais que les données soient mises en ligne sur 4 colonnes.
Colonne F
A1
B1
C1

A2
B2
C2


Il faudrait
A1 B1 C1
A2 B2 C2

Merci+++

A voir également:

5 réponses

Bonjour,

Avec cette Macro tes cellules en colonnes F seront réparties sur les 3 premières colonnes :
Il faut que ta feuille soit en première position soit la plus à gauche.

Sub transfert()
Nb_Lgn = Sheets(1).Cells(Rows.Count, 6).End(xlUp).Row
X = 1
Y = 1
For i = 1 To Nb_Lgn
If X = 3 Then
Sheets(1).Cells(Y, X) = Sheets(1).Cells(i, 6)
X = 1
Y = Y + 1
Else
Sheets(1).Cells(Y, X) = Sheets(1).Cells(i, 6)
X = X + 1
End If
Next i
End Sub
0
Merci beaucoup pour ton aide, je vais essayer ça. Je n'ai jamais utilisé de macro, j'espère y parvenir.
0
je n'ai pas trouvé où je copie ça. Autre question : il faudrait que les cellules en colonne F se répartissent en G H I, c'est bien ça ?
0
j'ai trouvé comment le copier dans VBA et l'exécuter mais en fait les cellules de la colonne F se copient en colonnes A et B et C et à partir de la ligne 1, alors que je les voudrais en FGH ou GHI et à partir de la ligne 2. Parce qu'en se copiant en ABC elles effacent le nom, prénom, etc Pourrais-tu m'indiquer ce qu'il faut modifier s'il te plait. Merci d'avance.
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
11 juil. 2013 à 09:28
Bonjour

copiez cette formule en A1 et tirez à droite et vers le bas
=SI(ESTNA(RECHERCHEV(ADRESSE(LIGNE();COLONNE();4;1);$F$1:$F$100;1;0));"";RECHERCHEV(ADRESSE(LIGNE();COLONNE();4;1);$F$1:$F$100;1;0))

j'ai fixé le tableau à 100 lignes, remplacez la valeur 100 par la valeur qu'il vous faut

cdlt
0
Merci pour ta réponse, j'ai eu aussi une autre solution mais peut-être plus compliquée à mettre en oeuvre pour moi qui suis totalement novice sur excel.
0
Quand je le copie en A1 je fais enter mais rien ne se passe. J'écris ça en A1 de mon tableau qui existe déjà ? parce que qd je le fais ça enlève les données, c'est tout.
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
11 juil. 2013 à 15:48
Bonjour

Je l'ai testé à nouveau et elle fonctionne parfaitement bien.
pour être sûr qu'elle soit bien copiée, faites la manoeuvre suivante
effacer le contenu de la cellule A1 (même si on ne voit rien), restez sur la cellule A1
copiez la formule

=SI(ESTNA(RECHERCHEV(ADRESSE(LIGNE();COLONNE();4;1);$F$1:$F$100;1;0));"";RECHERCHEV(ADRESSE(LIGNE();COLONNE();4;1);$F$1:$F$100;1;0))

et collez là dans la barre de formule et faites "Entrée"
puis étirez là aux autres cellules

si ça ne marche pas, mettez en copie un échantillon de votre feuille sur http:/cjoint.com/

j'attends le résultat

cdlt
0
Voilà le lien et merci encore http://cjoint.com/?3GlqI34r0De
0
nouveau lien avec mes remerciements http://cjoint.com/?3GltSgIlhE7
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
11 juil. 2013 à 17:38
J'avoue que j'ai du mal à comprendre le sens de la question initiale par rapport au fichier fourni.

Pourriez-vous me renvoyer le fichier (les 10 premières lignes suffisent)
et mettre dans la feuille 2 le résultat que l'on doit trouver?
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
12 juil. 2013 à 07:09
Bonjour

voici, il n'y a plus qu'a cliquer sur le bouton.
https://www.cjoint.com/c/CGmhcXZMGeP

si vous voulez recommencez pour vérifier, les données originales sont sur la feuille 3, recopiez là sur la feuille 2 et cliquez à nouveau sur le bouton

vous pourrez rajoutez des données à la suite, la partie déjà traitée ne sera pas affectée.

bonne réception
cdlt
0
Merci beaucoup ça fonctionne très bien.
Je cherche maintenant à fusionner 2 tableaux mais je vais essayer d'y parvenir. A défaut je me permettrai peut-être de vous redemander de l'aide.
Encore merci.
0
Serait-il possible d'obtenir encore un peu d'aide ? j'aurais besoin de la même macro (maintenant je sais les copier et les exécuter) mais mes données en ligne sont désormais en colonne G sur 6 lignes au lieu de 3 et je voudrais les transférer en colonnes G H I J K L. J'ai essayé de bidouiller la macro en changeant les 3 par 6 mais c'était pas ça.
Merci beaucoup d'avance si vous pouvez trouver un peu de temps pour moi.
0

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

Posez votre question
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
16 juil. 2013 à 04:28
Bonjour
mes données en ligne sont désormais en colonne G sur 6 lignes au lieu de 3 et je voudrais les transférer en colonnes G H I J K L

si je suis à la lettre ce que vous avez écrit, normalement on écrase le contenu de G, alors, ayant un doute, j'ai considéré que les données sont toujours en F mais sur 6 lignes au lieu de 3. si je me suis trompé, faites-le moi savoir , je rectifierai.

en attendant voici la modif

Sub Transfert()
    Application.ScreenUpdating = False
    NbLig = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
    Range("A2").Select
    Do While ActiveCell.Row <= Round(NbLig / 6) + 1
        If Not IsEmpty(Cells(ActiveCell.Row, 7)) Then GoTo Suivant
        For i = 1 To 6
            Cells(ActiveCell.Row, i + 6).Value = Cells(ActiveCell.Row + i, 6).Value
        Next i
        Rows(ActiveCell.Row + 1 & ":" & ActiveCell.Row + 6).Delete
Suivant:
        ActiveCell.Offset(1, 0).Select
    Loop
End Sub


Il n'y a plus qu'à recopier.
bonne journée
cdlt
0
Merci beaucoup pour votre aide à nouveau. Je n'ai pas pu m'occuper de ces tableaux aujourd'hui. Les données sont désormais en G mais je supprimerai une colonne précédente.
Bien cordialement.
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
17 juil. 2013 à 04:54
Bonjour

Pour ne pas supprimer une colonne, voici la rectification pour les données qui sont en G
Sub Transfert()
    Application.ScreenUpdating = False
    NbLig = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
    Range("A2").Select
    Do While ActiveCell.Row <= Round(NbLig / 6) + 1
        If Not IsEmpty(Cells(ActiveCell.Row, 8)) Then GoTo Suivant
        For i = 1 To 6
            Cells(ActiveCell.Row, i + 7).Value = Cells(ActiveCell.Row + i, 7).Value
        Next i
        Rows(ActiveCell.Row + 1 & ":" & ActiveCell.Row + 6).Delete
Suivant:
        ActiveCell.Offset(1, 0).Select
    Loop
End Sub
0
Encore moi ! ça fonctionne bien mais il y a un petit souci, ça met 7 lignes en colonne au lieu de 6 et cela que j'utilise la 1ère ou la 2ème macro et donc tout est décalé puisque la 7ème ligne correspond à une autre personne. Pourrais-tu me faire la modification s'il te plait ?
Merci beaucoup et je te prie de m'excuser pour tout ce dérangement.
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
18 juil. 2013 à 04:53
Bonjour

je dû mal interpréter votre demande parce que chez moi ça marche bien, pourriez-vous me remettre un petit bout de votre fichier (une dizaine de lignes suffiront) pour que je puisse en voir la structure et ainsi l'adapter correctement

A+
0
Voilà l'adresse du lien et encore merci pour votre aide irremplaçable.
0