Transposer / des paquets de 5 sur une ligne en différente ligne

Fermé
Spoutnik.1 Messages postés 4 Date d'inscription lundi 29 juin 2020 Statut Membre Dernière intervention 29 juin 2020 - 29 juin 2020 à 17:48
Spoutnik.1 Messages postés 4 Date d'inscription lundi 29 juin 2020 Statut Membre Dernière intervention 29 juin 2020 - 29 juin 2020 à 18:38
Bonjour,
je me permets de venir ici pour une question excel.

je bidouille vba sans être avancé, j'avais repris le travail d'une contribution pour transposer / découper et je tente de l'améliorer mais suis bloqué sur une boucle.





Configuration: Windows / Chrome 83.0.4103.116
A voir également:

5 réponses

Yoyo01000 Messages postés 1639 Date d'inscription samedi 2 février 2019 Statut Membre Dernière intervention 7 mars 2022 165
29 juin 2020 à 17:50
Bonjour,

oui ?!
0
Utilisateur anonyme
29 juin 2020 à 17:53
Bonjour
Vos "paquets" de 5 sont séparés comment ?
Les données ont des longueurs fixes, variables ?
La fonction Données, Convertir peut peut être fonctionner parfaitement mais il faudrait "voir" les données ou avoir une copie du fichier (si pas de données privées) avec cjoint.com
A+
0
Spoutnik.1 Messages postés 4 Date d'inscription lundi 29 juin 2020 Statut Membre Dernière intervention 29 juin 2020
29 juin 2020 à 17:55
Bonjour,
je me permets de venir ici pour une question excel.

je bidouille vba sans être avancé, j'avais repris le travail d'une contribution pour transposer / découper et je tente de l'adapter mais suis bloqué sur une boucle.

en gros j'ai 2000 ligne avec 14 * 5 arguments qui se suivent.
je souhaite transformer le tout pour avoir 28000 ligne avec 5 cases

grâce à Michel_m sur ce forum, je sais le faire pour une ligne, mais je n'arrive pas à le faire pour passer à la ligne suivante.
le post sur lequel j'avais trouvé de l'aide:

https://forums.commentcamarche.net/forum/affich-14285438-excel-vba-ecel-mise-en-forme-ligne

ma tentative, presque fructueuse. je pense que le probleme vient du range, mais je ne le comprends pas. si qqun à une idée.


Sub transposerligne(deb_lig As Long, deb_col As Long, ColL As String, LigneL As Long)
Dim nbligne As Long
Dim col As Long, lig As Long
Dim tablo(4, 20)
For nbligne = 0 To 1

For col = 0 To 20
For lig = 0 + nbligne * 5 To 4 + nbligne * 5

tablo(lig, col) = Cells(deb_lig, deb_col)
deb_col = deb_col + 1
Next
Next

Range(ColL & LigneL + nbligne * 5).Resize(5, 5) = Application.Transpose(tablo)

Next

End Sub

-----------------------------------------------------------------------

Sub transformer_tableauligne()
transposerligne 1, 1, "aa", 8
End Sub
'pour des paquets de 5 lignes
'Range(cells(ColL & LigneL) pour faire varier range
0
Spoutnik.1 Messages postés 4 Date d'inscription lundi 29 juin 2020 Statut Membre Dernière intervention 29 juin 2020
Modifié le 29 juin 2020 à 18:11
pour répondre, les données sont dans des cases séparées.

ligne 1: (il y a toujours le meme nombre de paquets de 5)
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
abcde abcde abcde


et je voudrais

12345
12345
12345
abcde
abcde
abcde
0

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

Posez votre question
Spoutnik.1 Messages postés 4 Date d'inscription lundi 29 juin 2020 Statut Membre Dernière intervention 29 juin 2020
29 juin 2020 à 18:38
si ca peut interresser qqun un jour, je pense avoir reussi le test est sur 1 ligne avec 20 cases que je coupe en paquet de 5.

Sub transposerligne(deb_lig As Long, deb_col As Long, ColL As String, LigneL As Long)
Dim nbligne As Long
Dim col As Long, lig As Long
Dim tablo(4, 20)

For col = 0 To 20
For lig = 0 + nbligne * 5 To 4 + nbligne * 5
tablo(lig, col) = Cells(deb_lig, deb_col)
deb_col = deb_col + 1
Next
Next
Range(ColL & LigneL).Resize(5, 5) = Application.Transpose(tablo)


End Sub

Sub transformer_tableauligne()
Dim nbligne As Long
For nbligne = 1 To 4
transposerligne nbligne, 1, "aa", 7 + nbligne * 4


Next
End Sub
'pour des paquets de 5 lignes
'Range(cells(ColL & LigneL) pour faire varier range
'
0