EXCEL - Données en une ligne. Inutilisables? [Résolu]

-
Bonjour à tous,

Voilà mon problème :
J'ai un pdf avec des listes de matériels. Celui-ci ne vient pas d'un excel et lors de la conversion, il reconnait les colonnes mais pas les lignes... J'ai donc toutes les informations sur une seule ligne...

Il faudrait que j'arrive à remettre mon fichier en tableau correct mais je ne trouve pas de solution...
Le fichier me paraît inutilisable...
Si l'un d'entre vous a une idée, celle-ci est la bienvenue. (en vba de préférence)

Voilà le fichier.
https://www.cjoint.com/c/IGpiHRgV6tk

Merci d'avance.
Afficher la suite 

6 réponses

Messages postés
14279
Date d'inscription
samedi 10 juillet 2010
Statut
Membre
Dernière intervention
17 octobre 2019
3042
0
Merci
Essayez de passer par Word..

Copiez du PDF à Word et ensuite de Word a Excel....
Bonjour,

Je te remercie de ton idée mais ça n'a pas fonctionné...

Merci quand même !

Cdt.
Commenter la réponse de contrariness
Messages postés
658
Date d'inscription
mardi 5 juin 2018
Statut
Membre
Dernière intervention
28 septembre 2019
45
0
Merci
Bonjour,

Apparemment, le tableau est correct :

Cordialement.

Daniel
Bonjour,

Que veux-tu dire par le tableau est correct?

Cdt.
danielc0
Messages postés
658
Date d'inscription
mardi 5 juin 2018
Statut
Membre
Dernière intervention
28 septembre 2019
45 > DarthLighter -
Toutes les données ne sont pas sur une seule ligne. Les dates, par exemple, sont bien encolonnées.

Daniel
Commenter la réponse de danielc0
Messages postés
10
Date d'inscription
dimanche 10 septembre 2017
Statut
Membre
Dernière intervention
15 juillet 2019
0
Merci
Hello,

Il semple qu'il y a des espaces sur chaque ligne avant le retour à la ligne (colonnes AB et EFG).
On pourrait donc jouer sur ces espaces pour scinder les données et les stocker entre chaque espace dans différentes cellules sur une même colonne.
Une proposition, certainement pas la meilleure, et en langage naturel car je ne maîtrise pas le VBA : (pour la colonne AB et EFG) :

initialiser i à 2
initialiser k à 0 (Détecteur de symboles espaces)
Boucle pour les caractères de la cellule A4 (boucler dans les caractères de A4)
Si caractère de la cellule A4 est différent du caractère " " (espace), et k=0 faire :
ajouter le caractère dans la cellule Ai (Ai d'une nouvelle feuille, on écrit ainsi le premier mot)
Fin de si
Si caractère cellule A4 ==" " faire :
Affecter à k la valeur 1 #On a rencontré un espace donc le prochain caractère qui n'en est pas un devra être inscrit dans une nouvelle cellule
Fin de si
Si caractère de la cellule A4 est différent du caractère " " (espace), et k=1 faire :
i=i+1 #On change de cellule, c'est le premier caractère à écrire après le symbole espace
k=0 # Pour qu'au prochain caractère, on rentre à nouveau dans le premier Si.
ajouter le caractère dans la cellule Ai #Qui est donc la nouvelle cellule
Fin de Si.
Fin de Boucle pour.


Pour la colonne EFG, c'est pareil.

Pour la dernière colonne, on remarque qu'on passe d'une ligne à l'autre avec soit 2 espaces, soit 4 (si saut de ligne).
Les données séparées d'espace sur une même ligne en contiennent plus que 4.
Donc l'idée serait de reprendre le même code en modifiant le deuxième Si et le troisième et en en rajoutant un quatrième.
Dans le deuxième Si, on compterait les espaces au lieu de fixer à 1 : donc on écrit k=k+1 et pas k=1
Dans le troisième Si qui sert à changer de cellule, ce changement ne serait qu'activé que si k<=4, ce qui correspond aux sauts de ligne.
Et on rajoute un quatrième Si, qui correspond au passage des mots sur une même ligne
Si caractère de la cellule A4 est différent du caractère " "  et k>4 faire :
ajouter le caractère " " à la cellule Ai #Pour marquer un espace quand même
ajouter le caractère courant à la cellule Ai
k=0 (pour lire les prochains caractères à la façon du premier Si)
Fin de Si


En espérant que cela peut t'aider
Bonjour,

Je te remercie pour le temps que tu as pris pour m'aider.
Ta piste est très intéressante !!
Cependant, les données comportes aussi des vides et c'est là que ça coince.
Exemple : Circuit Breaker lam.

Dans mon exemple, si il y a normalement une cellule qui doit être vide entre Breaker et lam, on ne verra pas la différence concernant les espaces qui séparent les données.

Ce qui veut dire que les lignes qui sont sensé contenir "rien"seront décalées...

Si tu as une idée complémentaire?
En tout cas merci bcp, tu me fais faire un pas de géant.

Cdt.
Pacotillle
Messages postés
10
Date d'inscription
dimanche 10 septembre 2017
Statut
Membre
Dernière intervention
15 juillet 2019
-
Pour les cellules vides, y a t-il un nombre d'espaces qui diffèrent entre deux caractères séparés d'une cellule vide, et deux caractères non séparés d'une cellule vide ? Si oui, alors c'est exploitable, si ce n'est pas le cas, je ne vois pas comment faire.
Il semblerait que via dans un commentaire en dessous ait codé la macro avec les espaces en plus
> Pacotillle
Messages postés
10
Date d'inscription
dimanche 10 septembre 2017
Statut
Membre
Dernière intervention
15 juillet 2019
-
De ce que je vois, non il n'y aurait pas de différence.

Je te remercie grandement de ton aide !!

Cdt.
Commenter la réponse de Pacotillle
Messages postés
11206
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
17 octobre 2019
1457
0
Merci
Bonjour

Avec un macro pour transposer par ligne dans une 2nde feuille
https://mon-partage.fr/f/hmzzWCo7/

Cdlmnt
Via
Bonjour via55,

Merci bcp !!
Comment fais-tu pour appeler la fonction?
Saurais-tu me dire si cela fonctionnera si il y a des cellules qui doivent être vides?

Cdt.
Commenter la réponse de via55
Messages postés
11206
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
17 octobre 2019
1457
0
Merci
Re

ALT+F11 pour voir le code et éventuellement le modifier

Pour lancer le code onglet Developpeur - Macros - selectionner la macro separe et Exécuter
Commenter la réponse de via55
0
Merci
Je vous remercie tous pour votre aide si précieuse !!

Cdt.
Commenter la réponse de DarthLighter