.
.
.
.
.
.

Auftragsprogrammierung

Projektanfrage über Web Formular   per Online-Formular 
Projektanfrage über E-Mail  Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
Projektanfrage per Telefon  +49 (0)151 / 164 55 914
Projektanfrage weitere Informationen  weitere Informationen 

Sie benötigen Hilfe oder Unterstützung? Nutzen Sie für Ihre Anfrage unser Online-Formular, senden Sie uns eine Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!  oder rufen Sie uns einfach an.

Für kurze Fragen und einfachere Problemlösungen bieten wir unseren Quick-Support an.

Referenzen

 Bosch 
  T-Systems
  Hagebau
  Siemens
 Areva  VW
 Haufe-Lexware  British American Tobacco
  nagel group farbe
 

VBA Passwort über ein VBA-Makro automatisch aufheben

In diesem Beitrag erfahren Sie, wie per VBA-Makro ein mit Passwort gesichertes VBA-Makro automatisch entsperrt werden kann. Es geht nicht darum, den VBA-Schutz zu haken. Bei der vorgestellten Methode benötigen Sie das korrekte VBA Passwort.

Ziel der vorgestellten Lösung ist es, den VBA-Schutz über ein VBA-Makro automatisch zu entfernen um beispielsweise den vorhandenen Code der geschützen Arbeitsmappe automatisch per VBE-Programmierung verändern und updaten zu können. In der Praxis kommt es immer wieder vor, dass an ausgelieferten VBA-Programmen, die von einer Vielzahl von Anwendern eingesetzt werden, nachträglich kleinere Veränderungen vorgenommen werden müssen. Um nicht das komplette Excel-Programm, welches unter Umständen auch bereits erfasste Daten enthält komplett (einschl. der Daten) austauschen zu müssen, können die Änderungen am VBA-Code über die sogenannte VBE-Programmierung automatisiert durchgeführt werden.

Unter VBE-Programmierung versteht man das Verändern von VBA-Code durch VBA-Makros. Das bedeutet, das VBA-Code durch VBA-Code verändert wird. Mit dieser Vorgehensweise lassen sich Software-Updates relativ leicht durchführen, allerdings nur, wenn der VBA-Code nicht mit einem Passwort geschützt ist. Genau an dieser Stelle beginnt aber in der Regel die Problematik mit Updates von VBA-Programmen. In der Regel ist der VBA-Code mit einem Passwort versehen, damit keine Änderungen (absichtlich oder unabsichtlich) am Code vorgenommen werden können.
Um nun per VBE-Programmierung den Code zu ändern, muss zunächst das VBA-Passwort aufgehoben werden. Aus Sicherheitsgründen stellt Microsoft aber dafür keine Standard-Methode zur Verfügung. Das nachfolgende vorgestellte Verfahren verwendet die Anweisung SenkKeys, um das Passwort an den VBA-Editor zu übergeben um damit den Passwortschutz aufzuheben.

So funktioinert´s:

Als Ausgangsdatei liegt das Excel-Dokument Proggi.xls vor. Diese Excel-Datei ist mit einem Passwort, im Beispiel mit dem Passwort "pwd123" geschützt und enthält VBA-Code, der geändert werden soll.

Bei der Excel-Datei Update-Tool.xls handelt es sich um das Programm, welches die Datei Proggi.xls updaten, also mit neuem VBA-Code versehen soll.

Damit das updaten von VBA-Code in einer geschützten Excel-Datei funktionieren kann, muss in dieser Datei bereits eine Vorkehrung getroffen werden. Es ist erforderlich, dass der folgende VBA-Code in der geschützten Datei "Progi.xls" bereits vorhanden ist:

Sub VBAaufheben() 'VBA-Kennwort aufheben
   SendKeys "%{F11}%xi{TAB 9}" & "pwd123" & "{tab}{enter 2}%q"
End Sub


Dieser sorgt dafür, dass per SendKeys das bekannte VBA-Passwort aufgehoben werden kann.

Der nachfolgende Code befindet sich in der Datei Update-Tool.xls. Mit diesem Code wird die Prozedur Sub VBAaufheben() in der geschützten Datei Proggi.xls ausgeführt, welche den VBA-Schutz entsprechend aufhebt.

Sub pwd_aufheben()
Workbooks("Proggi.xls").Activate
Application.Run "Proggi.xls!VBAaufheben"
End Sub


Damit das Passwor t in der Datei Proggi.xls aufgehoben werden kann, müssen zwei Voraussetzungen erfüllt sein:

  1. Das geschützte Programm "Proggi.xls" sowie das Update-Programm "Update-Tool.xls" müssen beide in Excel geöffnet sein.
  2. Der VBA-Editor muss geschlossen sein, er darf nicht im Hintergrund offen sein.

Wenn nun in der Datei Update-Tool.xls die Prozedur pwd_aufheben() ausgeführt wird, wird das Passwort in der Datei "Proggi.xls" aufhehoben und die Bearbeitung des VBA-Code per VBE-Programmierung kann durchgeführt werden.

Nachdem die Datei Proggi.xls upgedatet wurde, genügt es das Programm per VBA zu speichern und zu schließen. Beim nächsten Aufruf ist das VBA-Passwort wieder aktiv und der geänderte VBA-Code ist nach wie vor sicher.

Die beiden Beispielprogramme können über die nachfolgenden Links heruntergeladen werden.

Drucken E-Mail

Relevante Artikel

  • Anzahl Formeln in einer Arbeitsmappe ermitteln

    Mit Hilfe dieser Prozedur werden alle Formeln einer Arbeitsmappe ermittelt werden. Dies kann beispielsweise für statistische Zwecke nützlich sein. Die...

  • VBA-Makro in externer Arbeitsmappe aufrufen

    Im Normalfall befindet sich der VBA-Code der ausgeführt werden soll in der aktiven, also der aktuell geöffneten Arbeitsmappe.In bestimmten Fällen...

  • XML Datei per VBA erzeugen

    In diesem Beispiel zeigen wir Ihnen, wie XML Dateien per VBA erzeugt werden können. Als Ausgangsdatei dient eine kleine Adressliste, die als...

  • Autokorrekturliste auslesen

    Wie alle Office-Programme, enthält auch Excel die Autokorrektur-Funktion. Ab Excel 2007 ist diese über die Backstage (Datei / Excel Optionen /...

  • Gruppieren und Filtern trotz Blattschutz

    Sobald der Blattschutz aktiviert ist, gibt es keine Möglichkeit mehr, die Gruppierungsfunktion bzw. die Autofilterfunktion über Excel-Standards zu...

Projektanfrage

 Sie benötigen eine Auftragsprogrammierung?
 Oder suchen Unterstützung bei der 
 Lösungsfindung?

  Nutzen Sie unser Anfrageformular

  Jetzt anrufen unter 0151 / 164 55 914

 Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! Projektanfrage per Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! senden

  Weitere Informationen

sitepanel question2

P
R
O
J
E
K
T
A
N
F
R
A
G
E
Ihre Zufriedenheit ist unser Ziel, deshalb verwenden wir Cookies. Mit diesen ermöglichen wir, dass unsere Webseite zuverlässig und sicher läuft, wir die Performance im Blick behalten und Sie besser ansprechen können. Cookies werden benötigt, damit technisch alles funktioniert und Sie auch externe Inhalte lesen können. Des Weiteren sammeln wir unter anderem Daten über aufgerufene Seiten, getätigte Käufe oder geklickte Buttons, um so unser Angebot an Sie zu Verbessern. Mehr über unsere verwendeten Dienste erfahren Sie unter „Weitere Informationen“. Mit Klick auf „Akzeptieren“ erklären Sie sich mit der Verwendung dieser Dienste einverstanden. Ihre Einwilligung können Sie jederzeit mit Wirkung auf die Zukunft widerrufen oder ändern.