[Excel] VBA/Ecel : Mise en forme ligne

Fermé
Frostizz - 7 sept. 2009 à 13:26
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 7 sept. 2009 à 18:44
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
A voir également:

12 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
7 sept. 2009 à 13:39
c'est simple, donc...
--
0
Si c'est simple tu peux peut etre me dire comment faire ;)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
7 sept. 2009 à 14:06
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
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
7 sept. 2009 à 15:29
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
Oki Merci, je teste tout de suite.
0
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
7 sept. 2009 à 17:22
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
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
7 sept. 2009 à 17:59
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
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
7 sept. 2009 à 18:44
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