[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
    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
    --
    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.
      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
        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
          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 ?
            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.
              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
                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