Herbers Excel-Forum - das Archiv

Public Funktion / Variabel

Bild

Betrifft: Public Funktion / Variabel
von: jogi

Geschrieben am: 31.07.2008 12:09:03

Hallo zusammen,
hate ein Problem mit dieser Funktion:
Ich möchte in meinem Modul folgende Variabeln als Konstante deklarieren, so daß ich in jeder Prozedur darauf zugreifen kann, der Code sieht so aus:
Public Variable()
Public Hier$, Datum$, Quellpfad$, Quelldatei$, Zielpfad$, Zieldatei$
Public Zähler As Byte
Const Hier = ThisWorkbook.Name
Const Datum = Workbooks(Hier).Sheets("Command").Cells(4, 2)
Const Quellpfad = Workbooks(Hier).Sheets("Command").Cells(5, 2)
Const Quelldatei = Workbooks(Hier).Sheets("Command").Cells(6, 2) & ".xls"
Const Zielpfad = Workbooks(Hier).Sheets("Command").Cells(7, 2)
Const Zieldatei = Workbooks(Hier).Sheets("Command").Cells(8, 2) & ".xls"
Const Zähler = Workbooks(Hier).Sheets("Command").Cells(14, 1)

Sub Quelldateikopieren()
'Quellen löschen
Sheets("Ur_Quelle").Select
Cells.Select
End Sub


Folgende Fehlermeldung erscheint:
Fehler beim Kompilieren: Mehrdeutiger Name: Hier
Es spielt jedoch keine Rolle, wie ich die Variable nenne, der Fehler erscheint immer, woran liegt es?
Gruß Jogi

Bild

Betrifft: AW: Public Funktion / Variabel
von: Nepumuk

Geschrieben am: 31.07.2008 12:27:46
Hallo Jogi,
du musst Konstanten nicht separat deklarieren. Wenn du sie allerdings in mehreren Modulen verwenden willst, dann musst du sie als Public deklarieren. Beispiel:
Public Const Zähler As Byte = Workbooks(Hier).Sheets("Command").Cells(14, 1).Value
Gruß
Nepumuk

Bild

Betrifft: AW: Public Funktion / Variabel
von: jogi

Geschrieben am: 31.07.2008 12:48:09
Vielen Dank,
jetzt habe ich es so umbeschrieben
Public Variable()
Public Const Hier As String = ThisWorkbook.Name
Public Const Datum$ = Workbooks(Hier).Sheets("Command").Cells(4, 2)
Public Const Quellpfad$ = Workbooks(Hier).Sheets("Command").Cells(5, 2)
Public Const Quelldatei$ = Workbooks(Hier).Sheets("Command").Cells(6, 2) & ".xls"
Public Const Zielpfad$ = Workbooks(Hier).Sheets("Command").Cells(7, 2)
Public Const Zieldatei$ = Workbooks(Hier).Sheets("Command").Cells(8, 2) & ".xls"
Public Const Zähler As Byte = Workbooks(Hier).Sheets("Command").Cells(14, 1)

jetzt kommt die Fehlermeldung: Kostanter Ausdruck erforderlich und markiert mir in der ersten Zeile:
Public Const Hier As String = ThisWorkbook.Name
".Name"
Was ist jetzt wieder falsch?
Gruß Jogi

Bild

Betrifft: AW: Public Funktion / Variabel
von: Nepumuk

Geschrieben am: 31.07.2008 12:56:45
Hallo Jogi,
upps!!! Da hab ich selbst nicht geschaltet. :-(
Konstanten können natürlich nur aus festen Werten bestehen, aber niemals aus Werten in Zellen. Selbst wenn du sie nicht änderst, sind die änderbar und damit nicht konstant. Du brauchst also eine Initialisierungsroutine welche deine Variablen mit den Werten aus den Tabellen füllt.
Gruß
Nepumuk

Bild

Betrifft: AW: Public Funktion / Variabel
von: jogi

Geschrieben am: 31.07.2008 13:01:16
Danke noch einmal für die schnelle Antwort,
d.h. konkret, das verstehe ich nicht,
mein Ziel ist es, Variabeln zu delkarieren, die ich ständig in diesem Modul benötige, die Werte hole ich mir aus der Tabelle oder durch eine Abfrage.
Wie müsste eine solche Initialisierungsroutine aussehen?
Gruß Jogi

Bild

Betrifft: AW: Public Funktion / Variabel
von: Rudi Maintaire

Geschrieben am: 31.07.2008 13:09:41
Hallo,

Wie müsste eine solche Initialisierungsroutine aussehen?


du musst den Variablen in einer Sub Werte zuweisen. Const kannst du bei deinem Vorhaben vergessen.

Public Hier$, Datum$, Quellpfad$, Quelldatei$, Zielpfad$, Zieldatei$
Public Zähler As Byte
Sub HoleWerte()
Hier = ThisWorkbook.Name
Datum = Workbooks(Hier).Sheets("Command").Cells(4, 2)
Quellpfad = Workbooks(Hier).Sheets("Command").Cells(5, 2)
Quelldatei = Workbooks(Hier).Sheets("Command").Cells(6, 2) & ".xls"
Zielpfad = Workbooks(Hier).Sheets("Command").Cells(7, 2)
Zieldatei = Workbooks(Hier).Sheets("Command").Cells(8, 2) & ".xls"
Zähler = Workbooks(Hier).Sheets("Command").Cells(14, 1)
End Sub
Sub tt()
HoleWerte
'weiterer Code
End Sub


Gruß
Rudi

Bild

Betrifft: AW: Public Funktion / Variabel
von: jogi
Geschrieben am: 31.07.2008 13:15:54
ok jetzt hat es funktioniert!!!
DANKE nochmal!!!
Gruß JH

 Bild
Excel-Beispiele zum Thema "Public Funktion / Variabel"
Funktion ANZAHL2 ohne ausgeblendete Spalten Mit der Indirekt-Funktion auf geschlossene Arbeitsmappe zugreifen
Benutzerdefinierte SVERWEIS-Funktion über mehrere Bereiche Alle Prozeduren und Funktionen auflisten
In Funktionskategorie einordnen Ausgabe einer benutzerdefinierten Funktion in Matrixformel
Benutzerdefinierte Funktion durch Code erstellen und löschen Ermittlung von Entfernungen über benutzerdefinierte Funktion
Handhabung von Arrays in benutzerdefininierten Funktionen Arbeitsmappen-Titel über benutzerdefinierte Funktion