EXCEL - Données en une ligne. Inutilisables?
Résolu
DarthLighter
-
danielc0 Messages postés 1859 Date d'inscription Statut Membre Dernière intervention -
danielc0 Messages postés 1859 Date d'inscription Statut Membre Dernière intervention -
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.
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:
- EXCEL - Données en une ligne. Inutilisables?
- Partager photos en ligne - Guide
- Aller à la ligne excel - Guide
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Mètre en ligne - Guide
6 réponses
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) :
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
En espérant que cela peut t'aider
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.
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.
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
Il semblerait que via dans un commentaire en dessous ait codé la macro avec les espaces en plus
Bonjour
Avec un macro pour transposer par ligne dans une 2nde feuille
https://mon-partage.fr/f/hmzzWCo7/
Cdlmnt
Via
Avec un macro pour transposer par ligne dans une 2nde feuille
https://mon-partage.fr/f/hmzzWCo7/
Cdlmnt
Via
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je te remercie de ton idée mais ça n'a pas fonctionné...
Merci quand même !
Cdt.