Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Séparer un listing en ligne en 4 colonnes

7 réponses
Avatar
Flo21000
Bonjour à tous.

Tout nouveau sur le forum - après plusieurs heures de recherches, je ne trouve pas de réponse à mon problème
J'ai un listing au format Excel (xlsx) de plus de 450 contacts sous cette forme (1 seule colonne et 1500 lignes : 4 lignes pour chaque contact).
1 - Nom 1
2 -Prénom 1
3 - Société 1
4 - Adresse 1
5 - Nom 2
6 - Prénom 2
7 - Société 2
8 - Adresse 2


Je souhaiterais transformer celui-ci comme suit :
A / B / C / D
1 Nom 1 Prénom 1 Société 1 Adresse 1
2 Nom 2 Prénom 2 Société 2 Adresse 2


J'ai bien trouvé l'astuce pour un contact avec la fonction copier / collage spécial / transposé mais ceci ne fonctionne que pour un contact. Existe-t-il une formule qui me permettrait d'obtenir automatiquement un tableau sous la forme ci-dessus, soit 450 lignes et 4 colonnes par lignes.
Merci pour votre attention.

7 réponses

Avatar
LSteph
Bonjour,

(450*400 donc on va faire comme si t'avais plus)

l'important est qu'il n'y ait aucun trou dans la colonne A
Ouvre VBE et dans le projet insère un module standard puis colle cette ma cro dedans puis execute la ca va répartir entre B et E les cellules de A

Sub repart()
For i = 1 To [A65536].End(xlUp).Row
[B:E].Cells(i) = [A1:A100].Cells(i)
Next i
End Sub

'LSteph

Le mercredi 20 avril 2016 10:43:44 UTC+2, Flo21000 a écrit :
Bonjour à tous.

Tout nouveau sur le forum - après plusieurs heures de recherches, je ne trouve
pas de réponse à mon problème
J'ai un listing au format Excel (xlsx) de plus de 450 contacts sous cette forme
(1 seule colonne et 1500 lignes : 4 lignes pour chaque contact).
1 - Nom 1
2 -Prénom 1
3 - Société 1
4 - Adresse 1
5 - Nom 2
6 - Prénom 2
7 - Société 2
8 - Adresse 2


Je souhaiterais transformer celui-ci comme suit :
A / B / C / D
1 Nom 1 Prénom 1 Société 1 Adresse 1
2 Nom 2 Prénom 2 Société 2 Adresse 2


J'ai bien trouvé l'astuce pour un contact avec la fonction copier / col lage
spécial / transposé mais ceci ne fonctionne que pour un contact. Exis te-t-il une
formule qui me permettrait d'obtenir automatiquement un tableau sous la f orme
ci-dessus, soit 450 lignes et 4 colonnes par lignes.
Merci pour votre attention.
Avatar
Jacquouille
Salut Stéphane
Si tu as 2 min, peux-tu m'expliquer le 100 de ta formule =
[A1:A100].Cells(i)
Un tout grand merci
Bonne fin de journée
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"LSteph" a écrit dans le message de groupe de discussion :



Bonjour,

(450*400 donc on va faire comme si t'avais plus)

l'important est qu'il n'y ait aucun trou dans la colonne A
Ouvre VBE et dans le projet insère un module standard puis colle cette macro
dedans puis execute la ca va répartir entre B et E les cellules de A

Sub repart()
For i = 1 To [A65536].End(xlUp).Row
[B:E].Cells(i) = [A1:A100].Cells(i)
Next i
End Sub

'LSteph

Le mercredi 20 avril 2016 10:43:44 UTC+2, Flo21000 a écrit :
Bonjour à tous.

Tout nouveau sur le forum - après plusieurs heures de recherches, je ne
trouve
pas de réponse à mon problème
J'ai un listing au format Excel (xlsx) de plus de 450 contacts sous cette
forme
(1 seule colonne et 1500 lignes : 4 lignes pour chaque contact).
1 - Nom 1
2 -Prénom 1
3 - Société 1
4 - Adresse 1
5 - Nom 2
6 - Prénom 2
7 - Société 2
8 - Adresse 2


Je souhaiterais transformer celui-ci comme suit :
A / B / C / D
1 Nom 1 Prénom 1 Société 1 Adresse 1
2 Nom 2 Prénom 2 Société 2 Adresse 2


J'ai bien trouvé l'astuce pour un contact avec la fonction copier /
collage
spécial / transposé mais ceci ne fonctionne que pour un contact.
Existe-t-il une
formule qui me permettrait d'obtenir automatiquement un tableau sous la
forme
ci-dessus, soit 450 lignes et 4 colonnes par lignes.
Merci pour votre attention.




---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
MichD
Bonjour,

Essaie ceci, cela devrait être bon pour le problème précédent
Tu as seulement à modifier la variable Nb

'----------------------------------
Sub test()
Dim Rg As Range, Nb As Long, A As Long

'Nombre de lignes pour chaque entrée à transformer
'en colonne
Nb = 4

Application.ScreenUpdating = False
Application.EnableEvents = False
With Worksheets("Feuil1") 'Nom onglet feuille à adapter
'Déterminer la plage où sont les données
'L'exemple débute en A1 à modifier si nécessaire
Set Rg = .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row)
For A = Rg(1, 1).Row To Rg.Count + Nb Step Nb
.Range("A" & A).Resize(, 4) = Application.Transpose(.Range("A"
& A).Resize(4))
.Range("A" & A).Offset(1).Resize(3).Clear
Next
End With
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
'----------------------------------
Avatar
MichD
Une petite correction apportée,


'-----------------------------------------
Sub test()
Dim Rg As Range, Nb As Long, A As Long

'Nombre de lignes pour chaque entrée à transformer
'en colonne
Nb = 4

Application.ScreenUpdating = False
Application.EnableEvents = False
With Worksheets("Feuil1") 'Nom onglet feuille à adapter
'Déterminer la plage où sont les données
'L'exemple débute en A1 à modifier si nécessaire
Set Rg = .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row)
For A = Rg(1, 1).Row To Rg.Count + Nb Step Nb
.Range("A" & A).Resize(, Nb) = Application.Transpose(.Range("A"
& A).Resize(Nb))
.Range("A" & A).Resize(, Nb).Offset(1).Resize(3).Clear
Next
Rg.Resize(, 4).SpecialCells(xlCellTypeBlanks).Delete
End With
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

'-----------------------------------------
Avatar
LSteph
Oupss... bonjour,

Oui merci mon bon Jacquouille j'avais testé sur 100 avant de répondre

Sub repart()
For i = 1 To [A65536].End(xlUp).Row
[B:E].Cells(i) = [A:A].Cells(i)
Next i
End Sub

'LSteph

Le mercredi 20 avril 2016 12:36:42 UTC+2, Jacquouille a écrit :
Salut Stéphane
Si tu as 2 min, peux-tu m'expliquer le 100 de ta formule =
[A1:A100].Cells(i)
Un tout grand merci
Bonne fin de journée
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"LSteph" a écrit dans le message de groupe de discussion :



Bonjour,

(450*400 donc on va faire comme si t'avais plus)

l'important est qu'il n'y ait aucun trou dans la colonne A
Ouvre VBE et dans le projet insère un module standard puis colle cette macro
dedans puis execute la ca va répartir entre B et E les cellules de A

Sub repart()
For i = 1 To [A65536].End(xlUp).Row
[B:E].Cells(i) = [A1:A100].Cells(i)
Next i
End Sub

'LSteph

Le mercredi 20 avril 2016 10:43:44 UTC+2, Flo21000 a écrit :
> Bonjour à tous.
>
> Tout nouveau sur le forum - après plusieurs heures de recherches, je ne
> trouve
> pas de réponse à mon problème
> J'ai un listing au format Excel (xlsx) de plus de 450 contacts sous cet te
> forme
> (1 seule colonne et 1500 lignes : 4 lignes pour chaque contact).
> 1 - Nom 1
> 2 -Prénom 1
> 3 - Société 1
> 4 - Adresse 1
> 5 - Nom 2
> 6 - Prénom 2
> 7 - Société 2
> 8 - Adresse 2
>
>
> Je souhaiterais transformer celui-ci comme suit :
> A / B / C / D
> 1 Nom 1 Prénom 1 Société 1 Adresse 1
> 2 Nom 2 Prénom 2 Société 2 Adresse 2
>
>
> J'ai bien trouvé l'astuce pour un contact avec la fonction copier /
> collage
> spécial / transposé mais ceci ne fonctionne que pour un contact.
> Existe-t-il une
> formule qui me permettrait d'obtenir automatiquement un tableau sous la
> forme
> ci-dessus, soit 450 lignes et 4 colonnes par lignes.
> Merci pour votre attention.


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
Jacquouille
Merci Stéphane.
Comment ça va, depuis le temps?

Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"LSteph" a écrit dans le message de groupe de discussion :


Oupss... bonjour,

Oui merci mon bon Jacquouille j'avais testé sur 100 avant de répondre

Sub repart()
For i = 1 To [A65536].End(xlUp).Row
[B:E].Cells(i) = [A:A].Cells(i)
Next i
End Sub

'LSteph

Le mercredi 20 avril 2016 12:36:42 UTC+2, Jacquouille a écrit :
Salut Stéphane
Si tu as 2 min, peux-tu m'expliquer le 100 de ta formule > [A1:A100].Cells(i)
Un tout grand merci
Bonne fin de journée
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"LSteph" a écrit dans le message de groupe de discussion :



Bonjour,

(450*400 donc on va faire comme si t'avais plus)

l'important est qu'il n'y ait aucun trou dans la colonne A
Ouvre VBE et dans le projet insère un module standard puis colle cette
macro
dedans puis execute la ca va répartir entre B et E les cellules de A

Sub repart()
For i = 1 To [A65536].End(xlUp).Row
[B:E].Cells(i) = [A1:A100].Cells(i)
Next i
End Sub

'LSteph

Le mercredi 20 avril 2016 10:43:44 UTC+2, Flo21000 a écrit :
> Bonjour à tous.
>
> Tout nouveau sur le forum - après plusieurs heures de recherches, je ne
> trouve
> pas de réponse à mon problème
> J'ai un listing au format Excel (xlsx) de plus de 450 contacts sous
> cette
> forme
> (1 seule colonne et 1500 lignes : 4 lignes pour chaque contact).
> 1 - Nom 1
> 2 -Prénom 1
> 3 - Société 1
> 4 - Adresse 1
> 5 - Nom 2
> 6 - Prénom 2
> 7 - Société 2
> 8 - Adresse 2
>
>
> Je souhaiterais transformer celui-ci comme suit :
> A / B / C / D
> 1 Nom 1 Prénom 1 Société 1 Adresse 1
> 2 Nom 2 Prénom 2 Société 2 Adresse 2
>
>
> J'ai bien trouvé l'astuce pour un contact avec la fonction copier /
> collage
> spécial / transposé mais ceci ne fonctionne que pour un contact.
> Existe-t-il une
> formule qui me permettrait d'obtenir automatiquement un tableau sous la
> forme
> ci-dessus, soit 450 lignes et 4 colonnes par lignes.
> Merci pour votre attention.


---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
http://www.avast.com




---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
LSteph
Bien merci et toi. En fait je ne participe plus guère (pas trop le temps) mais j'ai de temps en temps un oeil qui traine quand même.
Je vois qu'il demeure toujours le même noyau dur, du moins quelques uns.

Nota à part: Le récent "départ" de notre ami RD me semblait un moment un peu triste (pour ma part du moins) pour envisager que les vieux canards tentent des retrouvailles (hors de la mare). Cela me fait penser que je do is toujours répondre à la suggestion dont on pourrait rediscuter plus tard en BAL perso.

Amitiés.

--
LSteph


Le jeudi 21 avril 2016 17:48:33 UTC+2, Jacquouille a écrit :
Merci Stéphane.
Comment ça va, depuis le temps?

Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"LSteph" a écrit dans le message de groupe de discussion :


Oupss... bonjour,

Oui merci mon bon Jacquouille j'avais testé sur 100 avant de répondre

Sub repart()
For i = 1 To [A65536].End(xlUp).Row
[B:E].Cells(i) = [A:A].Cells(i)
Next i
End Sub

'LSteph

Le mercredi 20 avril 2016 12:36:42 UTC+2, Jacquouille a écrit :
> Salut Stéphane
> Si tu as 2 min, peux-tu m'expliquer le 100 de ta formule =
> [A1:A100].Cells(i)
> Un tout grand merci
> Bonne fin de journée
> Jacques
> " Le vin est au repas ce que le parfum est à la femme."
> .
> "LSteph" a écrit dans le message de groupe de discussion :
>
>
>
> Bonjour,
>
> (450*400 donc on va faire comme si t'avais plus)
>
> l'important est qu'il n'y ait aucun trou dans la colonne A
> Ouvre VBE et dans le projet insère un module standard puis colle cett e
> macro
> dedans puis execute la ca va répartir entre B et E les cellules de A
>
> Sub repart()
> For i = 1 To [A65536].End(xlUp).Row
> [B:E].Cells(i) = [A1:A100].Cells(i)
> Next i
> End Sub
>
> 'LSteph
>
> Le mercredi 20 avril 2016 10:43:44 UTC+2, Flo21000 a écrit :
> > Bonjour à tous.
> >
> > Tout nouveau sur le forum - après plusieurs heures de recherches, j e ne
> > trouve
> > pas de réponse à mon problème
> > J'ai un listing au format Excel (xlsx) de plus de 450 contacts sous
> > cette
> > forme
> > (1 seule colonne et 1500 lignes : 4 lignes pour chaque contact).
> > 1 - Nom 1
> > 2 -Prénom 1
> > 3 - Société 1
> > 4 - Adresse 1
> > 5 - Nom 2
> > 6 - Prénom 2
> > 7 - Société 2
> > 8 - Adresse 2
> >
> >
> > Je souhaiterais transformer celui-ci comme suit :
> > A / B / C / D
> > 1 Nom 1 Prénom 1 Société 1 Adresse 1
> > 2 Nom 2 Prénom 2 Société 2 Adresse 2
> >
> >
> > J'ai bien trouvé l'astuce pour un contact avec la fonction copier /
> > collage
> > spécial / transposé mais ceci ne fonctionne que pour un contact.
> > Existe-t-il une
> > formule qui me permettrait d'obtenir automatiquement un tableau sous la
> > forme
> > ci-dessus, soit 450 lignes et 4 colonnes par lignes.
> > Merci pour votre attention.
>
>
> ---
> L'absence de virus dans ce courrier électronique a été vérifi ée par le
> logiciel antivirus Avast.
> http://www.avast.com


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com