Transformer descolonnes en lignes mais en conservant la première

Résolu
clement_a -  
via55 Messages postés 14396 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je me tourne vers vous pour vous poser une petite question...

Je suis à la recherche d'une méthode pour transformer des colonnes en lignes (pour cela il y a l'option transposer me diriez vous) mais il se trouve que mon problème est un petit peu plus compliqué que ça.

En fait, j'ai aujourd'hui plusieurs ligne avec chacune plusieurs valeurs en colonne à la suite... du style

Ref 1 / Val 1/ Val2 / Val 3
Ref 2 / Val 1/ Val 2/ Val 3
Ref 3 / Val 1/ Val 2... etc

je souhaiterai passer tout ça en :

Ref1 / Val 1
Ref1 / Val 2
Ref1 / Val 3
Ref2/ Val 1
Ref 2/ Val 2

etc...

Est ce que par hasard vous auriez des idées (concrètement j'ai 1800 lignes avec chaque fois plusieurs valeur... Je me vois mal faire ça à la main...

Merci d'avance pour votre aide !

5 réponses

  1. Le Pingou Messages postés 12290 Date d'inscription   Statut Contributeur Dernière intervention   1 481
     
    Bonjour,
    Merci, et bonne suite.

    1
  2. Le Pingou Messages postés 12290 Date d'inscription   Statut Contributeur Dernière intervention   1 481
     
    Bonjour,
    C'est bien 1800 lignes ...! Et combien de colonnes au maximum ?

    Salutations.
    Le Pingou
    0
  3. clement_a
     
    Maximum 23 colonnes (mais pas toujours :)) des fois il y en a moins (et en réalité ce n'est pas une colonne de référence mais 6 colonnes l'une à côté de l'autre)

    En fait ce fichier un peu particulier vient du fait que j'ai extrait d'un champs texte une série de code (dont les nombres peuvent aller de 0 à 23 (ce qui nous donnes les 23 colonnes)

    Je sais pas si c'est très clair ce que je raconte :)
    0
  4. via55 Messages postés 14396 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Faisable par macro

    Exemple de macro pour references en colonne A dd'une feuille 1 à transposer sur une feuille 2

    Macro à mettre dans le worksheet de la feuille 1 (ALT F11 pour ouvrir l'éditeur)

    Sub transposer()
    Dim DernLigne As Long
    DernLigne = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
    Dim DernCol As Integer

    For n = 2 To DernLigne 'si les referneces commencent en ligne 2 , à adapter

    DernCol = Cells(n, Cells.Columns.Count).End(xlToLeft).Column
    For t = 2 To DernCol
    x = x + 1
    Sheets(2).Cells(x, 1) = Sheets(1).Cells(n, 1)
    Sheets(2).Cells(x, 2) = Sheets(1).Cells(n, t)
    Next t

    Next n
    End Sub

    Cdlmnt
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. clement_a
     
    Waw mais c'est beau ça !

    Merci beaucoup, je ne connais pas le VBA, mais je voudrai savoir en fait j'ai mes 11 premières colonnes qui doivent rester telles quelles et j'aurai aussi 3 colonnes à conserver en clair ça devrait faire :

    Ref 1 (1)/ Ref 1 (2)/.../ Ref 1(9) / Val 1( 1) / Val 1(2) / Val1(3) / Val2(1) / Val 2(2) / Val2(3)

    Et je voudrai que ça fasse
    Ref 1 (1)/ Ref 1 (2)/.../ Ref 1(9) / Val 1( 1) / Val 1(2) / Val1(3)
    Ref 1 (1)/ Ref 1 (2)/.../ Ref 1(9) / Val 2(1) / Val 2(2) / Val2(3)

    Si ça se fait rapidement ... mais je vais essayer de voir ce que je peux faire grâce à votre code ! Merci beaucoup
    0
    1. via55 Messages postés 14396 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Ca n'a plus grand chose à voir avec l'énoncé de départ !
      Je ne comprends rien tu parles de 11 colonnes à conserver en clair et tu ne donnes en exemple que 9 colonnes (Ref 1 à 9) , après il y a 6 colonnes de valeurs groupées par 3 et tu parles de 3 colonnes à conserver enclair ? qu'entends tu par la!!??

      Le plus simple serait de poster un exemple allégé de ton fichier (5 lignes suffisent) , en mettant dans une seconde feuille le résultat que tu souhaites obtenir à partir de la 1ere
      Post ton fichier sur cjoint.com et indiques ici ensuite le lien fourni, on y verra plus clair pour adapter la macro

      Cdlmnt
      0
    2. clement_a
       
      Voici mon fichier

      https://mon-partage.fr/f/AQdS0ySk/

      Je reconnais que ce que je demande ne ressemble plus trop à la question que j'ai posé à la base. Désolé
      0
    3. via55 Messages postés 14396 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Dans ce cas pas besoin de macro

      https://www.cjoint.com/?0Gvr1c6c3Qh

      Copier la plage A2:O7 de la feuille 3 avec les formules
      La coller en bonne place dans la feuille de report de ton classeur (la feuille de Données étant la Feuil1)
      Reselectionner cette plage A2:O7 et l'étirer au bas de la colonne sur au moins 300 lignes

      Cdlmnt
      0
    4. Le Pingou Messages postés 12290 Date d'inscription   Statut Contributeur Dernière intervention   1 481
       
      Bonjour,
      Excusez-moi du dérangement...!
      Salutatioins
      0
    5. via55 Messages postés 14396 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Bonjour Le Pingou

      Cdlmnt
      0