Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Konstante aus Zelle auslesen

Konstante aus Zelle auslesen
07.09.2006 22:05:55
Ronaldo
Hallo zusammen,
ist es möglich, Konstanten aus einer Tabelle bzw. Zelle auszulesen ? Folgende Konstante habe ich:
Public Const Name As String = "Dateiname.xls"
Der Dateiname soll möglichst aus der Datei Report.xls Tabelle1 Zelle A1 ausgelesen werden.
Ist das überhaupt möglich ?
Würde mich freuen, wenn ich Hilfe bekommen könnte.
Danke
Ronaldo
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Konstante aus Zelle auslesen
07.09.2006 22:09:13
Rudi
Hi,
eine Konstante ist, wie der Name sagt, konstant und kann somit nicht mehr geändert
werden. Vielleicht meinst du ja eine Variable?
mfg Rudi
AW: Konstante aus Zelle auslesen
07.09.2006 22:16:26
Ronaldo
Hi,
während das Programm läuft, wird immer wieder auf eine Datei zugegriffen. Diese Datei ist als Konstante (Public Const Name As String = "Dateiname.xls") definiert. Beim nächsten Mal, wenn das Programm wieder laufen soll, muss der Dateiname geändert werden z.B. in Dateiname2.xls.
Die Änderung sollte allerdings in einer Excel-Tabelle erfolgen. Hoffe, dass ich mich etwas verständlicher ausgedrückt habe. Vielleicht geht es ja gar nicht ?
Danke für Deine Hilfe
Gruss
Anzeige
AW: Konstante aus Zelle auslesen
07.09.2006 22:27:22
Rudi
Hi,
wenn ich dich richtig verstehe, soll die Variable(Konstanten können nicht geändert werden) aus einer Zelle ausgelesen werden?
mfg Rudi
AW: Konstante aus Zelle auslesen
07.09.2006 22:36:18
Ronaldo
Ja genau. :-)
AW: Konstante aus Zelle auslesen
07.09.2006 22:43:13
Rudi
Hi,
nachdem das geklärt ist nun konkret, wie sieht das angestrebte Ziel aus, was soll konkret passieren?
mfg Rudi
Anzeige
AW: Konstante aus Zelle auslesen
07.09.2006 23:01:49
Ronaldo
Also gut, ich probiere es noch einmal. Leider habe ich nicht mega viel Erfahrung mit VBA, daher kann ich das wahrscheinlich nicht gut erklären. Also, ich habe eine VBA-Prozedur. In diesem Programm kommt folgender Befehl mehrmals vor :
Windows("Dateiname1.xls").Activate Damit bei Veränderungen des Dateinamens nicht viel gesucht werden muss, wurde eine Konstante eingebaut:
Public Const Dateiname As String , somit wurde der Befehl geändert in :
Windows(Dateiname).Activate
Jetzt war meine Frage, ob ich den Dateinamen, der sich von Tag zu Tag verändern kann, morgen könnte er "Dateiname2.xls" heissen, aus einer Datei auslesen kann, in die der Dateiname manuell eingetragen wird.
Falls unverständlich, werde ich aufgeben. Dann muss ich mir etwas anderes überlegen. Aber danke für Deine Mühe !
Gruss
Ronaldo
Vielleicht
Anzeige
AW: Konstante aus Zelle auslesen
07.09.2006 23:05:26
{Boris}
Hi Ronaldo,
Dim Dateiname As String
Dateiname = Worksheets("Tabelle1").Range("A1")
Aber zusätzlich zur Info: Die verschiedenen Windows brauchst du nicht zu aktivieren, wenn Du mit Objektvariablen arbeitest.
Grüße Boris
AW: Konstante aus Zelle auslesen
07.09.2006 23:06:59
Rudi
Hi,
"Jetzt war meine Frage, ob ich den Dateinamen, der sich von Tag zu Tag verändern kann, morgen könnte er "Dateiname2.xls" heissen, aus einer Datei auslesen kann, in die der Dateiname manuell eingetragen wird."
Ja, das geht, nur verstehe ich den Umweg über die andere Datei nicht.
mfg Rudi
Anzeige
AW: Konstante aus Zelle auslesen
07.09.2006 23:18:02
Ronaldo
Hi,
die VBA-Anweisung wird generell in Datei1 gestartet. Dann wird immer auf andere Dateien zugegriffen, wie bereits beschrieben. Die andere Datei, auf die zugegriffen werden muss, wird täglich anders heissen. Damit nicht täglich der Name der neuen Datei 30x geändert werden muss, wurde eine Konstante eingebaut. Da die User des Programms die Konstante nicht im VBA-Bereich verändern können, dachte ich, dass der Dateiname in Datei1 Tabelle1 eingetragen werden kann und das Programm liest den Namen aus.
Anzeige
AW: Konstante aus Zelle auslesen
07.09.2006 23:22:37
Rudi
Hi,
jetzt ist es plausibler, schematisch:
Dim Variable As String
Variable = Sheets("Tabelle1").Range("A1")
mfg Rudi
AW: Konstante aus Zelle auslesen
07.09.2006 23:29:50
Ronaldo
Hi Rudi,
es muss auch die Datei definiert sein, in der sich die Tabelle1 befindet.
Sheets("Tabelle1").Range("A1") ist Ok, aber die Datei "Datei2.xls" muss aktiviert werden, damit auf die Tabelle1 zugegriffen werden kann.
Anzeige
AW: Konstante aus Zelle auslesen
07.09.2006 23:39:48
Rudi
Hi,
"Datei2.xls" muss aktiviert werden, damit auf die Tabelle1 zugegriffen werden kann."
Das ist nicht erforderlich, am einfachsten wird der Wert per Formel in die Mappe geholt, alternativ mit Excel4-Makro.
mfg Rudi
AW: Konstante aus Zelle auslesen
07.09.2006 23:42:47
Ronaldo
Danke für Deine Hilfe Rudi !
Gruss
Ronaldo
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Konstanten aus Zellen in Excel auslesen


Schritt-für-Schritt-Anleitung

  1. Öffne das Visual Basic for Applications (VBA) Fenster:

    • Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.
  2. Erstelle eine neue Modul:

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

    • Statt eine Konstante zu verwenden, kannst du eine Variable definieren, um den Dateinamen aus einer Zelle auszulesen. Füge den folgenden Code in das Modul ein:
    Dim Dateiname As String
    Dateiname = Worksheets("Tabelle1").Range("A1").Value
  4. Verwende die Variable in deinem Code:

    • Anstatt Public Const Name As String = "Dateiname.xls" zu verwenden, kannst du jetzt Windows(Dateiname).Activate nutzen, um die Datei zu aktivieren.
  5. Führe deinen Code aus:

    • Stelle sicher, dass die Zelle A1 in Tabelle1 den Namen der Datei enthält, die du öffnen möchtest, und führe dann deinen Code aus.

Häufige Fehler und Lösungen

  • Fehler: "Typen nicht übereinstimmend":

    • Lösung: Stelle sicher, dass in der Zelle A1 tatsächlich ein gültiger Dateiname steht.
  • Fehler: Die derzeit ausgewertete Zelle enthält eine Konstante:

    • Lösung: Überprüfe, ob du eine Konstante versuchst zu ändern. Verwende stattdessen eine Variable.
  • Fehler: Datei nicht gefunden:

    • Lösung: Vergewissere dich, dass der Dateiname in der Zelle korrekt eingegeben ist und die Datei existiert.

Alternative Methoden

  • Excel-Formeln verwenden: Du kannst den Dateinamen auch direkt in eine Formel einfügen, um ihn zu referenzieren, anstatt VBA zu verwenden.

  • Excel4-Makros: Eine weitere Möglichkeit ist die Verwendung von Excel4-Makros, die dir helfen können, Werte aus anderen Arbeitsmappen zu holen, ohne diese aktivieren zu müssen.


Praktische Beispiele

  1. Einfaches Beispiel:

    Dim Dateiname As String
    Dateiname = Sheets("Tabelle1").Range("A1").Value
    MsgBox "Der Dateiname ist: " & Dateiname
  2. Mit Fehlerbehandlung:

    Dim Dateiname As String
    On Error Resume Next
    Dateiname = Sheets("Tabelle1").Range("A1").Value
    If Err.Number <> 0 Then
       MsgBox "Fehler beim Auslesen des Dateinamens!"
    End If
    On Error GoTo 0

Tipps für Profis

  • Verwende Option Explicit: Setze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.

  • Nutze Public Const nur für feste Werte: Verwende Public Const nur für Werte, die sich nicht ändern, wie feste Konstanten. Für dynamische Werte ist eine Variable die bessere Wahl.

  • Dokumentiere deinen Code: Kommentiere deine VBA-Prozeduren, um klarzustellen, was jede Zeile bewirkt. Dies erleichtert die Wartung und das Verständnis deines Codes.


FAQ: Häufige Fragen

1. Kann ich eine Konstante in Excel VBA ändern? Nein, eine Konstante ist, wie der Name schon sagt, konstant und kann nicht geändert werden. Du solltest eine Variable verwenden, wenn du einen änderbaren Wert benötigst.

2. Wie lese ich eine Zelle als Konstante in VBA? Es ist nicht möglich, eine Zelle direkt als Konstante in VBA zu definieren. Du kannst jedoch eine Variable definieren, die den Wert der Zelle speichert und diesen Wert in deinem Code verwenden.

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