[Excel] VBA/Ecel : Mise en forme ligne

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
Configuration: Windows XP Internet Explorer 6.0

12 réponses

  1. Contributeur
    c'est simple, donc...
    --
    0
    1. Si c'est simple tu peux peut etre me dire comment faire ;)
      0
      1. Contributeur
        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
        1. 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
          1. Contributeur
            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
            1. Oki Merci, je teste tout de suite.
              0
              1. 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
                1. Contributeur
                  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
                  1. 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
                    1. Contributeur
                      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
                      1. 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
                        1. Contributeur
                          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