Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1648to1652
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

Tabellen Global deklarieren

Tabellen Global deklarieren
05.10.2018 20:31:18
SteinApfel
Hi Leute,
ich habe folgende Herausforderung (für mich) zwar schon einmal gestellt, allerdings nun etwas abgeändert und hoffentlich verständlicher.
Dazu habe ich es auch nochmal selbst versucht, zuerst ging es auch, nur aktuell nicht mehr.
Liegt es daran, dass ich das Workbook öffne und die Aktion schon durchführe, also die Public Deklarationen in einem Modul liegen statt unter dem Workbook? Oder woran kann es sonst liegen?
Mein Code bisher:
Private Sub Workbook_Open()
Call StartDec
End Sub
Modul:
Option Explicit
Public WSEinst As Worksheet
Public WSEinfach As Worksheet
Public WSVSG As Worksheet
Public WSMIG As Worksheet
Public WBBook As Workbook
Sub StartDec()
Set WBBook = ThisWorkbook
With WBBook
Set .WSEinst = Tabelle1 'und genau hier kommt ein Laufzeitfehler (Nr438) zustande
Set .WSEinfach = Tabelle2
Set .WSVSG = Tabelle3
Set .WSMIG = Tabelle4
End With
End Sub
Vielen Dank für eure Hilfe ;)

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellen Global deklarieren
05.10.2018 20:44:37
Hajo_Zi
nur wenige schauen auf Deinen Rechner und sehen die Datei.
Ich möchte gerne den Fehler im Original sehen.
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)
Gibt es die Tabelle mit dem internen Namen "Tabelle1" nicht mehr. Das ist nicht der Name im Register.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
AW: Tabellen Global deklarieren
05.10.2018 20:49:49
Mullit
Hallo,
...ohne Punkte und With-Anw....;-)
'...
Set WSEinst = Tabelle1
Set WSEinfach = Tabelle2
Set WSVSG = Tabelle3
Set WSMIG = Tabelle4
'...

Gruß, Mullit
AW: Tabellen Global deklarieren
05.10.2018 21:03:33
Mullit
Hallo nochmal,
aber dazu viell. noch mal allgemein, verzichte am besten so weit wie möglich auf globale Vars und übergib die Variablen besser als Parameter an Deine Prozeduren...
Gruß, Mullit
AW: Tabellen Global deklarieren
05.10.2018 21:05:44
SteinApfel
Alles klar, dein erster Hinweis hat funktioniert. Danke :)
Da ich Neuling bin, darf ich fragen wie du das genau meinst "übergib die Variablen besser als Parameter an Deine Prozeduren"?
Hättest du ein Beispiel für mich? Daraus lerne ich am besten :D
Anzeige
AW: Tabellen Global deklarieren
05.10.2018 21:17:37
Mullit
Hallo,
null Problemo....
Option Explicit

Public Sub StartDec()

Call MyNewSub1(Tabelle1)
Call MyNewSub2(Tabelle2)
Call MyNewSub3(Tabelle3)

End Sub

Public Sub MyNewSub1(ByRef probjWorkSheet As Worksheet)
Call MsgBox(probjWorkSheet.Name & "  " & probjWorkSheet.Cells(1, 1).Value)
End Sub

Public Sub MyNewSub2(ByRef probjWorkSheet As Worksheet)
Call MsgBox(probjWorkSheet.Name & "  " & probjWorkSheet.Cells(1, 1).Value)
End Sub

Public Sub MyNewSub3(ByRef probjWorkSheet As Worksheet)
Call MsgBox(probjWorkSheet.Name & "  " & probjWorkSheet.Cells(1, 1).Value)
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 14

Gruß, Mullit
Anzeige
AW: Tabellen Global deklarieren
05.10.2018 21:24:44
SteinApfel
Oh ha, das sieht mir aber nach deutlich mehr Arbeit aus, oder? Also ich bin halt ein Neuling, daher ist das schon eine etwas höhere Kunst der Programmierung für mich.
Worin genau liegt denn dabei der/die Vorteil/e?
Wenn ich bei mir vieles Public mache kann ich damit doch rundum arbeiten, was ist der Nachteil daran oder die Gefahr? O.o
AW: Tabellen Global deklarieren
05.10.2018 21:36:18
Mullit
Hall0,
die Werte öffentl. Vars können u.U. flüchtig sein, folgendes Bsp:
Option Explicit

Private lobjWorkSheet As Worksheet

Public Sub StartDec()

Set lobjWorkSheet = Tabelle1

End Sub

Public Sub MyNewSub1()
Call MsgBox(lobjWorkSheet.Name & "  " & lobjWorkSheet.Cells(1, 1).Value)
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 14

Laß dazu erst Deine StartDec-Proc laufen, dann MyNewSub1, soweit alles easy, dann füg mal einen ActiveX-CommandButton in Deine Tabelle ein und laß nur MyNewSub1 nochmal laufen...Oha...;-)
Gruß, Mullit
Anzeige
AW: Tabellen Global deklarieren
05.10.2018 23:17:20
Mullit
....und viell. noch entscheidender, wenn Du in Deinem viell zukünft. Projekt mit 10 Modulen 500 Zeilen Code auch noch 20-30 öffentl. Vars am Start hast, von denen Du bei dem Codevolumen gar nicht mehr genau weißt, wann und wo sie ihre Werte erhalten haben bzw. resettet werden, da der Zugriff ja global möglich ist, wird's schwierig, die Parameter sind dagegen genau zurückzuverfolgen...
Gruß, Mullit
AW: Tabellen Global deklarieren
07.10.2018 18:15:06
SteinApfel
Hey,
vielen Dank erstmal für dein Engagement. Allerdings blicke ich bei deinem Code nicht ganz durch, auch nicht was genau du damit meinst. Tut mir leid, das ist absolutes Neuland für mich was du ansprichst.
Ist also sehr schwierig für mich das gerade nachzuvollziehen.
Ich wäre aber interessiert daran es zu erfahren, nur müsstest du weiter ausholen und bei kleineren Sachen anfangen, da ich es beim jetzigen nicht verstanden habe.
Anzeige
Nachfrage
05.10.2018 22:52:35
Rudi
Hallo,
warum änderst du nicht einfach die CodeNames deiner Tabellen?
Im Projektexplorer die Tabelle anklicken und in den Eigenschaften (Name) ändern.
Gruß
Rudi
AW: Nachfrage
07.10.2018 18:15:57
SteinApfel
Das habe ich tatsächlich auch schon gemacht gestern :D
Aber trotzdem danke.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige