Séparer les donneées toutes dans la même cellule

gb00000

XLDnaute Nouveau
Bonjour,

S'il y a déjà une réponse quelque part et que j'ai pas trouvé, désolé.

Voici, j'ai bien des fichiers en PDF, que je voudrais enregistrer en XLS pour refaire le tri.
J'ai une colonne de date, un no de facture, une description (essentiellement une adresse), un montant.

La question est pour traiter le tout grâce à une macro une fois que je suis dans excel.

Le problème est que quand je passe de PDF à XLS, il me met toutes les données d'une même colonne dans la même cellule - séparé par un Chr(10), le retour de chariot.
Les largeurs de l'information ne sont pas toujours les mêmes.
Je veux que ça fasse comme quand je le fais en test manuellement, soit que chaque occurrence aie sa propre cellule.

Vous avez quelque chose qui pourrais m'aider ?

Merci à vous
 

gb00000

XLDnaute Nouveau
Re : Séparer les donneées toutes dans la même cellule

Bonsoir, gb00000



Possible, mais ce qui est certain, c'est que vous avez quelque chose qui pourrait nous aider à vous aider.

Allez, un indice : ça se termine par .xls ou par xlsx, voire même par .xlsm

Bonsoir Victor21,

Voici à quoi ressemble les données lorsque je les ai enregistrer en XLS.

:)
 

Pièces jointes

  • Exemple.xlsx
    8.6 KB · Affichages: 24
  • Exemple.xlsx
    8.6 KB · Affichages: 28
  • Exemple.xlsx
    8.6 KB · Affichages: 27

camarchepas

XLDnaute Barbatruc
Re : Séparer les donneées toutes dans la même cellule

Bonjour Victor , GB,

Une solution parmis tant d'autre

La premiére étape est de déterminer le ou les caractères dit de controle ou séparateur, ensuite rien de bien compliiqué ..

Pour le coup le séparateur est le code asc 10 soit un saut de ligne.

Les données sont à déposées dans la feuil1 colonne A à D,
Les données traitées seront disponibles dans la feuil2.


Code:
Sub Eclate()
Dim Source As Variant
Dim Indexe As Long, Coupure As Long, Valeur As Long
Dim critere As String
Dim Tourne As Integer
' Itération sur le Nombre de colonnes à traiter
For Tourne = 0 To 3
  Source = Range("A3").Offset(0, Tourne)
  Indexe = 1
  Valeur = 1
  'Coupage des termes
  Do
   Valeur = Valeur + 1
   'Trouve le début du terme
   Coupure = InStr(Indexe, Source, Chr(10))
   'Calcul fin
   If Coupure > 0 Then
     critere = Mid(Source, Indexe, Coupure - Indexe)
    Else
     critere = Mid(Source, Indexe)
   End If
   'Recopie dans autre feuille
   Sheets("Feuil2").Range("A" & Valeur).Offset(0, Tourne) = critere
   Indexe = Coupure + 1
  Loop Until Coupure = 0
Next Tourne
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 428
Messages
2 088 325
Membres
103 813
dernier inscrit
Lolo280277