. Sélectionner des lignes dans un .csv

poybi64 Messages postés 11 Date d'inscription lundi 5 septembre 2011 Statut Membre Dernière intervention 11 février 2015 - 5 sept. 2011 à 17:23
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 7 sept. 2011 à 03:02
Bonjour,

J'ai écrit une macro qui m'importe un doc .csv "brut", me le modifie et me le reenregistre en .csv pour qu'il soit lu ensuite par un logiciel de pilotage robotique.

Mon problème est que le nombre de ligne de mon .csv "brut" est variable donc dans ma macro, j'ai fait le cas le pire (384 lignes). Le problème est que si mon ".csv brut" fait moins de 384 lignes, les lignes sans données sont quand même traitées par ma macro et sont donc visibles dans mon .csv issu de ma macro sous forme : ,,,,,,,,,,,,,,

Je souhaiterai donc avec ma macro importer mon ".csv brut" comme avnt, le modifier comme avant mais pouvoir sélectionner les lignes contenant des données uniquement et les enregistrer.

Pourriez-vous m'aider ?

5 réponses

poybi64 Messages postés 11 Date d'inscription lundi 5 septembre 2011 Statut Membre Dernière intervention 11 février 2015
5 sept. 2011 à 17:24
J'ai oublié de dire merci!
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
5 sept. 2011 à 18:27
Bonjour,

Tu peux aussi en mémoire, faire une tableau contenant chacune des lignes de ton fichier.
Comme ça tu pourra traiter ligne par ligne sans problème.

Dim MesLignes as String()
MesLignes=Split(ContenuFichierTexte,vbcrlf)


Puis, tu parcours chacune des lignes

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
poybi64 Messages postés 11 Date d'inscription lundi 5 septembre 2011 Statut Membre Dernière intervention 11 février 2015
6 sept. 2011 à 08:53
merci pour ton aide mais je ne comprend pas....
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
6 sept. 2011 à 20:44
Bonjour,

Tu lis l'intégralité de ton fichier et tu mets le texte dans une variable.
puis tu split sur les retours à la lignes, et tu obtiens un tableau contenant une ligne par élément.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0

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

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
7 sept. 2011 à 03:02
Et si tu importes ton fichier CSV dans un onglet Excel, tu peux toujours faire
Dim nbLignes as long
nbLignes = Sheets("LaFeuilleEnQuestion").Cells(Rows.count, "A").end(xlup).row

For I = 1 to nbLignes
...
Next


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Rejoignez-nous