Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

[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
Antworten Top
#2
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.
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • bernd99
Antworten 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
Antworten 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?
Antworten Top
#5
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
Antworten 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
Antworten 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
Antworten 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
Antworten 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
Antworten Top


Gehe zu:


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