Exportation de fichiers txt

Bonjour, je cherche à exporter certaines sélections sur une feuille

Pour le moment j’arrive à le faire sur une feuille :

Sub exportation_txt()

Dim NomFic As String

NomFic = Sheets("Feuil1").Range("A1") & ".txt"

Sheets("Feuil2").Copy

With ActiveWorkbook

.SaveAs "\Test\" & NomFic, FileFormat:=xlText

.Close SaveChanges:=False

End With

End Sub

Mais le souci c’est qu’il me prend tout ce qu’il se trouve sur la feuille

Je voudrais prendre seulement une partie

Par exemple A1 :H10

Alors je me suis dis

Qu’avec ce code ça fonctionnerait

Sub exportation_txt()

Dim NomFic As String

NomFic = Sheets("Feuil1").Range("A1") & ".txt"

Sheets("Feuil2").Range("A1:H10").Copy

With ActiveWorkbook

.SaveAs "\Test\" & NomFic, FileFormat:=xlText

.Close SaveChanges:=False

End With

End Sub

Mais rien à faire, plus rien ne fonctionne.

Quelqu’un pourrait-il me dire où se trouve mon erreur ?

Merci à vous.

une macro enregistrée qui marche

Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 12/04/2013 par jm
'
' Touche de raccourci du clavier: Ctrl+a
'
    Range("B3:C7").Select
    ChDir "C:\Users\jm\AppData\Local\Temp"
    ChDir "C:\Users\jm\Desktop"
    ActiveWorkbook.SaveAs Filename:="C:\Users\jm\Desktop\toto.txt", FileFormat _
        :=xlText, CreateBackup:=False
End Sub

Merci pour ta macro,

Mais elle ne fonctionne pas mieux que la mienne

En fait elle fait la même chose

Ce que je désire c’est exporter une sélection en TXT pas toute la feuille

Exemple si il ya des écritures en peu partout sur la feuille

J’aimerais pouvoir exporter en TXT seulement une partie de la feuille via certainement une commande .Range("A1:H10").Copy

Ce que ta macro et la mienne ne font pas.

Il doit bien y avoir une astuce, mais laquelle ?

Tu copie A1:H10 sur une autre feuille et tu exportes le tout ?

re

realiste, tu as raison

l'idée de Kwack semble simple

Merci kwack mais je recherche une solution via une macro

J’ai beau chercher je ne trouve pas.

J’ai plus cas espérer qu’un expert macro passe par là.

voila ce que je te propose

193exemple.xlsm (16.95 Ko)

suggestion (c'est une tricherie qui met en macro l'idée de Kwak)

la macro :

  • sélectionne la zone voulue
  • copie
  • crée une nouvelle feuille
  • colle en A1
  • exporte la feuille en txt

ton avis ?

Merci kwack

Le souci c’est que ça ne respecte pas les tabulations.

Après réflexion

Je pense que ton approche est pas mal

Je vais me pencher déçus

J’espère revenir avec la solution

Merci.

Bon je coince

Quelqu’un pour m’aider ?

Merci.

Bonjour,

Essaie avec ça:

Sub Export()
Dim Plage As Object, oL As Object, oC As Object, FileN$, Sep$, Tmp$
FileN = "aaaa" 'Nom du fichier créé
Sep = vbTab
With Worksheets(1)
    Set Plage = .Range("A1:G11")
End With
Open FileN & ".txt" For Output As #1
    For Each oL In Plage.Rows
        Tmp = ""
        For Each oC In oL.Cells
            Tmp = Tmp & CStr(oC.Text) & Sep
        Next
        Print #1, Tmp
    Next
Close
End Sub

A+

Bonjour,

Merci pour ton aide

Je n’arrive pas à lancer ta macro

Tous du moins rien ne se passe

Peux-tu m’aider ?

Bonsoir,

@ Galopin, pourquoi déclares-tu les lignes et les plages en objet au lieu de plage, y-a-t-il une raison particulière ? C'est peut-être dans le fichier initial ?

regarde dans tes documents, réaliste.

Ah oui

Effectivement mes documents (c’est rapide)

Merci pour l’info kwack

Je vais abuser.

Mais il y a-t-il un moyen pour choisir le nom du fichier en l’écrivant sur une cellule et de choisir sa destination.

Comme mon exemple du début?

Bonjour,

Bien sur ! Je t'ai donné un code générique. Après YAPUKA adapter... Un string est un string : le résultat sera le même !

Tu peux même fournir un nom et chemin. l'important est de de ne pas spécifier l'extension .txt car elle est précisée un peu plus loin.

"pourquoi déclares-tu les lignes et les plages en objet"

Heu... Parce que ça marche bien !

A+

Oui ça fonctionne très bien et je t’en remercie

Mais le document va changer de nom plusieurs fois

Et j’ai besoin qu’il soit dans un répertoire spécifique

Car après j’ai une autre macro qui le récupère.

Voilà,

J’ai complété par ce que je voulais

Je tiens à remercier tous ceux qui m’ont aidé.

Ce n’était pas facile surtout avec mon niveau en macro

Merci, merci, merci, merci

Voici le code final

Sub Export()

Dim Plage As Object, oL As Object, oC As Object, Sep$, Tmp$

Dim FileN As String

FileN = Sheets("Feuil1").Range("Z1") 'Nom du fichier créé

Sep = vbTab

With Worksheets(1)

Set Plage = .Range("A1:D11")

End With

FileN = ThisWorkbook.Path & "\test\" & FileN

Open FileN & ".txt" For Output As #1

For Each oL In Plage.Rows

Tmp = ""

For Each oC In oL.Cells

Tmp = Tmp & CStr(oC.Text) & Sep

Next

Print #1, Tmp

Next

Close

End Sub

penses à utiliser le bouton code lorsque tu mets du code dans tes messages c'est plus lisible

Sub Export()
Dim Plage As Object, oL As Object, oC As Object, Sep$, Tmp$
Dim FileN As String
FileN = Sheets("Feuil1").Range("Z1") 'Nom du fichier créé
Sep = vbTab
With Worksheets(1)
Set Plage = .Range("A1:D11")
End With
FileN = ThisWorkbook.Path & "\test\" & FileN
Open FileN & ".txt" For Output As #1
For Each oL In Plage.Rows
Tmp = ""
For Each oC In oL.Cells
Tmp = Tmp & CStr(oC.Text) & Sep
Next
Print #1, Tmp
Next
Close
End Sub
Rechercher des sujets similaires à "exportation fichiers txt"