Trier des lignes en colonnes

Bonjour,
J'ai un fichier texte venant d'une bibliotheque que je voudrai répartir en colonne dans exel.
Il se présente comme ceci

Les dessins fous
DELAFOSSE C.
Gallimard / Mes premières déco
75
D
Peinture / Documentaire /clown / dompteur /fermier / bûcheron / magicien / sirène
4

Les portraits
DELAFOSSE C.
Gallimard / Mes premières déco
75
D
Peinture / Documentaire /portraits
5

La Carotte
BOURGOING P. DE
Gallimard / Mes premières déco
58
BP
Nature / Documentaire /
6

La maison
DELAFOSSE C.
Gallimard / Mes premières déco
69
D
Fabriquer / Documentaire / apartement / caverne / igloo / tipi / tente / roulotte / jouque / péniche / station orbitale
7

Les lignes reviennent régulierement toutes les 8 lignes :TITRE AUTEUR EDITEUR COTE COTE DESCRIPTEUR
je souhaiterais trier tout ceci en colonne .
Merci
Configuration: Windows XP
Firefox 2.0.0.14

8 réponses

  1. Salut,

    Mets un exemple de ce que tu reçois et transpose le résultat attendu sur une feuille excel afin que l'on juge tes attentes et joints cette feuille avec le lien ci dessous et dis nous si tu a déjà travaillé des macro

    https://www.cjoint.com/

    A+
    0
    1. met ce code dans un module
      et fais un premier essai

      Sub conv_Auto()

      Dim I As Integer

      Dim TextLine As String

      Dim Nom_Fichier As String
      Dim CompteurLigne As Integer
      Dim CompteurColonne As Integer

      Nom_Fichier = Application.GetOpenFilename
      If Nom_Fichier = "Faux" Then Exit Sub
      If VarType(Nom_Fichier) = vbBoolean Then Exit Sub ' (annulation)

      Sheets("Feuil1").Select
      Range("a2").Select

      Open Nom_Fichier For Input As #1

      CompteurLigne = 0
      CompteurColonne = 0

      Do While Not EOF(1) ' tant que l'on est pas à la fin du fichier

      CompteurColonne = CompteurColonne + 1
      Line Input #1, TextLine
      ' je suppose que tu dois traiter 7 ligne en colonne
      If CompteurColonne > 7 Then
      ' on a remplit 7 colonne alors on passe une ligne
      CompteurLigne = CompteurLigne + 1
      CompteurColonne = 0
      End If
      Range("A1").Offset(CompteurLigne, CompteurColonne).Value = TextLine

      Loop

      Close #1

      End Sub
      0
      1. Bonjour,

        La question a déjà été posée il y a quelques jours. Faites un essai avec le modèle joint, à vous de l'adapter à votre feuille de calcul.

        https://www.cjoint.com/?lerDIQJshC

        A+
        0
        1. je ne sais pas faire cela ni a t il pas de solution avec trier ou filtrer???il s'agit de prendre une ligne sur 8 et de recommencer plusieur fois l'operation
          0
      2. Salut,

        Dans le cas présent si je comprends bien il faut pour commencer passer par données et convertir pour séparer le contenu de certaines cellules et transposer, avec la difficulté que le nombre de mot à séparer est différent.

        C’est pour cela que j’ai demandé qu’un exemple soit joint avec le lien ci-dessous,
        Clic sir le lien, parcourir, sélectionner le fichier exemple autoriser l’accès et copier sur le prochain post le lien qui à été créé

        https://www.cjoint.com/

        A+
        0
        1. Salut,

          J'ai l'impression que mon dernier post n'est pas passé alors je renouvelle

          Dans le cas présent si je comprends bien il faut pour commencer passer par données et convertir pour séparer le contenu de certaines cellules et transposer, avec la difficulté que le nombre de mot à séparer est différent.

          C’est pour cela que j’ai demandé qu’un exemple soit joint avec le lien ci-dessous,
          Clic sir le lien, parcourir, sélectionner le fichier exemple autoriser l’accès et copier sur le prochain post le lien qui à été créé

          https://www.cjoint.com/?lerDIQJshC

          A+
          0
          1. Salut,

            J’ai posté deux messages qui se sont perdus dans les méandres du forum, alors je réédite,
            Dans le cas présent, si j’ai tous compris, il y a une transposition et également il faut convertir les données multiples d’une cellule. Jusque la tout peut se régler par formule, mais il doit y avoir création de ligne pour insérer toutes les 8 lignes la transposition et la je ne vois que le code VBA.
            Le plus simple afin de bien cerner le problème et si le demandeur veut bien mettre sur le forum un exemple concret d’une part et le résultat attendu avec des annotations grace au lien ci-dessous, en cliquant sur le lien, parcourir, sélectionner le fichier exemple, autoriser l’accès et en faisant un copier du lien généré et le coller sur un prochain post
            https://www.cjoint.com/?lerDIQJshC

            A+
            0
            1. Tu fais [crtl]+A puis [crtl]+C pour sélectionner tout le document et faire "copier"
              Tu ouvres une feuille Excel vierge et tu fais [crtl]+V pour "coller"
              Tu sélectionnes A1:A7 première série de données
              Tu fais [crtl]+C pour copier la sélection
              Tu sélectionnes B1:G1 où seront déplacées les données
              Tu fais Collage spécial/Transposé pour obtenir les données en colonnes

              Tu recommences toutes les 8 lignes
              Tu supprimes les groupes de 7 lignes vides entre 2 lignes renseignées
              0
              1. Contributeur
                Bonjour tout le monde,

                On peut faire ainsi :
                - les données à partir de la ligne 2, mettre un titre de colonne en A1 etB1
                - en B2: =DECALER($A2;COLONNE()-1;0)
                - tirer la formule vers la droite (elle doit être sur 6 colonnes)
                - sélectionner B2:G9
                - tirer cette sélection vers le bas autant que nécessaire (avec le petit carré noir en bas à droite de la sélection)
                - garder toute la sélection et copier/collage spécial valeurs
                - sélectionner colonnes A et B, menu 'données / filtrer / filtre automatique'
                - filtrer (vides) en colonne B
                - sélectionner la ligne 3 puis shift+clic sur la dernière ligne pour les sélectionner
                - clic droit et 'supprimer la ligne'
                - supprimer le filtre automatique

                Un peu long à expliquer mais ça se fait facilement

                eric
                0