Trier des lignes en colonnes

fifi -  
eriiic Messages postés 25847 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
A voir également:

8 réponses

Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 140
 
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
Bidouilleu_R Messages postés 1209 Statut Membre 295
 
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
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
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
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 140
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 140
 
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
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 140
 
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
Raymond PENTIER Messages postés 71870 Date d'inscription   Statut Contributeur Dernière intervention   17 402
 
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
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
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