Microsoft Excel

Herbers Excel/VBA-Archiv

Public Funktion / Variabel

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

  

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


  

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


  

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


  

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


  

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


  

Betrifft: AW: Public Funktion / Variabel von: jogi
Geschrieben am: 31.07.2008 13:15:54

ok jetzt hat es funktioniert!!!

DANKE nochmal!!!

Gruß JH


 

Beiträge aus den Excel-Beispielen zum Thema "Public Funktion / Variabel"