VBA: ausexcell Tabellenblätter eine Datei generieren

Gast #3280416
Lesenswert?

Hallo Leute,
ich habe folgendes Problem:
Ich möchte aus mehreren excell Tabellen1..20 das in Prinzip das selbe 
tuhen, eine einzige txt Datei erzeugen. In dieser Datei sollen nun die 
Ergebnisse der Tabellen untereinander hinzugefügt werden. Ich habe es so 
gemacht was auch nicht klappt:

Public Sub CommandButton ()

Call Tabelle1.genFunk1
Call Tabelle1.genFunk2
...
-----------------------
Sub genFunc1...20()      'Für alle innerhalb gleiche Funktionalität
...
...
...
    Open "C:\temp\Generiere_Txt.txt" For Output As #1
        Print #1, Txt_data
    Close #1

End Sub

Das Problem liegt da dran, dass die Generiere_Txt.txt immer 
überschrieben wird.

Danke im Vorraus!

Gruß
Max
#3280422
Lesenswert?

was auch logisch ist, da Open ... For Output immer eine neue Datei 
anlegt. Ein Blick in die Online-Hilfe zeigt, dass man als Mode auch 
Append verwenden kann ;-)

by the way: die Aufspaltung in 20 einzelne Prozeduren ist natürlich 
suboptiomal. Da solltest Du besser eine einzige Prozedur draus machen, 
an die Du dann den Namen des jeweiligen Sheets übergibst. In einem 
weiteren Parameter kannst Du dann mitgeben, ob eine neue Datei erstellt 
werden soll oder oben an die bestehende angehängt werden soll.

Dann würde ich das ganze auch nicht unbedingt in das VBA-Modul des 
ersten Sheets schreiben, sondern besser in ein eigenes Model ... sonst 
ist der ganze schöne Code weg, wenn aus versehen mal das Blatt gelöscht 
wird ;-)
#3281221
Lesenswert?

Beispiel:

Option Explicit

Private Sub test()
    readValue ActiveWorkbook.Sheets("Sheet1")
    readValue ActiveWorkbook.Sheets("Sheet2")
End Sub

Private Sub readValue(ByRef pSheet As Worksheet)
    MsgBox pSheet.Cells(1, 1)
End Sub

Die Prozedur readValue gibt per Messagebox den Inhalt der Zelle A1 aus. 
Die Frage ist: von welchem Sheet? Antwort: von dem Sheet, das ihr als 
Parameter in pSheet übergeben wurde. Die Prozedur test zeigt, wie die 
readValue Prozedur aufgerufen wird um einmal den Wert aus Sheet1 und 
einmal aus dem Blatt Sheet2 auszulesen. Die Blattnamen musst Du 
natürlich an Deine Gegebenheiten anpassen.

Wenn Du Dich etwas in das Thema einarbeiten willst, versuch im Internet 
doch mal den Unterschied zwischen Sub und Function sowie zwischen ByRef 
und ByVal heraus zu finden. Das wird dir später beim Code-Verständnis / 
Programmieren sehr helfen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren