Clever-Excel-Forum

Normale Version: [S] kleines Makro zum exportieren von Zellen in eine txt Datei
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi,

ich würde mich freuen, wenn ihr mir helfen könntet.

Ich benötige ein Makro für einen Export in 2 Textdateien.

Beispiel:

1. Datei Zelle AF3 bis AF603 in eine Textdatei die den Namen trägt: 2016-"Zelle K26"-"Zelle B1"-Arbeit
2. Datei Zelle AV3 bis AV603 in eine Textdatei die den Namen trägt: 2016-"Zelle K26"-"Zelle B1"-KFZ

Der Speicherpfad sollte der Pfad sein in dem die Excel Datei liegt.

Vielen Dank im Voraus
Hi Bernd,

(23.08.2016, 12:54)bernd99 schrieb: [ -> ]Ich benötige ein Makro für einen Export in 2 Textdateien.

Du könntest beim Helfen ein bißchen helfen, indem Du die Makro-Aufzeichnung startest und das exportieren der beiden Bereiche ein Mal durchführst und dann die Aufzeichnung beendest.

Dann das aufgezeichnete Makro hier posten und wir können es dann gemeinsam verallgemeinern und von unnötigem Ballast (Select, Activate usw.) befreien.
Hallo,

als Beispiel für die erste Spalte:


Code:
Sub Bernd99()
sPath = "c:\temp\"

Open sPath & "2016-" & Cells(26, "K") & "-" & Cells(1, 2) & "-Arbeit.txt" For Output As #1
For i = 3 To 603
   Write #1, Cells(i, "AF")
Next i

Close #1
End Sub


Die Spalte AV geht analog.

mfg
Danke schon einmal euch beiden.
Das Makro klappt prima, jedoch habe ich ein Problem.
Er schreibt in die Textdatei jeweils vorne und hinten ein Anführungszeichen.

Das Eregebnis ist also "....."

Geht das auch ohne?

Ich habe versucht im Makro die Anführungszeichen zu löschen, dann kommt jedoch ein Laufzeitfehler.

Edit: mit Print anstatt write klappt es!

Eine Frage habe ich dann doch noch Smile

Er speichert die txt Dateien jetzt in den Temp Ordner, kann man das Formel lösen, dass er immer in dem Ordner speichert wo die Excel Datei liegt?
Hallo,

(24.08.2016, 07:11)bernd99 schrieb: [ -> ]Er speichert die txt Dateien jetzt in den Temp Ordner, kann man das Formel lösen, dass er immer in dem Ordner speichert wo die Excel Datei liegt?

sPath = ThisWorkbook.Path & "\"

Gruß Uwe
Hallo Bernd,

versuche anstelle


Code:
   Write #1, Cells(i, "AF")


ungeprüft:

Code:
   Print #1, Cells(i, "AF")

ansonsten mit einem Editor öffnen und mit suchen/ersetzen...

mfg
Code:
sub M_snb()
  with createobject("scripting.filesystemobject")
    .createtextfile("G:\OF\2016-Zelle K26-Zelle B1-Arbeit.txt").write join(application.transpose(sheet1.range("AF3:AF603")),vbcrlf)
    .createtextfile("G:\OF\2016-Zelle K26-Zelle B1-KFZ.txt").write join(application.transpose(sheet1.range("AV3:AV603")),vbcrlf)
  End With
end sub


Schau ( Fennek ;) ) mal für mehr Methoden:

http://www.snb-vba.eu/VBA_Arrays.html#L_6.15
Vielen Dank euch allen, es hat jetzt geklappt, ich musste thisworkbook noch in activeworkbbok ändern

Hier mein fertiges Makro falls es jemand auch mal braucht:

Code:
Sub ArbeitszeitTXT()
sPath = ActiveWorkbook.Path & "\"

Open sPath & "2016-" & Cells(26, "K") & "-" & Cells(1, 2) & "-Arbeit.txt" For Output As #1
For i = 3 To 603
  Print #1, Cells(i, "AF")
Next i

Open sPath & "2016-" & Cells(26, "K") & "-" & Cells(1, 2) & "-KFZ.txt" For Output As #2
For i = 3 To 603
  Print #2, Cells(i, "AV")
Next i

Close #1
Close #2
End Sub
das geht doch ohne Schleifen:

Code:
sub M_snb()
  c00=activeworkbook.path & "\2016-" & [K26 & "-" & B1 & "-"]

  with createobject("scripting.filesystemobject")
    .createtextfile(c00 & "Arbeit.txt").write join([transpose(AF3:AF603)],vbcrlf)
    .createtextfile(c00 & "KFZ.txt").write join([transpose(AV3:AV603)],vbcrlf)
  End With
end sub