VBA geöffnete datei an anderen sub übergeben

Bild

Betrifft: VBA geöffnete datei an anderen sub übergeben von: moritz
Geschrieben am: 18.02.2005 14:15:14

hallo zusammen, ich habe in einem


Sub eine datei zum schreiben geöffnet. nun möchte ich in mehreren vorgängen daten in der datei speichern, dies soll durch aufruf einer anderen funktion geschehen.
wie kann ich in der aufgerufenen funktion auf die geöffnete datei aus dem ersten 

Sub zugreifen, ohne die datei schließen und wieder öffnen zu müssen?

Sub Basis()
FileNum = FreeFile
Open File1Name For Output As #FileNum
' Aufruf der Funktion
Schreibfunktion()
Close #FileNum
End Sub



Function Schreibfunktion() as blabla
Print #FileNum, ""
End Function

Bild


Betrifft: AW: VBA geöffnete datei an anderen sub übergeben von: Jan
Geschrieben am: 18.02.2005 14:34:00

Schon mit Application.Run probiert?

mfg Jan


Bild


Betrifft: AW: VBA geöffnete datei an anderen sub übergeben von: moritz
Geschrieben am: 18.02.2005 14:56:05

Hallo, 'Application.Run' dient meines Wissens nach zum ausführen eines Makros, wüßte also nicht inwiefern mich das weiterbringen würde.
Nochmal zum Ablauf: in dem Sub "Basis" öffne ich eine neue Datei #FileNum. Die Funktion "Schreibfunktion" wird aufgerufen, diese soll in die Datei #FileNum ein paar Zeichen mit Print schreiben. Leider funktioniert das nicht, die Datei bleibt 0 Bytes groß, ich bekomme aber auch keine Fehlermeldung. Ich vermute einfach dass die Funktion "Schreibfunktion" keinen Zugriff auf die Datei #FileNum hat. Die Funktion "Schreibfunktion" soll jedoch mehrmals hintereinander aus dem Sub "Basis" aufgerufen werden können, ohne dass die Datei #FileNum jedesmal geöffnet und geschlossen werden soll.


Bild


Betrifft: AW: VBA geöffnete datei an anderen sub übergeben von: Jan
Geschrieben am: 18.02.2005 14:57:55

"Hallo, 'Application.Run' dient meines Wissens...."

Sieh dir die Hilfe dazu an.

Habe jetzt Feierabend.

mfg Jan


Bild


Betrifft: AW: VBA geöffnete datei an anderen sub übergeben von: moritz
Geschrieben am: 18.02.2005 15:05:34

Das hier steht in der Hilfe zu Makro.Run:
"Führt ein Makro aus oder ruft eine Funktion auf. ..."

Ich hab nicht das Problem ein Makro aufzurufen, daher verstehe ich deine Antwort nicht. Mein Problem ist, dass ich auf eine in einem Sub geöffnete Datei in einem anderen Sub zugreifen möchte. Alles innerhalb VBA! Sub "Basis" ruft (call) Sub bzw. Function "Schreibfunktion" auf. "Schreibfunktion" soll in eine Datei mit Print schreiben die in "Basis" als #FileNum geöffnet wurde. Innerhalb des Sub "Basis" funktioniert das.

Bis zum Feierabend dauert es bei mir noch ein bischen :-(


Bild


Betrifft: AW: VBA geöffnete datei an anderen sub übergeben von: Reinhold
Geschrieben am: 18.02.2005 15:09:01

Hallo moritz,

bei mir tut's so:


Sub sMain()
  Open "c:\Daten\TestDatei" For Output As #1
  
  sWrite "abcdef"
  sWrite "12345"
  sWrite "1234523412341234"
  
  Close #1
End Sub



Sub sWrite(str As String)
  Print #1, str
End Sub



Grüße Reinhold


Bild


Betrifft: hmm... es klappt von: moritz
Geschrieben am: 18.02.2005 15:15:58

Jetzt bin ich etwas durcheinander, nachdem ich #FileNum durch #1 ersetzt habe, funktioniert es bei mir auch. Mir ist nur nicht so ganz klar warum... aber Hauptsache es läuft. Danke!


Bild


Betrifft: AW: hmm... es klappt von: Reinhold
Geschrieben am: 18.02.2005 15:25:42

Hallo Moritz,

Wenn du FileNum verwenden willst, musst du FileNum als Parameter übergeben, z.B.


Sub sMain()
  Dim filenum
  filenum = FreeFile
  Open "c:\Daten\TestDatei" For Output As #filenum
  sWrite filenum, "asdfasdlfkasl döfklöasd"
  
  Close #filenum
End Sub



Sub sWrite(filenum, str As String)
  Print #filenum, str
End Sub


Grüße Reinhold


Bild


Betrifft: Danke geschlossen von: moritz
Geschrieben am: 18.02.2005 15:47:54

Danke!


 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA geöffnete datei an anderen sub übergeben"