Création fichier txt via PRINT - espaces non désirés

Bonjour à tous,

Tout d'abord, merci à vous tous de m'accueillir sur ce forum. Je ne compte plus les fois ou l'un de vous m'a dépanné, ou donner une idée sans même le savoir :)

Mais aujourd'hui, j'ai un souci dont je ne trouve pas la réponse :

Je crée un fichier txt à partir d'une feuille Excel grâce à la fonction PRINT (merci au forum :)). Jusque là pas de souci, il se génère bien. Mais un "petit" problème est apparu :

Dans ma première colonne, lorsque j'ai du texte, il se copie correctement dans le txt, mais lorsqu'il s'agit dune donnée chiffrée, un espace s'insère avant.

Edit : Et ceci ne se produit pas lorsque la donnée chiffrée est dans une autre colonne.

Après plusieurs tests, un espace s'insère AVANT et APRES une donnée chiffrée, quelque soit sa position. Serait-ce donc un problème de format? Excel reconnait les données du style "nombre" lors du PRINT et insère des espaces avant et après?
Pourtant, mes données sont toutes au format "Standard" dans Excel

Ci-joint un petit fichier exemple avec la macro :

8classeur1.xlsm (16.73 Ko)

Avez vous une idée du pourquoi? et comment régler ce problème ?

Merci d'avance à tous pour votre aide.

PS : Je n'ai pas le choix d'avoir cette donnée dans la première colonne, puisque c'est un fichier txt pour import dans un autre système ensuite.

bonjour,

essaie ceci

Sub test()

    Dim Chaine As String
    Dim Fichier As String, ligne As String
    Fichier = "C:\Users\rou\Desktop\Effectifs_" & Year(Now) & "_" & semaine & "1.txt"
    Dim f As Integer
    f = FreeFile
    Dim derniereligne As String

    'Détermination de la dernière ligne
    ThisWorkbook.Sheets("Liste").Activate
    derniereligne = Cells(Rows.Count, 1).End(xlUp).Row

    Open Fichier For Output As #f
    For i = 1 To derniereligne
        ligne = Cells(i, 1) & "," & Cells(i, 2) & "," & RDM & "," & Cells(i, 4) & "," & Cells(i, 5)
        Print #f, ligne
    Next

    Close #f

End Sub

Bonjour H2so4,

Effectivement, cela fonctionne.

Cela voudrait donc dire que la fonction PRINT détecte bien les nombres et le texte de façon différente et insère des espaces avant et après s'il détecte un nombre.

Info intéressante à savoir pour une prochaine fois :)

Merci beaucoup

Bonjour,

Cela voudrait donc dire que la fonction PRINT détecte bien les nombres et le texte de façon différente et insère des espaces avant et après s'il détecte un nombre.

c'est l'utilisation du ";" qui ajoute des espaces autour d'une donnée numérique dans l'instruction print.

Rechercher des sujets similaires à "creation fichier txt via print espaces desires"