Exporter donnée en .txt

piegre

XLDnaute Junior
Bonjour à tous,

Ça fait longtemps que j'ai posté un message chez vous, je commençai à me débrouiller ^^ mais je re-bloque.

J'ai une plage de donnée , avec des formules SI que j'importe dans un fichier .txt, cependant les SI où la condition est fausse, il y a un blanc ( comme ça : " ").

Quand j'importe la plage dans le fichier text, les blancs sont également dans le fichiers text et je voudrais ne pas les importer.

Voici mon code :

Code:
    Sheets("PLAN donnée").Activate
    Range("W1:W200").Copy
    Workbooks.Add
    Range("A1").PasteSpecial xlPasteValues
    ChDir "\\INFORMATION"
    ActiveWorkbook.SaveAs Filename:="\\INFORMATION\Toto_PLAN.txt", _
        FileFormat:=xlUnicodeText, CreateBackup:=False
    ActiveWorkbook.Close SaveChanges:=False
 

piegre

XLDnaute Junior
Re : Exporter donnée en .txt

Je suis bien d'accord avec toi Roland.

J'ai mis les même contenu du fichier principal dans le fichier test, et cela fonctionne bien.

J'ai vérifié les formats de cellules sur le classeur principal, elles sont en standards.Je fouille le classeur pour trouver la petites bêtes ;)
 

piegre

XLDnaute Junior
Re : Exporter donnée en .txt

Je mets en PJ le fichier test avec des valeurs du fichier principal, et en faite cela ne fonctionne pas.Les guillemet apparaissent toujours.
 

Pièces jointes

  • test export.xlsm
    16.7 KB · Affichages: 31
  • test export.xlsm
    16.7 KB · Affichages: 36

Roland_M

XLDnaute Barbatruc
Re : Exporter donnée en .txt

re

alors là je comprends mieux !
il ne s'agit pas de simple texte mais de chaînes qui contiennent des caractères de séparation les virgules et les point virgules

c'est cela qui cause l'ajout auto des guillemets, sinon tes chaînes seraient formatées différemment !
ici ce sont les virgules qu'ils faudrait remplacer !
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Exporter donnée en .txt

re

pour que tu comprennes j'ai mis une fonction qui remplace les virgules par des ( ; ) et là tu n'as plus les guillemets

le soucis ce sera des point-virgules là où il y avait des virgules, sinon il faudra garder les guillemets !
si tu connaissais l'export de données par fichier séquentiel tu comprendrais le pourquoi !?

voir ton fichier avec cette fonction !

EDIT: je reviens avec un autre exemple !
 

Pièces jointes

  • test export_Rol.xlsm
    16.5 KB · Affichages: 28
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Exporter donnée en .txt

re

voir la version 2 selon ton origine avec fichier séquentiel
et voir la version 3, la plus simple avec fichier séquentiel
 

Pièces jointes

  • test export_Rol2.xlsm
    16.4 KB · Affichages: 31
  • test export_Rol3.xlsm
    16.6 KB · Affichages: 33
Dernière édition:

piegre

XLDnaute Junior
Re : Exporter donnée en .txt

Efgé, regarde le fichier du post #17 pour voir ce que ça donne quand ça marche pas mais Roland a trouvé la solution.

Roland, les codes VB des fichiers Rol et Rol2 fonctionnent à merveille sur mon fichier principale et donne exactement ce que je souhaite quand j'exporte.Le fichier Rol3 ne fonctionne pas sur mon fichier.

Je vous remercie vraiment de votre aide.
 

Roland_M

XLDnaute Barbatruc
Re : Exporter donnée en .txt

re

@piegre

je tiens à préciser que l'exemple donné par Efgé fonctionne parfaitement !
je viens seulement de l'essayer, si je l'avais essayé avant je t'aurai dirigé dessus car c'est le bon principe.

quand tu dis ça fonctionne pas c'est peut être parce qu'il a ajouté la colonne A aux données en D
et je pense que c'est cela qui t'a perturbé !? mais ça fonctionne bien !
la seule différence et que tu ne voulais que la colonne de données en D

le principal c'est que ça tourne !

mais je tenais à le préciser, car Efgé fait parti de ceux qui me font évoluer sur ce forum
et je ne permettrai pas de remettre en cause leurs codes !

bonne journée à vous !
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : Exporter donnée en .txt

Bonjour


@Roland_M


Merci pour ces compliments, mais je ne m'étai pas senti "en cause", pas d'inquètude :D )
Pour finaliser, et maintenant que j'ai compris qu'il ne faut récupérer que la colonne D (il est lent à la comprenette parfois le Efgé :D ) on peux voir ce code, forcément plus court puisque une boucle de moins:


VB:
Option Explicit
Sub Export_Efge()
Dim i&, j&
Dim Dsktp$, Nm$
Dim DData As Variant




With Sheets("feuil1")
DData = .Range(.Cells(1, 1), .Cells(.Cells(.Rows.Count, 1).End(3).Row, .UsedRange.Columns.Count))
End With


Dsktp = CreateObject("WScript.Shell").specialFolders("Desktop")
Nm = Environ("UserName")


Open Dsktp & "\" & Nm & ".txt" For Output As #1
    For i = LBound(DData, 1) To UBound(DData, 1)
        If DData(i, 4) <> "" Then Print #1, DData(i, 4)
    Next i
Close #1


End Sub

Cordialement

EDITION :
Au plus court:
VB:
Option Explicit
Sub Export_Efge()
Dim i&, DData As Variant


With Sheets("feuil1")
    DData = Cells(1, 4).Resize(.Cells(.Rows.Count, 4).End(3).Row)
End With
Open CreateObject("WScript.Shell").specialFolders("Desktop") & _
        "\" & Environ("UserName") & ".txt" For Output As #1
    For i = LBound(DData, 1) To UBound(DData, 1)
        If DData(i, 1) <> "" Then Print #1, DData(i, 1)
    Next i
Close #1


End Sub
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : Exporter donnée en .txt

Bonjour piegre, Bonjour Roland_M
@piegre
Prends l'avant dernier code (pas le plus rapide) et je t'ai déja donné les explications pour remplacer ton chemin au Post12
VB:
Option Explicit
Sub Export_Efge()
Dim i&, j&
Dim Dsktp$, Nm$
Dim DData As Variant
 

With Sheets("feuil1")
DData = .Range(.Cells(1, 1), .Cells(.Cells(.Rows.Count, 1).End(3).Row, .UsedRange.Columns.Count))
End With

Dsktp = CreateObject("WScript.Shell").specialFolders("Desktop")
Nm = Environ("UserName")

Open Dsktp & "\" & Nm & ".txt" For Output As #1
    For i = LBound(DData, 1) To UBound(DData, 1)
        If DData(i, 4) <> "" Then Print #1, DData(i, 4)
    Next i
Close #1

End Sub
Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 358
Messages
2 087 585
Membres
103 600
dernier inscrit
Tora61