EXCEL - Données en une ligne. Inutilisables?

Résolu/Fermé
DarthLighter - Modifié le 15 juil. 2019 à 10:33
danielc0 Messages postés 838 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 23 avril 2024 - 15 juil. 2019 à 12:23
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.
A voir également:

6 réponses

contrariness Messages postés 19433 Date d'inscription samedi 10 juillet 2010 Statut Membre Dernière intervention 26 avril 2024 6 052
15 juil. 2019 à 10:51
Essayez de passer par Word..

Copiez du PDF à Word et ensuite de Word a Excel....
0
DarthLighter
15 juil. 2019 à 10:57
Bonjour,

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

Merci quand même !

Cdt.
0
danielc0 Messages postés 838 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 23 avril 2024 74
15 juil. 2019 à 10:53
Bonjour,

Apparemment, le tableau est correct :

Cordialement.

Daniel
0
Bonjour,

Que veux-tu dire par le tableau est correct?

Cdt.
0
danielc0 Messages postés 838 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 23 avril 2024 74 > DarthLighter
15 juil. 2019 à 12:23
Toutes les données ne sont pas sur une seule ligne. Les dates, par exemple, sont bien encolonnées.

Daniel
0
Pacotillle Messages postés 12 Date d'inscription dimanche 10 septembre 2017 Statut Membre Dernière intervention 6 avril 2020 5
Modifié le 15 juil. 2019 à 11:05
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
0
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.
0
Pacotillle Messages postés 12 Date d'inscription dimanche 10 septembre 2017 Statut Membre Dernière intervention 6 avril 2020 5
Modifié le 15 juil. 2019 à 11:26
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
0
DarthLighter > Pacotillle Messages postés 12 Date d'inscription dimanche 10 septembre 2017 Statut Membre Dernière intervention 6 avril 2020
15 juil. 2019 à 11:39
De ce que je vois, non il n'y aurait pas de différence.

Je te remercie grandement de ton aide !!

Cdt.
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
15 juil. 2019 à 11:12
Bonjour

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

Cdlmnt
Via
0
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.
0

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

Posez votre question
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
15 juil. 2019 à 11:44
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
0
DarthLighter
15 juil. 2019 à 11:45
Merci bcp !

Cdt.
0
DarthLighter
15 juil. 2019 à 11:46
Je vous remercie tous pour votre aide si précieuse !!

Cdt.
0