Microsoft 365 Boucle pour créer un import de fichier csv

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 !

Columbo

XLDnaute Nouveau
Bonjour à tous,
J'ai un fichier qui cumule des informations sur plusieurs factures (onglet test)
Le résultat que je dois avoir pour chaque facture dans l'onglet Data :
1 ligne E par facture
1 ligne RH par ligne de facture
1 ligne RU par ligne de facture
La macro que je viens de créer boucle bien sur les lignes RH et RU, mais la boucle sur la ligne E ramène également une ligne à blanc (en trop)
Savez-vous comment corriger le code pour que dans la boucle sur la ligne E ne ramène plus une ligne à blanc?

Cordialement
 

Pièces jointes

Solution
Est-ce qu'il existe un moyen de ne pas créé les points virgules à la fin?
Normalement dans un fichier CSV on ne touche pas aux points-virgules en fin de ligne.

Mais on peut facilement les supprimer, voyez ce fichier (5) et cette boucle :
VB:
        For k = Len(texte) To 1 Step -1
            If Right(texte, 1) = ";" Then texte = Left(texte, k - 1) Else Exit For
        Next k
Bonjour job75,
La macro bloque à ce niveau :
"Open ThisWorkbook.Path & "\FACT_" & tablo(i, 2) & "_" & tablo(i, 4) & ".csv" For Output As #x 'ouverture en écriture séquentielle"
Est-ce que tu sais pourquoi et comment corriger le blocage?
Merci
 

Pièces jointes

Très bizarre, effectivement quand je télécharge le fichier que j'ai mis, les 6 fichiers se créent sans problème.
D'ailleurs, une fois que les fichiers CSV sont crées, il y a sur chaque ligne de chaque fichier des ";" (sauf la 1ère ligne). Il s'agirait de "retour charriot".
Est-ce qu'il y a un moyen de ne pas les créer au moment où la première macro se lance?
Merci
 
Bonjour Columbo,

J'avions point vu :
D'ailleurs, une fois que les fichiers CSV sont crées, il y a sur chaque ligne de chaque fichier des ";" (sauf la 1ère ligne). Il s'agirait de "retour charriot".
Les points-virgules ne sont pas du tout des retours chariot mais les séparateurs de colonnes (champs).

Ma macro en crée 9 sur chaque ligne (y compris la 1ère) puisqu'il y a 10 colonnes.

Je ne vois pas le rapport avec votre "blocage" d'ailleurs si je comprends bien les 6 fichiers CSV se créent !!!

A+
 
Bonjour job75,
Le blocage apparait chez moi lorsque le fichier se trouve ailleurs que dans le dossier téléchargement. Dans le fichier téléchargement la macro créée bien les 6 fichiers.
Les fichiers CSV sont ensuite intégrés sur une plate-forme qui les rejettent à cause des points virgules à la fin.
Est-ce qu'il existe un moyen de ne pas créé les points virgules à la fin?
Merci
 
Est-ce qu'il existe un moyen de ne pas créé les points virgules à la fin?
Normalement dans un fichier CSV on ne touche pas aux points-virgules en fin de ligne.

Mais on peut facilement les supprimer, voyez ce fichier (5) et cette boucle :
VB:
        For k = Len(texte) To 1 Step -1
            If Right(texte, 1) = ";" Then texte = Left(texte, k - 1) Else Exit For
        Next k
 

Pièces jointes

Bonjour Columbo,

Je ne vois vraiment pas pourquoi chez vous le dossier Téléchargement se différencierait des autres dossiers.

Dans tous les cas la macro doit créer les fichiers CSV dans ThisWorkbook.Path.

Faites un test : avant la ligne qui beugue: mettez l'instruction MsgBox ThisWorkbook.Path

Qu'indique exactement le message ?

A+
 
- 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
40
Affichages
2 K
Réponses
2
Affichages
404
Retour