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

Public Variable Frage

Public Variable Frage
15.11.2021 16:17:48
Andreas
Hallo Leute,
ich habe mal eine Frage bezüglich der benennung von Variablen:
WIe kann ich erreichen, dass mir eine Variable immer unter einem Namen in allen Prozeduren erreichbar ist. WIe deklariere ich diese richtig?
Bsp. gespeichert werden soll in die Variable sDateiAnfrage ein Pfad, der sich aus dem Workbook PFad und einem Namen zusammensetzt, folglich:
Dazu müsste ich aber auch immer das Sub, zb in der Workbook_Open Prozedur aufrufen.
option Explicit
Public sDateiAnfrage As String

Public Sub Verzeichnis()
sDateiAnfrage = ActiveWorkbook.path & "\ZWA-Anfrage.txt"
End Sub

gehts einfacher, vielleicht so, dass ich mir das Sub spare ? dachte an sowas gleich im Kopf
Option explicit
Public Const sDateiAnfrage As String = ActiveWorkbook.path & "\ZWA-Anfrage.txt"
leider funktioniert meine Idee beim 2. Beispiel nicht... Was mache ich falsch oder kann man das so nicht deklarieren?

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Public Variable Frage
15.11.2021 16:53:22
Piet
Hallo
bei Public Const muss der Text komplett in "" Zeichen stehen! Das ActiveWorkbbok.Path musst du im Code mit angerben Oder halt als Sub Makro aufrufen.
mfg Piet
AW: Public Variable Frage
15.11.2021 17:29:25
onur
Bei Konstanten muss der Wert bei der Deklarierung schon feststehen und kann NICHT mit Variablen gesetzt werden (da ja sonst KEINE Konstante, sondern Variable).
AW: Public Variable Frage
15.11.2021 17:47:06
Daniel
Hi
Konstanten müssen halt auch schon bei der Definition "konstant" sein, dh das geht mit im Quellcode fest definierten Werten, so wie Piet ja schon geschrieben hat.
Workarounds, wenn man im Code keine Zuweisung haben will, gibts verschiedene:
a) man legt die Konstante als Funktion an:

Public Function sDateiAnfrage() AS String
sDateiAnfrage = ActiveWorkbook.path & "\ZWA-Anfrage.txt"
End Function
Und ruft dann im Code die Funktion auf:

Worbooks(...).saveas sDateiAnfrage(), ...
Ob man die () braucht oder ob man die beim Aufruf weglassen darf wenn keine Parameter über geben werden, müsstest du mal testen.
b) wenn sich der Ausdruck auch per Formel erzeugen lässt (was bei dir möglich sein sollte, für den Pfad/Dateinamen gibt es eine Funktion), kann man auch den Wert in einer Zelle erzeugen und dann die Zelle einem Namen zuweisen, oder man schreibt die Formel gleich einen Excel-Namen.
Im Makro man dann auf diesen Namen zugreifen, in dem man ihn in eckige Klammern setzt: [xxx]

Worbooks(...).saveas [sDateiAnfrage], ...
Aber verwenden würde ich beides nur, wenn du die Konstante in mehreren Makros benötigt, die aber unabhängig von einander ausgeführt werden können.
Sobald du einen geregelten Ablauf hast, bei dem ein bestimmtes Makro immer am Anfang ausgeführt wird und im welchem die Zuweisung erfolgen könnte, würde ich dies auch so tun und die Variablenlösung nehmen.
Gruß Daniel
Anzeige
AW: Public Variable Frage
16.11.2021 08:08:29
Andreas
Vielen lieben Dank für die Aufklärungsrunde :) Ich glaube ich werde es einmalig als Sub laufen lassen und die Variablen weiterhin Global benennen.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige