[S] kleines Makro zum exportieren von Zellen in eine txt Datei
#1
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
Top
#2
Hi Bernd,

(23.08.2016, 13: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.
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • bernd99
Top
#3
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


Angehängte Dateien
.xlsm   Bernd99.xlsm (Größe: 24,08 KB / Downloads: 0)
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • bernd99
Top
#4
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?
Top
#5
Hallo,

(24.08.2016, 08: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
Top
#6
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
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • bernd99
Top
#7
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
Top
#8
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
Top
#9
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
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • bernd99
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste