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

Konstante ändern

Forumthread: Konstante ändern

Konstante ändern
23.07.2004 22:25:57
Werner
Guten Abend,
ich habe in einem Extramodul eine Public-Textkonstante als Password
hinterlegt.
Nun möchte ich diese gelegentlich ändern. Mir fällt dazu nichts
Passendes ein.
Danke für Hinweise.
mfg Werner
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Konstante ändern
Ramses
Hallo
Das ist der Sinn einer Konstanten :-)
Sie kann nicht geändert werden.
Workaround, wenn die Datei bzw. das Passwort nur Lokal auf einem Rechner immer wieder gespeichert oder verändert wird und du das Passwort nicht in der Datei haben willst, schreib den Wert in die Registry oder in ein INI-File
Alternativ schreib das Passwort in eine Tabelle, blende diese mit "xlVeryHidden" aus, und schütze dein VB_Projekt mit einem PW dass es niemand einsehen, kann und mach aus deiner Konstanten ein normale Public Variable und schreib in die Variable das Passwort aus der ausgeblendeten Tabelle.
Es ist doch egal ob das eine Konstante oder eine öffentliche Variable ist.
Gruss Rainer
Anzeige
AW: Konstante ändern
Werner
Hallo Rainer,
ich will der Konstanten keinen Wert zuweisen, soviel weiß ich auch, dass das
bei einer Konstanten nicht geht.
Ich will sie Physisch löschen oder überschreiben, sodass später in dem
Modul statt:
Public Const PW as String = "Werner"
Public Const PW as String = "Rainer"
steht, verständlicher?
mfg Werner
Anzeige
AW: Konstante ändern
Ramses
Hallo
das ist mir schon klar, aber wenn du die Zeile neu schreibst, änderst du auch gleichzeitig den Namen bzw. den Inhalt der Konstanten, und das ist zur Laufzeit nun mal nicht möglich.
Gruss Rainer
AW: Konstante ändern
Werner
Hallo Rainer,
geht doch, wird im Userform ausgeführt:

Private Sub cmdPW_Click()
With Application.VBE.ActiveVBProject.VBComponents("basPW").CodeModule
.DeleteLines 1, 1 'altes Passwort
.insertlines 1, "Public Const PW As String = " & """" & "Rainer" & """"
End With
End Sub

mfg Werner
Anzeige
AW: Konstante ändern
Ramses
Hallo
OK.
Wundert mich allerdings das EXCEL das zulässt ? !!
Na ja. Man lernt nie aus
Übrigens, Line 1 ist normalerweise "Option Explicit" :-)
Gruss RAiner
AW: Konstante ändern
Werner
Hallo Rainer,
wenn man das in den Optionen aktiviert hat, außerdem schrieb ich
"spezielles Modul", da brauch ich das nicht und es steht auch nicht da.
mfg Werner
Anzeige
;
Anzeige

Infobox / Tutorial

Konstante in Excel VBA ändern: Tipps und Tricks


Schritt-für-Schritt-Anleitung

Um eine Excel-Konstante in VBA zu ändern, kannst du folgende Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Navigiere zum Modul: Finde das Modul, in dem die Konstante definiert ist.

  3. Ändere den Code: Du kannst die Konstante nicht direkt ändern, aber du kannst sie mit einem VBA-Skript ersetzen. Verwende dazu folgenden Code:

    Private Sub cmdPW_Click()
       With Application.VBE.ActiveVBProject.VBComponents("basPW").CodeModule
           .DeleteLines 1, 1 'Löscht die alte Konstante
           .InsertLines 1, "Public Const PW As String = """ & "Rainer" & """"
       End With
    End Sub
  4. Speichern: Vergiss nicht, deine Änderungen zu speichern, bevor du den VBA-Editor schließt.


Häufige Fehler und Lösungen

  • Fehler: "Konstante kann nicht geändert werden."

    • Lösung: Denke daran, dass eine Konstante nicht zur Laufzeit geändert werden kann. Du musst sie physisch im Code löschen und neu definieren.
  • Fehler: "VBA-Projekt ist geschützt."

    • Lösung: Stelle sicher, dass du die Berechtigungen hast, um das Projekt zu bearbeiten. Ansonsten musst du das Passwort für das Projekt kennen.

Alternative Methoden

Wenn du eine Excel-Konstante nicht direkt ändern kannst, gibt es alternative Möglichkeiten:

  1. Öffne die Registry: Speichere das Passwort in der Windows-Registry oder in einer INI-Datei, um es bei Bedarf abzurufen.

  2. Verwende eine öffentliche Variable: Statt einer Konstante kannst du eine öffentliche Variable verwenden, die einfacher geändert werden kann:

    Public PW As String
  3. Versteckte Tabellen: Du kannst das Passwort in einer versteckten Tabelle speichern und die Tabelle mit „xlVeryHidden“ ausblenden.


Praktische Beispiele

Hier sind einige praktische Anwendungen für das Arbeiten mit VBA-Konstanten:

  • Passwortverwaltung: Wenn du ein Passwort in deinem VBA-Projekt verwenden möchtest, definiere es als Konstante und ersetze es bei Bedarf mit dem oben genannten Skript.
  • Konstanten für Berechnungen: Definiere Konstanten für Steuersätze oder Zinssätze, die in deinen Berechnungen verwendet werden.

Tipps für Profis

  • Verwende Public Const: Wenn du eine Konstante definierst, die in mehreren Modulen verwendet wird, definiere sie als Public Const, um ihre Sichtbarkeit zu erhöhen.
  • Dokumentation: Halte deine Konstanten gut dokumentiert, um später Änderungen leichter nachvollziehen zu können.
  • Regelmäßige Backups: Mache regelmäßig Backups deiner VBA-Projekte, besonders bevor du größere Änderungen vornimmst.

FAQ: Häufige Fragen

1. Kann ich eine Konstante während der Laufzeit ändern?
Nein, eine Konstante in VBA ist unveränderlich. Du musst sie löschen und neu definieren.

2. Was ist der Unterschied zwischen einer Konstante und einer Variablen?
Eine Konstante hat einen festen Wert, der bei der Ausführung des Codes nicht geändert werden kann. Eine Variable kann während der Laufzeit beliebig oft geändert werden.

3. Wie kann ich meine Konstanten besser organisieren?
Eine gute Praxis ist, alle Konstanten in ein separates Modul zu verschieben, damit sie einfach verwaltet und gefunden werden können.

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