Probleme de format nombre dans fichier txt apres export via macro excel

AlCapone

XLDnaute Nouveau
Bonjour à tous,

Je rencontre un petit souci de format sur l'export d'une feuille excel vers un fichier .txt via une macro.

Code ci-dessous :

Sub Fichiertxt ()
Dim fs As Object, a As Object
Dim chemin As String, Fichier As String
Dim var1 As String
Const sep As String = vbTab

Application.ScreenUpdating = False

chemin = "Z:\Partage Machin\Bidule Truc"
Fichier = "ImportFAE_" & Sheets("MOIS DE CLOTURE").Range("J2") & ".txt"

Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile(chemin & "\" & Fichier, True)

With Worksheets("FICHIER IMPORT")
For x = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Cells(x, 14) <> 0 Or .Cells(x, 15) <> 0 Then
For Y = 1 To 15
var1 = var1 & sep & .Cells(x, Y)
Next Y
a.WriteLine Right(var1, Len(var1) - 1): var1 = vbNullString
End If
Cells(x, 10).NumberFormat = "00000000"
Next x
a.Close
End With

Set a = Nothing: Set fs = Nothing

End Sub


Cette macro fonctionne nickel, sauf le format de ma colonne "J" qui me fait sauter le "0" devant mon chiffre. J'ai essayé de mettre au format "000000000" afin de garder mon "0" mais rien du tout.

Ensuite j'ai essayé d'enregistrer ma feuille manuellement via "enregistrer sous", fichier .txt (Séparateur, tabulation), etc. Et là, ça fonctionne, il me garde les "0".

Si une âme charitable avait une petite idée, à faire partager, pour mettre le bon format via la macro ?

Vous en remerciant,

AlCapone
 

Paf

XLDnaute Barbatruc
Re : Probleme de format nombre dans fichier txt apres export via macro excel

Bonjour


peut-être en modifiant la boucle For Y = 1 To... comme ceci:
Code:
For Y = 1 To 15
    var1 = var1 & sep & IIf(Y = 10, Format(.Cells(x, Y), "00000000"), .Cells(x, Y))
Next Y

A+

Edit: Bonjour Caillou

j'avais oublié de préciser que Cells(x, 10).NumberFormat = "00000000" pouvait être supprimé d'autant que si cela avait fonctionné l'instruction intervenait après l'écriture dans le fichier

Attention avec String(8 - Len(Cells(x, Y)), "0") & .Cells(x, Y) toutes les données se verront attribuer des "0" en début de chaine si la longueur est < 8 , et si > 8 => plantage.
 
Dernière édition:

Caillou

XLDnaute Impliqué
Re : Probleme de format nombre dans fichier txt apres export via macro excel

Bonjour,

Autre piste en ajoutant les 0
Code:
For Y = 1 To 15
  var1 = var1 & sep & String(8 - Len(Cells(x, Y)), "0") & .Cells(x, Y)
Next Y
en remplaçant 8 par le nombre de caractères souhaité
dans ce cas, la ligne
Code:
Cells(x, 1).NumberFormat = "00000000"
n'est plus nécessaire !

Caillou
 

AlCapone

XLDnaute Nouveau
[RESOLU] Probleme de format nombre dans fichier txt apres export via macro excel

Paf, Caillou,

Merci pour votre aide.

Paf, tu m'avais déjà énormément évité des tâches chronophages avec tes macros mais cette correction m'enlève, une fois de plus, une gros épine.

Merci beaucoup

A+

AlC
 

Discussions similaires

Réponses
2
Affichages
623

Statistiques des forums

Discussions
314 800
Messages
2 113 066
Membres
111 745
dernier inscrit
hugodet