Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1816 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Enregistrement forcer csv DOS

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Enregistrement forcer csv DOS

n°2240243
trace2pneu
Ah nan, ça j'avale pas !
Posté le 14-10-2014 à 15:04:21  profilanswer
 

Bonjour à vous,
J'ai un petit problème avec une macro que j'essaye de faire en VB (macro simple via Excel 2010).
 
Pour expliquer le fonctionnement global :
- J'ai un premier onglet (une 40aine de lignes et 16 ou 17 colonnes) qui est rempli par des utilisateurs à travers le monde (via des listes de données pour éviter les saisies rocambolesques...)
- Un deuxième onglet avec mes boutons de divers validations
- 2 onglets d'import de référentiels pour des contrôles en local de saisie de données
- Un onglet (je vais l’appeler onglet csv) qui nous intéresse bien plus qui est en partie une recopie du premier onglet (pour les valeurs n'ayant pas besoins d'être retouchées) et pour le reste des transformations de valeurs présentes en feuille 1 pour matcher avec les valeurs attendues par les gens qui vont utiliser ces données pour exploitations plus tard (le fichier csv est envoyé dans une DB)
 
J'ai donc une macro assez simple qui enregistre mon onglet csv justement au format CSV DOS afin d'avoir des points virgules.
 

Code :
  1. rivate Sub Workbook_Open()
  2. ThisWorkbook.RefreshAll
  3.     Calculate
  4.     Sheets("SP_csv" ).Select
  5.     ChDir "C:\Users\*****\Desktop"
  6.     ActiveWorkbook.SaveAs Filename:= _
  7.         "C:\Users\*****\Desktop\*************.csv", _
  8.         FileFormat:=xlCSVMSDOS, CreateBackup:=False


 
Je choisis le CSV DOS car quand je faisais mes tests par le passée, quand j'enregistrais mes feuilles en csv standard, j'avais ce format là :
 

Code :
  1. titre_document;;;;;
  2. 0;0;0;0;0;0;0;0;0;0;0
  3. 0;0;0;0;0;0;0;0;0;0;0
  4. 0;0;0;0;0;0;0;0;0;0;0
  5. ;;;;;;;;;
  6. ;;;;;;;;;
  7. ;;;;;;;;;
  8. ;;;;;;;;;


 
J'ai donc des lignes qui sont créées en trop sans valeurs (car mon onglet csv est initialement remplit de formules de recopie et de transformations de données, et je pense donc que le passage en csv estime que les colonnes étant remplies par des formules ne sont pas vides, or elles sont "vides" de données....)
 
Je voudrais donc que l'enregistrement en csv de la feuille onglet csv sorte un résultat comme ça :  

Code :
  1. titre_document;;;;;
  2. 0;0;0;0;0;0;0;0;0;0;0
  3. 0;0;0;0;0;0;0;0;0;0;0
  4. 0;0;0;0;0;0;0;0;0;0;0


 
A vrai dire, je suis vraiment bloqué pour ce truc.
Une chose étonnante aussi, les lignes en "trop" dans le csv (les lignes composées uniquement de ;;;;;;;) disparaissent quand j'enregistre le fichier csv en csvDOS.
 
En espérant trouver des gens qui sauront me répondre,
 :jap:

mood
Publicité
Posté le 14-10-2014 à 15:04:21  profilanswer
 

n°2240289
Marc L
Posté le 14-10-2014 à 19:35:44  profilanswer
 

 
           Bonjour,
 
           soit modifier les formules pour afficher un zéro à la place de rien soit nettoyer les lignes vides
 

n°2240293
trace2pneu
Ah nan, ça j'avale pas !
Posté le 14-10-2014 à 21:03:30  profilanswer
 

Bonjour,
J'ai tenté de faire un recopie via VB de mon onglet qui contient les formules vers un autre onglet (qui ne contient donc plus de formules).
Je vais tenter de mixer dans le code cet aspect et le fait d'enregistrer ce nouvel onglet dans un nouveau classeur qui sera enregistré en CSV DOS.  
J'aurais plus de retours demain car je m'arrache les cheveux depuis 2 jours là dessus et je sens que j'ai besoin d'une bonne nuit de sommeil...
 
Bref, je reste tout ouïe si vous avez des recommandations.  :whistle:  
 
Concernant le "nettoyage" des lignes vides, comment cela est possible ? Il faudrait parser le fichier depuis les dernières lignes et si il n'y a que des points virgules, supprimer les lignes, mais je n'ai absolument aucune idée sur comment le faire par code (oui oui, je suis très mauvais en code...).
Merci  :jap:

n°2240326
Marc L
Posté le 15-10-2014 à 09:27:20  profilanswer
 

 
           J'évoquais nettoyer les lignes vides à la source …
 
           Sinon il est possible de créer le fichier texte en VBA pur, consulter dans son aide intégrée l'instruction Print # et son exemple …
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Enregistrement forcer csv DOS

 

Sujets relatifs
Forcer l'intégration d'une police sur un site InternetBoucle et opération sur string en MS-DOS
Enregistrement checkbox dans ArrayForcer format fenêtre lecteur vidéo web
[Resolu][JS/HTML] Enregistrement login / pass navigateur avec pas[...]Afficher le nombre de résultat pour chaque enregistrement php
Enregistrement du choix d'image de fondScript Dos à transformer en SHELL
Macro d'enregistrement WordProblème enregistrement canvas avec photo en fond (security error)
Plus de sujets relatifs à : Enregistrement forcer csv DOS


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR