[Excel] VBA/Ecel : Mise en forme ligne

Frostizz -  
michel_m Messages postés 18903 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
Configuration: Windows XP Internet Explorer 6.0

12 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    c'est simple, donc...
    --
    0
  2. Frostizz
     
    Si c'est simple tu peux peut etre me dire comment faire ;)
    0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  7. 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
  8. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  9. 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
  10. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  11. 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
  12. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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