Problème ligne colonne VBA

Ereudet Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   -  
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai créé une macro VBA qui va piocher certaines valeurs dans un fichier .txt et crée un fichier .csv dans lequel il copie certaines valeurs du .txt, je voudrais avoir des valeurs dans les colonnes A, B et C de mon fichier .csv, mais tout va dans la colonne A, comment faire SVP, voici un extrait de ma macro :

fcsv.[A1] = "Sensor"
fcsv.[A2] = "Dossier"
fcsv.[A3] = "Commentaire"
fcsv.[A5] = DateSerial(Year(nn), Month(nn), 1) - 1
fcsv.[A6] = DateSerial(Year(nn), Month(nn) + 1, 1) - 1
[A5].NumberFormat = "dd/mm/yyyy"
[A6].NumberFormat = "dd/mm/yyyy"
fcsv.[B1] = "Index EDF Mois-1"
fcsv.[B2] = "Previsionnel"
fcsv.[B3] = "Comnentaire"
fcsv.[B4] = "3"
fcsv.[C1] = "Index EDF Mois"
fcsv.[C2] = "Previsionnel"
fcsv.[C3] = "Comnentaire"
fcsv.[C4] = "4"
fcsv.[C5] = ftxt.[C2] * 1000
fcsv.[B6] = ftxt.[C2] * 1000

En fait ça me met tout en colonne A, et ce qui devrait être en colonne B ou C se retrouve quand même dans la colonne A, voici ce que j'ai dans mon .csv :

En A1 : Sensor,Index EDF Mois-1,Index EDF Mois
En A2 : Dossier,Previsionnel,Previsionnel
En A3 : Commentaire,Comnentaire,Comnentaire
En A4 : ,3,4
En A5 : 31/05/2018,,2382047000
En A6 : 30/06/2018,2382047000,

En fait, à la place de me changer de colonne, il ma rajoute une virgule mais reste dans la colonne A...

Merci d'avance pour votre aide !
A voir également:

3 réponses

JuanLucas38 Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   4
 
J'ai une solution mais je ne l'ai jamais fais en macro.
Je te donne la solution manuelle peut être que tu trouveras le code qui va bien.

Sélectionnes les données de la colonne A (avec la souris bien sur)
De A1 à A6 pour ton cas
Dans l'onglet "Données", Convertir, Délimité, Suivant, Sélectionnes la virgule, Terminé.

Tes données seront dans les colonnes souhaitées.

Vois si tu peux retranscrire le code.
0
Ereudet Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
Ok merci, c'est justement de retranscrire cette solution en code que je trouve compliqué, tu as une idée ? Merci d'avance :)
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

C'est normal :
CSV = Comma Separated Value
i.e. : Valeurs séparées par des virgules

PS : ouvres ton fichier csv avec LibreOffice tu verras qu'il est correct.

0
Ereudet Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
D'accord merci. Comment faire pour que les valeurs apparaissent bien en colonnes B et C, en restant en .csv ? Merci d'avance
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Au lieu d'ouvrir le fichier csv, faire :
Données/A partir du fichier texte/Délimité/virgule
0
JuanLucas38 Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   4 > Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention  
 
Le code est celui-ci. Par contre à toi d'adapter les cellules A1:A6 (données de départ)

Range("A1:A6").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True


Idem pour Array(1,1), Array(2,1) etc... le premier chiffre étant la colonne 1=A, 2=B 3=C etc... et le second la ligne
Vu que tu as 3 valeurs dans les , (virgules) il faut les 3 Array si tu en as plus il faudra les ajouter.
0
Ereudet Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
Le problème c'est que ce n'est pas moi qui vais ouvrir le fichier, c'est un programme qui va l'ouvrir pour l'intégrer dans une base de données, ma macro crée plus d'une centaine de fichier csv chaque mois, qui sont exportés sur un ftp, puis il sont ensuite intégrés dans une base de données, mais il faut que la forme soit correcte, avec les bonnes infos dans les différentes cellules des colonnes A, B, C. Donc là je l'ouvre à la main juste pour regarder que le forme est correcte. Pas évident je sais :/ si vous avez une autre idée, je suis preneur ! Merci :)
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Si c'est toi qui crée les csv, utilises comme séparateur le point virgule à la place de la virgule, il n'y aura pas de problème pour l'ouvrir avec Excel (à condition que ce soit Excel version française).
Sinon pour être plus universel il suffit d'utiliser le format .txt (plutôt que csv qui est spécifique à chaque pays)
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Pour ouvrir un csv anglais (séparé par des virgules) :
Set wbk = Workbooks.Open(Filename:=nomFichier, Format:=2, local:=False)


0