[Excel] VBA/Ecel : Mise en forme ligne

Frostizz -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai sur mon excel une ligne qui fait 2500 cases et je voudrais la transformer en 500 lignes de 5 cases. J'aurai voulu savoir comment faire pour le faire en VBA ou avec une fonction plus rapide qu un copier colle classique ( j'ai pas trop envie de faire une macro avec 500 copie colle)

Merci beaucoup

Frostizz

12 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
c'est simple, donc...
--
0
Frostizz
 
Si c'est simple tu peux peut etre me dire comment faire ;)
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
quand on répond à une de tes question, que la réponse soit bonne ou mauvaise, le minimum de politesse est de dire un petit merci
Mon probleme ne vient pas de fixer le nombre de chiffres significatifs, ca c'est tres simple, mais c'est le fait d'afficher toujours 0 au debut de mon nombre et d'afficher E+00 alors q'excel ne te l affcihe pas normalement.
extrait de la charte:
De la même façon, afin d'encourager les contributions des différents utilisateurs, il est généralement appréciable de remercier les personnes qui vous aident
--
0
Frostizz
 
Desole, je ne pensais pas avoir eu l'air aussi peu polie mais bien sûr que je remercie ceux qui m'aident et c'est super sympa d'aider comme ca.
Je ne m'y referai pas reprendre.
0

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

Posez votre question
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
ci dessous proposition
deb_kig et deb_col : colonne et ligne de la cellule de départ de collecte; retour cellule départ de restitution

testé avec surface réduite (XL 2003) : ligne1 50 colonnes à transposer à 10 lignes 5 colonnes à adapter à ton cas

Sub tranposerligne(deb_lig As Long, deb_col As Long, retour As String)
Dim col As Long, lig As Long
Dim tablo(4, 9)
For lig = 0 To 4
    For col = 0 To 9
        tablo(lig, col) = Cells(deb_lig, deb_col)
        deb_col = deb_col + 1
    Next
Next
Range(retour).Resize(10, 5) = Application.Transpose(tablo)
End Sub

Sub transformer_tableau()
tranposerligne 1, 1, "D20"
End Sub

remplace 9 par 499 et 10 par 500
0
Frostizz
 
Oki Merci, je teste tout de suite.
0
Frostizz
 
Michel, En fait, j'ai meme pas besoin de tranposer les lignes, il faut juste que je fasse un renvoie a la ligne.
En gros, De la suite
1 2 3 4 5 6 7 8 9 10
je veux afficher juste
1 2 3 4 5
6 7 8 9 10

etc.
Je suis sur que c est 15 fois plus simple que ce que tu m qs dit mais en essayaynt de mofifier un peu la macro ca marche pas, t'as moyen de me venir encore en aide ?
Merci
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
et pourtant
J'ai sur mon excel une ligne qui fait 2500 cases et je voudrais la transformer en 500 lignes de 5 cases
que veux tu dire par
il faut juste que je fasse un renvoie a la ligne.

cad 500 lignes dans une cellule ?
0
Frostizz
 
Cette fois-ci, je pensais m'être pas trop mal expliqué mais bon je vais recommencer.
Sur ma ligne 1 j'ai 2500 case remplies, Donc disons une ligne du genre :
Ligne 1 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 2500
Chaque chiffre est dans une case excel. Et je voudrais juste (enfin grand mot car je bloque depuis pas mal de temps dessus) avoir :dans mon tableur :
Ligne 1 : 1 2 3 4 5
Ligne 2 : 6 7 8 9 10
Ligne 3 : 11 12 13 14 15
...
...
Ligne 500 : 2495 2476 2497 2498 2499 2500

Bien sur les ce ne sont pas des chiffres aussi simple mais l'idée est là. Est ce que cette fois ci j'ai été clair?
Merci en tout cas pour ton aide.
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
Bin, c'est ce que fait la macro que je t'ai proposé....

demo avec XL2003: 50 cellules sur la ligne 1
restitution en D20 sous forme de tableau de 5 colonnes sur 10 lignes...
https://www.cjoint.com/?jhr4Rvqvm1
0
Frostizz
 
Alors que ton tableau affiche
1 11 21 31 41
2 12 22 32 42
3 13 23 33 43
4 14 24 34 44
5 15 25 35 45
6 16 26 36 46
7 17 27 37 47
8 18 28 38 48
9 19 29 39 49
10 20 30 40 50
alors que moi je souhaiterai qu'il s affiche

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
26 27 28 29 30
31 32 33 34 35
36 37 38 39 40
41 42 43 44 45
46 47 48 49 50
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
OK, autant pur moi!

Sub tranposerligne(deb_lig As Long, deb_col As Long, retour As String)
Dim col As Long, lig As Long
Dim tablo(9, 4)
For lig = 0 To 9
    For col = 0 To 4
        tablo(lig, col) = Cells(deb_lig, deb_col)
        deb_col = deb_col + 1
    Next
Next
Range(retour).Resize(10, 5) = tablo
End Sub
0