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

Workbook als Variable für weitere Makros

Workbook als Variable für weitere Makros
22.03.2019 23:45:38
Tim
Hallo zusammen,
Ich hab da ein problem bei dem ich nicht recht fündig werde beziehungsweise hab ich kein Lösungsweg gefunden den ich bisher erfolgreich ummodeln konnte auf meinen Code.
Folgendes, ich habe 2 Excel Dateien.
Die eine heißt immer gleich, die 2. Varriert vom Namen.
Ich möchte das meine Haupttabelle mit den Variablen Namen nach bestimmte werte sucht in der fixen Tabelle. Die Werte stehen in Zellen dennen ich jeweils ein Namen zugewiesen habe. Aber nicht alle abgefragte Namen kommen in der "Starren" Datei vor.
1. Ansatz war, wenn der name nicht existiert, on Error goto und gebe mittels msgbox den fehlenden Namen aus der Zelle die fehlt.
Funktioniert einwandfrei, bis... Ein 2. Benannte Zelle nicht existiert, da wie ich lernen durfte excel noch im debug modus ist trotz Err.Clear.
2. Ansatz den ich wohl nicht verstanden habe, da dieser nicht funktioniert.
Code:
Public wb1 as Workbook
Public wb2 as Workbook
Private Sub databasecheck()
Set wb1 = workbook("testbuch.xlsm")
Set wb2 = activeWorkbook
... Weiterer Code bis zur Abfrage...
Application.run "stationcheck"
... Viele weitere solche nebensubs
End Sub
Private Sub StationCheck()
On error goto 1
If wb1.sheets("sheets1").range("Test") = "ja" then
Weiterer Code..
Exit Sub
Else: end If
1: 'wenn der Range nicht existiert soll er einfach überspringen
Msgbox ("test existiert nicht")
End Sub

Funktioniert nicht, obwohl die test zelle existiert mit "Ja" inhalt überspringt er das ganze und bringt die msgbox.
3. Idee war die Variable Datei vorher umzubennen ohne zu speichern, sprich das ich vorher dem Workbook ein fixen Namen gebe und später zurück ändere, geht wohl laut google leider nicht.
Jetzt fragt ihr euch bestimmt wieso das ganze?
Die starre Tabelle wird vom System generiert und heißt immer gleich, hat aber als einen unterschiedlichen aufbau.
Die Kollegen sollen sich mit der 2. Tabelle sich Daten ziehen können die sie selber brauchen ohne groß die Datei zu durchforsten.
Sprich existieren gewünschte Daten, kopiert er diese in die 2. Dadurch hab ich den Sprung zwiachen beider Tabellen.
Und wieso heißt die Tabelle mit dem ausführenden Code immer anders? Weil die wertw Herren von Kollegen nicht schnallen das sie beim Speichern den Namen nicht verändern sollen...
Jemand eine idee worin mein fehler liegr oder wie ich das vielleicht eleganter lösen könnte?
Danke im voraus

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Workbook als Variable für weitere Makros
23.03.2019 08:40:32
Gerd
Hallo Tim!
Set wb1 = Workbooks(...)
Gruß Gerd
AW: Workbook als Variable für weitere Makros
23.03.2019 10:55:26
ChrisL
Hi
Anstelle die Variable als Public zu deklarieren, kannst du diese auch an das andere Makro übergeben. Beispiel:
Mappe1.xlsm
Sub t()
Dim wb1 As Workbook
Set wb1 = ThisWorkbook
Application.Run "Mappe2.xlsm!StationCheck", wb1
End Sub
Mappe2.xlsm
Public Sub StationCheck(wb1 As Workbook)
MsgBox wb1.Name
End Sub
cu
Chris
AW: Workbook als Variable für weitere Makros
23.03.2019 11:03:11
Tim
Klasse, wusste noch nicht das ich die Variablen nach application Run mit einem Komma weiter geben kann.
Kann ich da beliebeig viele weitergeben jeweils mit Komma trennung?
Muss der 2. Sub dann auf public stehn oder geht es wenn alle Subs auf Private stehen?
Vielen Dank für den Hinweis, werde es am Montag auf arbeit gleich austesten und Meldung geben!
Anzeige
AW: Workbook als Variable für weitere Makros
23.03.2019 12:27:27
ChrisL
Hi Tim
Ja, du kannst auch mehrere Variablen übergeben.
Public vs. Private müsste ich testen. Unabhängig ob es technisch möglich ist oder nicht, wenn eine Prozedur von verschiedenen Orten aufgerufen wird, dann ist es nach meiner Logik Public. Nur was innerhalb vom gleichen Modul (z.B. Tabelle) verwendet wird, ist nach meiner Denkweise Private.
Ohne explizite Angabe ist der Default übrigens Public.
cu
Chris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige