Trier des lignes en colonnes

fifi -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
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. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  2. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    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
  3. manet61 Messages postés 211 Statut Membre 179
     
    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. fifi
       
      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
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  7. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  8. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    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
  9. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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