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

Variable - Konstante - auch nach End Sub?

Variable - Konstante - auch nach End Sub?
09.09.2008 12:52:00
Tom
Hallo.
Jetzt weis ich bereis, dass das Thema Variablen die auch nach dem "End Sub" zur Verfügung stehen sollen so ein Thema ist.
Ich hab mich mal versucht zu belesen, peils aber noch nicht so ganz.
Wenn ich also in einer Zelle einen Wert stehen habe, den ich überall zur Verfügung haben möchte, dann bin ich mir nicht sicher wie ich das machen soll. Denn jedesmal nach einen "end sub" ist die festgelegte variable weg.
Gibt es denn mittels "Public const" eine Möglichkeit sowas zu erreichen?
Der Tom

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable - Konstante - auch nach End Sub?
09.09.2008 13:24:28
Andi
Hi,
Du musst die Variable in einem Stadard-Modul außerhalb der Prozeduren als Public-Variable deklarieren, dann steht sie in allen Prozeduren zur Verfügung.
Wenn der Wert aber ohnehin in einer Zelle steht, dann brauchst Du das eigentlich gar nicht, weil Du ja einfach auf die Zelle zugreifen kannst.
Schönen Gruß,
Andi
AW: Variable - Konstante - auch nach End Sub?
09.09.2008 14:04:03
Tom
Danke Ihr Beiden.
Leider komm ich damit nicht viel weiter.
Ich kann zwar eine const im Modul setzen, allerdings nicht den Inhalt einer Zelle.
Public Const Tom As String = Sheets("Vorgabewerte").Range("C2")
Da schimpt er übers "Range"
Und ja, ich könnte immer den Zelleninhalt nehmen und diesen auslesen. Ich wollte mur nur diese Zeile ersparen und statt dessen eine Variable nutzen die einen kurzen namen hat.
Der Tom
Anzeige
AW: Variable - Konstante - auch nach End Sub?
09.09.2008 14:24:00
Andi
Hi,
Du kannst einer Konstanten keinen Zellwert zuweisen; Zellwerte könnten sich ändern, und dies schließt die Verwendung einer Konstanten prinzipiell aus.
Du könntest entweder eine Public-Variable deklarieren, der Du dann aber noch innerhalb einer Prozedur den Zellwert zuweisen musst (zB im WorkbookOpen), oder Du greifst eben doch auf den Zellwert direkt zu.
Schönen Gruß,
Andi
AW: Variable - Konstante - auch nach End Sub?
10.09.2008 13:06:55
Tom
Ich nochmal,
also ich komm da nicht weiter. Entweder versteh ich da was nicht oder ich stell mich einfach nur zu blöd an.
Ich wollte in allen Arbeitsblattern und Modulen einen Wert haben den ich immer wieder aufrufen kann.
Dieser Wert soll aus einer Zelle entnommen werden.
Ziel ist es in dieser Zelle einen Dateinamen mit Pfad zu hinterlegen, auf den ich mich dann überall beziehen kann. Sonst musste ich ja in jedem Prozess erst den Wert aus dieser Zelle auslesen und das macht das ja alles so riesig.
Also wenn ich das bis jetzt richtig verstehe, dann muss ich in der Arbeitsmappe was mit "Workbook_Open()" einbringen und noch was zusätzlich in einem Modul...aber egal was ich Probiere, wenn ich das mit einem Zelleninhalt machen will geht das nicht...
Kann mir mal bite jemand ein komplettes Beispiel geben?
Danke
Der Tom
Anzeige
AW: Variable - Konstante - auch nach End Sub?
10.09.2008 13:27:07
Heiko
Hallo Tom.
wie kommst du darauf, Zitat von dir, was ist daran riesig ?!
"Sonst musste ich ja in jedem Prozess erst den Wert aus dieser Zelle auslesen und das macht das ja alles so riesig."
Habe mal ne Beispieldatei angehängt wo drei Möglichkeiten genutzt werden. Also die Info direkt aus der Zelle zu holen ist dabei immer die bestem, da immer aktuell und nicht abgängig wenn viel zwischen verschiedenen Mappen hin und her geschaltet wird.
https://www.herber.de/bbs/user/55298.xls
Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Variable - Konstante - auch nach End Sub?
10.09.2008 15:05:46
Andi
Hi,
verwendest Du mittlerweile eine Variable, oder immernoch eine Konstante?
Schönen Gruß,
Andi
AW: Variable - Konstante - auch nach End Sub?
10.09.2008 15:14:03
Tom
Also ich habs jetzt so gelöst:
Das in "diese Arbeitsmappe"

Private Sub Workbook_Open()
PfadUndName = Workbooks("Gesamtauswertung.xls").Sheets("Vorgabewerte").Range("C2").Text
Mitarbeiterdatei = DateiName(PfadUndName, True)
End Sub


Das hier in ein Modul
Option Explicit
Public Mitarbeiterdatei As String
Public PfadUndName As String


Public Function DateiName(PfadUndName As String, Optional MitEndung) As String
Dim Pos As Integer, SuchZeichen As String
If PfadUndName = "" Then Exit Function
' Letzten Backslash suchen
Pos = 0
Do
PfadUndName = Mid(PfadUndName, Pos + 1)
Pos = InStr(1, PfadUndName, "\")
Loop Until Pos = 0
If IsMissing(MitEndung) Then MitEndung = True
If Not MitEndung Then
' Letzten Punkt suchen
For Pos = Len(PfadUndName) To 1 Step -1
If Mid(PfadUndName, Pos, 1) = "." Then
PfadUndName = Left(PfadUndName, Pos - 1)
Exit For
End If
Next Pos
End If
DateiName = PfadUndName
End Function


Somit erhalte ich bei "PfadUndName" den kompletten Pfad mit Dateiname
und bei
"Mitarbeiterdatei" erhalte ich nur die Datei mit Endung
msgbox PfadUndName ergibt z.B.
\\Ort\Ordner\Dateiname.xls
msgbox Mitarbeiterdatei ergibt dann
Dateiname.xls
Vielen Dank an alle die geholfen haben!
Der Tom

Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige