Supportnet / Forum / Tabellenkalkulation
VBA, globale Variablen
Frage
Hallo Leute,
erstmal vielen Dank für eure ganze Hilfe die ich hier schon gekriegt habe :)
Folgendes Problem:
Bei VBA sind die Variablen nur jeweils in den jeweiligen Functions verfügbar (so ist mein Wissensstand, bin Anfänger ;))
Mein Plan: Ich will eine globale Variable haben, wo der Wert z.B. ein vorgegebener Pfad ist (C:\Test\). Diesen Wert will ich aber auch gegebenenfalls ändern (durch ne Textbox z.B., Methode ist mir bekannt), dieser Wert soll dann aber auch allen anderen Functions zur Verfügung stehen.
Wie kann ich eine globale Variable deklarieren und wie kann ich bei Bedarf deren Wert ändern, dass dieser Wert dann auch wieder global verfügbar (abrufbar) ist?
Wenn die Frage zu umfangreich ist, sagt Bescheid. Ich hab wie gesagt keine Ahnung.. hab leider auch gerade keine Fachlektüre hier, das ist mein Problem :-/
Schonmal Danke für eure Antworten!
Antwort 1 von nighty
hi :))
in einem allgemeinen modul abzulegen ist
public DeineVar as string
die zuweisung erfolgt in beliebigen makros da ja global ist
gruss nighty
in einem allgemeinen modul abzulegen ist
public DeineVar as string
die zuweisung erfolgt in beliebigen makros da ja global ist
gruss nighty
Antwort 2 von JoeKe
Hallo Mr.Fry,
das was du suchst nennt sich Public. Im folgenden mal ein Beispiel:
Public Datei As String
Sub Abfrage()
Dim name As String
name = InputBox("Welche Datei soll geöffnet werden?")
Datei = "C:\Dokumente und Einstellungen\user\Desktop\" & name & ".xls"
End Sub
Sub Datei_öffnen()
Workbooks.Open Filename:=Datei
End Sub
Hier wird die Variable "Datei" mit Public zur öffentlichen Variablen deklariert. Im ersten Code wird ihr dann ein, hier veränderlicher (durch eine InputBox), Wert zugewiesen. So kann die Variable "Datei" in allen folgenden Projekten verwendet werden.
MfG
JöKe
das was du suchst nennt sich Public. Im folgenden mal ein Beispiel:
Public Datei As String
Sub Abfrage()
Dim name As String
name = InputBox("Welche Datei soll geöffnet werden?")
Datei = "C:\Dokumente und Einstellungen\user\Desktop\" & name & ".xls"
End Sub
Sub Datei_öffnen()
Workbooks.Open Filename:=Datei
End Sub
Hier wird die Variable "Datei" mit Public zur öffentlichen Variablen deklariert. Im ersten Code wird ihr dann ein, hier veränderlicher (durch eine InputBox), Wert zugewiesen. So kann die Variable "Datei" in allen folgenden Projekten verwendet werden.
MfG
JöKe
Antwort 3 von MrFry
Vielen Danke euch beiden, ihr habt mir sehr geholfen!
Antwort 4 von nighty
hi :))
noch ein beispiel :)
gruss nighty
alt f11/projektexplorer/DeineArbeitsMappe einzufügen ist /speichern/schliessen/öffnen fertig :))
Option Explicit
Public DeineVar As String
Private Sub Workbook_Open()
DeineVar = "C:\test"
[a1] = DeineVar
End Sub
noch ein beispiel :)
gruss nighty
alt f11/projektexplorer/DeineArbeitsMappe einzufügen ist /speichern/schliessen/öffnen fertig :))
Option Explicit
Public DeineVar As String
Private Sub Workbook_Open()
DeineVar = "C:\test"
[a1] = DeineVar
End Sub
Antwort 5 von MrFry
Ich bins nochmal ;)
Es hat sich nun folgendes Problem ergeben...
Ich kann keinen Variablenwert zwischen UserForms hin und her geben..
Beispiel:
(Ich habe im allgemeinen Bereich der Arbeitsmappe die Variable als Public deklariert)
Ich hab in einer Excel-Datei einen Button, dort wird mit ner Inputbox nach dem Dateinamen gefragt. Nun wird eine Form geladen, wo der Dateiname angezeigt werden soll, aber die Variable wird bis dorthin nicht übergeben. Wie kann ich diese Variable Mappen-weit als Public deklarieren? Muss ich die Variable vielleicht abholen? Wenn ja: wie?
Es hat sich nun folgendes Problem ergeben...
Ich kann keinen Variablenwert zwischen UserForms hin und her geben..
Beispiel:
(Ich habe im allgemeinen Bereich der Arbeitsmappe die Variable als Public deklariert)
Ich hab in einer Excel-Datei einen Button, dort wird mit ner Inputbox nach dem Dateinamen gefragt. Nun wird eine Form geladen, wo der Dateiname angezeigt werden soll, aber die Variable wird bis dorthin nicht übergeben. Wie kann ich diese Variable Mappen-weit als Public deklarieren? Muss ich die Variable vielleicht abholen? Wenn ja: wie?
Antwort 6 von MrFry
Okay Sorry, Nighty hatte es schon erwähnt... es muss in einem allgemeinen Modul abgelegt werden. Wusste bis eben nicht was es ist, aber nun funzt es ;)
Danke!
Danke!

