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

  • Initiateur de la discussion Initiateur de la discussion gb00000
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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

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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
286
Retour