Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
756to760
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
756to760
756to760
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Workbookobjekt in Unterffunktion verwenden

Workbookobjekt in Unterffunktion verwenden
19.04.2006 15:51:53
Raik
Ich benötige in einer Funktion Zugriff auf eine im Hauptmakro geöffneten Excel-Tabelle. Leider weiß ich nicht wie ich elegant auf diese zugreifen kann.
Erst schließen und wieder öffnen möchte ich sie nicht.
Ich habe mir mit ActiveWorkbook... beholfen, was aber so nicht bleiben kann, da im Hauptmakro auch noch andere Tabellen nachher geöffnet werden sollen.

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Workbookobjekt in Unterffunktion verwenden
19.04.2006 15:55:32
Arthur
Hallo erstmal. Und Tschuß gibt's auch noch. Nur der Freundlichlkeit halber.
Nutze anstelle von ActiveWorkbook Workbooks("")
Gruß
Art
AW: Workbookobjekt in Unterffunktion verwenden
19.04.2006 16:08:30
Matthias
Hallo Raik,
was meinst du mit Hauptmakro?
Du kannst Arbeitsmappe so referenzieren:

Function Test(wb As Workbook)
Test = wb.Sheets("Tabelle3").Range("A1")
End Function
Sub TT()
MsgBox Test(Workbooks("Mappe1"))
End Sub

Gruß Matthias
Anzeige
AW: Workbookobjekt in Unterffunktion verwenden
20.04.2006 08:32:44
Raik
Danke für den Rüttler Arthur, und vielen Dank Matthias, dass Du trotz meiner Unhöflichkeit geantwortet ;)
Ich war auch schon etwas stark neben der Rolle gestern.
Es geht um eine Userform.
Im Button-Programm wird die Mappe erzeugt, gespeichert und wieder geöffnet mit
Set MEinsatz = Workbooks.Open("C:\...xls")
Das Füllen dieser Mappe soll in eine Funktion (oder Unterprogramm) ausgelagert werden.
Sub Eintrag(Index,...,)
Hier kann ich nun MEinsatz nichtmehr verwenden obschon manche Zählvariablen aus dem HP weiter verwendet werden können.
Ich muss nacheinander mehrere Mappen abarbeiten und müsste die MEinsatz Mappe schon klar ansprechen können, was mit Activeworkbook dann nichtmehr geht
Ich habe meine Frage auch etwas falsch fomuliert, weil ich ja keine Tabelle einer Mappe ansprechen will, sondern die ganze Mappe als Objekt benötige.
Ich bin für jeden Schubser in die richtige Richtung dankbar.
Anzeige
AW: Workbookobjekt in Unterffunktion verwenden
20.04.2006 08:53:21
Matthias
Hallo Raik,
ok, noch ein Schubser:

Sub Hauptmakro()
Dim MEinsatz as Workbook
Set MEinsatz = Workbooks.Open("C:\...xls")
Eintrag MEinsatz
End Sub
Sub Eintrag(wb As Workbook)
msgbox = wb.Name & " wurde angesprochen!"
End Function

Gruß Matthias
AW: Workbookobjekt in Unterffunktion verwenden
20.04.2006 10:08:28
Raik
Hallo Matthias, das hat noch nicht ganz funktioniert.
Die Übergabe für diesen Typ ist ByReference nicht möglich.
Wo liegt genau der Unterschied zu ByValue und würde es ByValue funktionieren?
Danke schonmal!
Raik
AW: Workbookobjekt in Unterffunktion verwenden
20.04.2006 10:19:09
Matthias
Hallo Raik,
sorry, ich war etwas schlampig:

Sub Hauptmakro()
Dim MEinsatz As Workbook
Set MEinsatz = Workbooks.Open("C:\...xls")
Eintrag MEinsatz
End Sub
Sub Eintrag(ByVal wb As Workbook)
MsgBox wb.Name & " wurde angesprochen!"
End Sub

Wobei es bei mir auch ohne ByVal funktioniert...
Gruß Matthias
Anzeige
AW: Workbookobjekt in Unterffunktion verwenden
20.04.2006 10:21:00
Raik
Ich habe jetzt alles auf Call by Value umgestellt und es funktioniert auch alles noch so wie es soll.
Vielen Dank für Deine Schubser Matthias.
Vielleicht kann mich ja noch jemand erleuchten, wo genau der Unterschied der beiden Variablenübergaben liegt (nicht vom Sinn sondern Programmiertechnisch)
Nun kann es endlich weitergehen :)
AW: Workbookobjekt in Unterffunktion verwenden
20.04.2006 10:29:28
Matthias
Hallo Raik,

Sub Test()
Dim x As Integer
x = 1
Call t1(x)
MsgBox "x nach Aufruf von t1(): " & x
x = 1
Call t2(x)
MsgBox "x nach Aufruf von t2(): " & x
End Sub
Sub t1(ByVal xx As Integer)
xx = 10
End Sub
Sub t2(ByRef xx As Integer)
xx = 10
End Sub

Wie du siehst, kann man mit ByRef (=Voreinstellung) die übergebene Variable ändern, und sie wird in der aufrufenden Prozedur mitgeändert. Bei ByVal bleibt die aufrufende Variable unverändert.
Gruß Matthias
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige