Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Variable definieren für Arbeitsmappe

Variable definieren für Arbeitsmappe
20.12.2005 21:13:44
andreas2
Hallo Leute,
ich möchte beim öffnen einer datei in der Prozedur

Private Sub Workbook_Open()
eine variable speichern die in allen Modulen der Datei verfügbar ist.
Option Explicit
Public sPfad As String

Private Sub Workbook_Open()
sPfad = UCase(GetSetting("sba", "benutzer", "pfad"))
End Sub

Den Inhalt von sPfad möchte ich nun in verschiedenen Modulen in der Arbeitsmappe verwenden. sPfad ist aber leider leer
Gelingt mir nicht.
Wer kann mir helfen? Danke, Andreas
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable definieren für Arbeitsmappe
20.12.2005 21:23:26
Hajo_Zi
Hallo Andreas,
die Variable muß in einem Modul definiert werden.


AW: Variable definieren für Arbeitsmappe
21.12.2005 14:23:03
andreas2
Danke Hajo,
hat geklappt!
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Variable definieren für Arbeitsmappe


Schritt-für-Schritt-Anleitung

Um eine Variable in einer Excel-Arbeitsmappe so zu definieren, dass sie in allen Modulen zur Verfügung steht, folge diesen Schritten:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein Modul hinzu:

    • Klicke im Projektfenster mit der rechten Maustaste auf deine Arbeitsmappe und wähle Einfügen > Modul.
  3. Definiere die Variable:

    • In dem neuen Modul füge den folgenden Code ein:
    Option Explicit
    Public sPfad As String
  4. Fülle die Variable beim Öffnen der Arbeitsmappe:

    • Gehe zu DieseArbeitsmappe und füge den folgenden Code hinzu:
    Private Sub Workbook_Open()
       sPfad = UCase(GetSetting("sba", "benutzer", "pfad"))
    End Sub
  5. Speichern und Schließen:

    • Speichere die Arbeitsmappe als xlsm, um die Makros zu aktivieren, und schließe den VBA-Editor.

Jetzt kannst du die Variable sPfad in jedem anderen Modul deiner Arbeitsmappe verwenden.


Häufige Fehler und Lösungen

  • Variable bleibt leer: Wenn die Variable sPfad leer bleibt, stelle sicher, dass die Funktion GetSetting den richtigen Wert zurückgibt. Überprüfe die eingegebenen Parameter und die Registry-Einträge.

  • Fehlermeldung beim Zugriff auf die Variable: Wenn du versuchst, auf sPfad zuzugreifen und eine Fehlermeldung bekommst, vergewissere dich, dass die Option Explicit-Anweisung nicht fehlt. Diese zwingt dich dazu, alle Variablen zu deklarieren.


Alternative Methoden

Es gibt verschiedene Möglichkeiten, um Daten zwischen Modulen in Excel VBA zu übergeben:

  1. Globale Variablen in einem Modul: Definiere globale Variablen in einem Standardmodul, sodass sie in der gesamten Arbeitsmappe verfügbar sind.

  2. Benutzerdefinierte Funktionen: Erstelle eine Funktion, die den Wert zurückgibt, den du benötigst. Dies kann nützlich sein, wenn du den Wert dynamisch berechnen möchtest.


Praktische Beispiele

Angenommen, du möchtest den Pfad einer Datei speichern und in verschiedenen Modulen verwenden:

' Modul1
Public sPfad As String

' DieseArbeitsmappe
Private Sub Workbook_Open()
    sPfad = "C:\Users\DeinName\Documents\Beispiel.xlsx"
End Sub

' Modul2
Sub ZeigePfad()
    MsgBox "Der Pfad ist: " & sPfad
End Sub

Hier wird beim Öffnen der Arbeitsmappe der Pfad gesetzt und kann in Modul2 angezeigt werden.


Tipps für Profis

  • Verwende Option Explicit, um die Fehleranfälligkeit zu reduzieren und sicherzustellen, dass alle Variablen korrekt deklariert sind.
  • Halte deine Variablen benannt und dokumentiert, um die Lesbarkeit des Codes zu erhöhen.
  • Nutze die Debug.Print-Funktion, um die Werte deiner Variablen während der Entwicklung zu überprüfen, ohne dass der Nutzer eine Meldung sieht.

FAQ: Häufige Fragen

1. Warum funktioniert GetSetting nicht?
GetSetting gibt nur Werte zurück, die in der Windows-Registry gespeichert sind. Stelle sicher, dass der angegebene Schlüssel existiert und einen Wert hat.

2. Wie kann ich die Variable in einer anderen Arbeitsmappe verwenden?
Wenn du eine Variable in einer anderen Arbeitsmappe verwenden möchtest, musst du diese Arbeitsmappe öffnen und sicherstellen, dass die Variable ebenfalls dort definiert ist, oder du kannst die Variable als Parameter an die Funktionen übergeben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige