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
 

chris

XLDnaute Barbatruc
Re : Exporter donnée en .txt

Bonjour

Il serait plus logique dans les formules de remplacer par "" et non " "

Sinon dans le code faire un cherche et remplace, après collage, de espace par rien avec l'option totalité du contenu de la cellule.
 

piegre

XLDnaute Junior
Re : Exporter donnée en .txt

Merci chris de ta réponse, je me suis trompé, j'ai bien mis des "".

Cela ne fonctionne pas, mais je me suis dit que je peux faire une étape de transition, avec une boucle FOR et IF , en disant : si la valeur de la case est nulle alors ne pas copier sinon copier/coller dans une colonne à coté.

Puis après j'importe la plage de donnée en fichier txt sans les lignes vides.
 

Roland_M

XLDnaute Barbatruc
Re : Exporter donnée en .txt

bonjour,

mais comment veux tu formater ton fichier, si tu supprimes les cellules vides !?
exemple ici avec un champ qui sera copié avec son format ! ça me semble tout à fait normale
sinon le texte serait décalé !

imag1.jpg
 

Pièces jointes

  • imag1.jpg
    imag1.jpg
    41.4 KB · Affichages: 31

piegre

XLDnaute Junior
Re : Exporter donnée en .txt

Voici un fichier qui montre ce que je souhaite.Dans le fichier test, c'est la colonne des "bonjour" que j'importe dans le fichier txt.

Si vous voulez que la macro fonctionne, remplacer "votre nom" par votre nom d'utilisateur pour que cela créer le fichier txt sur votre bureau.

Donc du coup les lignes où il y a des blancs sont présents dans le fichier txt, et je ne trouve pas comment les supprimer et que les bonjour soient à la suite.
 

Pièces jointes

  • test export.xlsm
    15.9 KB · Affichages: 42
  • test export.xlsm
    15.9 KB · Affichages: 47

Roland_M

XLDnaute Barbatruc
Re : Exporter donnée en .txt

re

voir comme ceci:
je supprime les lignes quand une cellule de la colonne A est vide !
ceci dans le nouveau classeur avant svg !

Code:
Sub Export()
Sheets("feuil1").Activate
Range("D1:D30").Copy
Workbooks.Add
Range("A1").PasteSpecial xlPasteValues
Lig& = Columns(1).Rows(Rows.Count).End(xlUp).Row 'dern.lig
While Lig& > 0
   If Cells(Lig, 1) = "" Then Rows(Lig).Delete
   Lig = Lig - 1
Wend
ChDir "C:\Users\pierre.greard\Desktop\"
ActiveWorkbook.SaveAs Filename:="C:\Users\pierre.greard\Desktop\PLAN.txt", _
   FileFormat:=xlUnicodeText, CreateBackup:=False
ActiveWorkbook.Close SaveChanges:=False
End Sub
 

Efgé

XLDnaute Barbatruc
Re : Exporter donnée en .txt

Bonjour piegre, Bonjour Roland_M

Une autre approche (en espérant avoir compris la finalité de la demande....):

VB:
Option Explicit
Sub Export_Efge()
Dim i&, j&
Dim TxtRw$, 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)
                TxtRw = ""
                If DData(i, 4) <> "" Then
                    For j = LBound(DData, 2) To UBound(DData, 2)
                        TxtRw = TxtRw & DData(i, j)
                    Next j
                    Print #1, TxtRw
                End If
            Next i
        Close #1
End Sub

Cordialement
 
Dernière édition:

piegre

XLDnaute Junior
Re : Exporter donnée en .txt

Merci de vos réponses,

Roland_M ton code fonctionne, grand merci.
Cependant il y a les guillemets qui apparaissent dans le fichier texte en exportant avec le fichier principale, mais pas avec le fichier "test export".

Exemple =SI(A1>0;"bonjour";"")

Quand la condition est vrai, j'obtient dans le fichier texte : "bonjour"
Alors qu'avec le fichier "test export" j'obtient dans le fichier texte : bonjour
Je creuse le problème.

Efgé , j'arrive pas trop à comprendre ton code, je saisi pas trop pour modifier le chemin d'exportation ^^
 
Dernière modification par un modérateur:

Efgé

XLDnaute Barbatruc
Re : Exporter donnée en .txt

Bonjour à tous,

Pour le chemin du classeur final c'est ici que cela se passe:
VB:
Dsktp = CreateObject("WScript.Shell").specialFolders("Desktop")
    Nm = Environ("UserName")

Dsktp te donne le chemin du bureau et Nm le nom du fichier final (ici le nom de l'utilisateur)
Tu pourrais mettre:
VB:
Dsktp = "C:\Toto\titi" ' avec les " au début et la fin mais sans \ à la fin
Nm = MonClasseur

Ensuite le chemin complet avec extension est recréé ici (tu ne touche à rien) :
VB:
Open Dsktp & "\" & Nm & ".txt" For Output As #1

Cordialement
 

piegre

XLDnaute Junior
Re : Exporter donnée en .txt

Merci Efgé , je comprend mieux, cela fonctionne également.

Mais j'ai toujours ce problème de guillemet qui apparaît dans le texte.J'arrive pas à saisir car il y a des incohérence.

Exemple:

En case A10 : =SI(A1>0;"bonjour";"")
En case A11 : du texte

Et j'obtient dans le fichier .txt :

"bonjour" -> quand la condition est vrai
"du texte" -> alors qu'il n'y a aucun guillemet dans la case copier :confused:

C'est à n'y rien comprendre.
 

Efgé

XLDnaute Barbatruc
Re : Exporter donnée en .txt

Si tu mettais un fichier exemple plus représentatif, on gagnerai certainement du temps.
Cordialement

EDIT :
En vérifiant avec ma proposition il n'y a que le texte d'exporté, par de "
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Exporter donnée en .txt

re

salut Efgé !

piegre, si ça fonctionne correctement avec l'exemple "test export" et chez nous, mais pas avec ton classeur principal,
c'est que celui-ci contient une fonction ou macro qui modifie le contenu de ces cellules, ce n'est pas possible autrement !?
 

Discussions similaires

Statistiques des forums

Discussions
312 361
Messages
2 087 599
Membres
103 604
dernier inscrit
CAROETALEX59