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

Command Button mit Passwort

Forumthread: Command Button mit Passwort

Command Button mit Passwort
Arthur
Hallo zusammen
Ich moechte einen Commandbutton mit einem Passwort versehen.
Wenn man draufklickt: Bitte Passwort eingeben
falls es stimmt das Makro ausfuehren, welches ich dem Button zugewiesen habe.
Wie kann ich das machen, ich habe leider keine Ahnung.. :-(
Danke fuer eure Hilfe
Arthur
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Command Button mit Passwort
07.12.2011 19:38:22
ransi
HAllo
Versuch mal sowas:
Option Explicit
Option Compare Binary 'GROSS-klein Schreibung

Private Sub CommandButton1_Click()
    If Application.InputBox("Passwort eingeben", "PasswortBox", "Geheim", , , , , 2) <> "supergeheim" Then
        MsgBox "Passwort falsch"
        Exit Sub
    End If
    MsgBox "Hier jetzt dein MAkro"
End Sub


ransi
Anzeige
AW: Command Button mit Passwort
07.12.2011 19:49:02
Arthur
Option Explicit
Option Compare Binary 'GROSS-klein Schreibung
Private Sub CommandButton1_Click()
If Application.InputBox("Passwort eingeben", "PasswortBox", "Geheim", , , , , 2)  " _
supergeheim" Then
MsgBox "Passwort falsch"
Exit Sub
End If
MsgBox

Public Sub Aufteilen_1()
Dim wksKriterienSheet As Worksheet
Dim wksQuellSheet As Worksheet
Dim rngKriterium As Range
Dim wksNew As Worksheet
Dim wksTMP As Worksheet
Dim lngLastRow As Long
On Error GoTo Fin
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
For Each wksTMP In ThisWorkbook.Worksheets
If wksTMP.Name Like "#*" Then
wksTMP.Delete
End If
Next wksTMP
' Tabellenblatt mit Daten - Name ANPASSEN
Set wksQuellSheet = Worksheets("Necessary prefixes")
Set wksKriterienSheet = Worksheets.Add
wksKriterienSheet.Move After:= _
ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
lngLastRow = wksQuellSheet.Range("B" & Rows.Count).End(xlUp).Row
wksQuellSheet.Range("b1:b" & lngLastRow).AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=wksKriterienSheet.Range("b1"), Unique:=True
Set rngKriterium = wksKriterienSheet.Range("b2")
While rngKriterium.Value  ""
Set wksNew = Worksheets.Add
wksQuellSheet.Range("A1:N" & lngLastRow).AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=rngKriterium.Offset(-1).Resize(2), _
CopyToRange:=wksNew.Range("A1"), Unique:=True
Columns.AutoFit
wksNew.Name = rngKriterium.Text
rngKriterium.EntireRow.Delete
Set rngKriterium = wksKriterienSheet.Range("b2")
Wend
wksKriterienSheet.Delete
Fin:
With Application
.Goto wksQuellSheet.Range("A1"), True
.ScreenUpdating = True
.DisplayAlerts = True
End With
Set wksKriterienSheet = Nothing
Set wksQuellSheet = Nothing
Set rngKriterium = Nothing
Set wksNew = Nothing
End Sub
End Sub
Irgendwie geht das nicht, was mach ich falsch?
Anzeige
AW: Command Button mit Passwort
07.12.2011 20:02:54
ransi
HAllo
MAch so:
Option Explicit
Option Compare Binary 'GROSS-klein Schreibung

Private Sub CommandButton1_Click()
    If Application.InputBox("Passwort eingeben", "PasswortBox", "Geheim", , , , , 2) <> "supergeheim" Then
        MsgBox "Passwort falsch"
        Exit Sub
    End If
    Call Aufteilen_1
End Sub




Public Sub Aufteilen_1()
    Dim wksKriterienSheet As Worksheet
    Dim wksQuellSheet As Worksheet
    Dim rngKriterium As Range
    Dim wksNew As Worksheet
    Dim wksTMP As Worksheet
    Dim lngLastRow As Long
    On Error GoTo Fin
    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
    End With
    For Each wksTMP In ThisWorkbook.Worksheets
        If wksTMP.Name Like "#*" Then
            wksTMP.Delete
        End If
    Next wksTMP
    ' Tabellenblatt mit Daten - Name ANPASSEN
    Set wksQuellSheet = Worksheets("Necessary prefixes")
    Set wksKriterienSheet = Worksheets.Add
    wksKriterienSheet.Move After:= _
        ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
    lngLastRow = wksQuellSheet.Range("B" & Rows.Count).End(xlUp).Row
    wksQuellSheet.Range("b1:b" & lngLastRow).AdvancedFilter _
        Action:=xlFilterCopy, _
        CopyToRange:=wksKriterienSheet.Range("b1"), Unique:=True
    Set rngKriterium = wksKriterienSheet.Range("b2")
    While rngKriterium.Value <> ""
        Set wksNew = Worksheets.Add
        wksQuellSheet.Range("A1:N" & lngLastRow).AdvancedFilter _
            Action:=xlFilterCopy, _
            CriteriaRange:=rngKriterium.Offset(-1).Resize(2), _
            CopyToRange:=wksNew.Range("A1"), Unique:=True
        Columns.AutoFit
        wksNew.Name = rngKriterium.Text
        rngKriterium.EntireRow.Delete
        Set rngKriterium = wksKriterienSheet.Range("b2")
    Wend
    wksKriterienSheet.Delete
    Fin:
    With Application
        .Goto wksQuellSheet.Range("A1"), True
        .ScreenUpdating = True
        .DisplayAlerts = True
    End With
    Set wksKriterienSheet = Nothing
    Set wksQuellSheet = Nothing
    Set rngKriterium = Nothing
    Set wksNew = Nothing
End Sub






ransi
Anzeige
AW: Command Button mit Passwort
07.12.2011 20:29:24
Arthur
Kannst du mir kurz helfen und es direkt im File machen, irgendwie gehts nicht:
https://www.herber.de/bbs/user/77858.xls
Divide Prefixes, sollte man nur mit einem Passwort druecken und dann ausfuehren koennen.
Vielen Dank!
AW: Command Button mit Passwort
07.12.2011 20:40:35
ransi
HAllo
So ?
Option Explicit
Option Compare Binary 'GROSS-klein Schreibung


Public Sub Aufteilen_1()
    Dim wksKriterienSheet As Worksheet
    Dim wksQuellSheet As Worksheet
    Dim rngKriterium As Range
    Dim wksNew As Worksheet
    Dim wksTMP As Worksheet
    Dim lngLastRow As Long
    '######################
    '######################
    If Application.InputBox("Bitte Passwort eingeben", "PasswortBox", "", , , , , 2) <> "hallo" Then
        MsgBox "Passwort falsch"
        Exit Sub
    End If
    '######################
    '######################
    On Error GoTo Fin
    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
    End With
    For Each wksTMP In ThisWorkbook.Worksheets
        If wksTMP.Name Like "#*" Then
            wksTMP.Delete
        End If
    Next wksTMP
    ' Tabellenblatt mit Daten - Name ANPASSEN
    Set wksQuellSheet = Worksheets("Necessary prefixes")
    Set wksKriterienSheet = Worksheets.Add
    wksKriterienSheet.Move After:= _
        ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
    lngLastRow = wksQuellSheet.Range("B" & Rows.Count).End(xlUp).Row
    wksQuellSheet.Range("b1:b" & lngLastRow).AdvancedFilter _
        Action:=xlFilterCopy, _
        CopyToRange:=wksKriterienSheet.Range("b1"), Unique:=True
    Set rngKriterium = wksKriterienSheet.Range("b2")
    While rngKriterium.Value <> ""
        Set wksNew = Worksheets.Add
        wksQuellSheet.Range("A1:N" & lngLastRow).AdvancedFilter _
            Action:=xlFilterCopy, _
            CriteriaRange:=rngKriterium.Offset(-1).Resize(2), _
            CopyToRange:=wksNew.Range("A1"), Unique:=True
        Columns.AutoFit
        wksNew.Name = rngKriterium.Text
        rngKriterium.EntireRow.Delete
        Set rngKriterium = wksKriterienSheet.Range("b2")
    Wend
    wksKriterienSheet.Delete
    Fin:
    With Application
        .Goto wksQuellSheet.Range("A1"), True
        .ScreenUpdating = True
        .DisplayAlerts = True
    End With
    Set wksKriterienSheet = Nothing
    Set wksQuellSheet = Nothing
    Set rngKriterium = Nothing
    Set wksNew = Nothing
End Sub



ransi
Anzeige
AW: Command Button mit Passwort
07.12.2011 20:53:35
Arthur
wuaaaah, es geht! Vielen lieben Dank, danke!
Gruss
Arthur
AW: Command Button mit Passwort
07.12.2011 19:40:26
Hajo_Zi
Hallo Arthur,
dfas mußt Du mit einer UserForm machen, bei einer ImputBos ist der Aufwand groß.
http://hajo-excel.de/chCounter3/getfile.php?id=234

Anzeige
@Arthur
08.12.2011 13:42:27
robert
Hi,
wenn Du schon einen neuen Beitrag eröffnest, könntest Du den alten Beitrag schliessen !
Hab darauf geantwortet bzw. nachgefragt- war umsonst !
So macht man das nicht !
Gruß
robert
;
Anzeige
Anzeige

Infobox / Tutorial

Command Button mit Passwort in Excel VBA


Schritt-für-Schritt-Anleitung

Um einen Command Button in Excel mit einem Passwort zu versehen, kannst du die folgenden Schritte befolgen:

  1. Öffne Excel und aktiviere die Entwicklertools:

    • Wenn die Entwicklertools nicht sichtbar sind, aktiviere sie über Datei > Optionen > Menüband anpassen und aktiviere das Kästchen für Entwicklertools.
  2. Füge einen Command Button hinzu:

    • Klicke auf Einfügen in den Entwicklertools und wähle Button (Formularsteuerelement). Zeichne den Button auf dein Arbeitsblatt.
  3. Öffne den VBA-Editor:

    • Klicke mit der rechten Maustaste auf den Button und wähle Makro zuweisen.... Wähle Neues Makro, um den VBA-Editor zu öffnen.
  4. Füge den folgenden VBA-Code ein:

    Option Explicit
    Private Sub CommandButton1_Click()
       If Application.InputBox("Passwort eingeben", "PasswortBox", "", , , , , 2) <> "supergeheim" Then
           MsgBox "Passwort falsch"
           Exit Sub
       End If
       MsgBox "Hier jetzt dein Makro"
    End Sub
    • Dieser Code fragt nach einem Passwort und führt das zugewiesene Makro nur aus, wenn das Passwort korrekt eingegeben wird.
  5. Schließe den VBA-Editor:

    • Speichere die Änderungen und schließe den Editor.

Häufige Fehler und Lösungen

  • Fehler: Passwort wird immer als falsch angezeigt:

    • Überprüfe, ob du das Passwort im Code korrekt eingegeben hast. Achte auf Groß- und Kleinschreibung.
  • Fehler: Makro wird nicht ausgeführt:

    • Stelle sicher, dass du die Makros in Excel aktiviert hast. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center und aktiviere die Makros.
  • Fehler: InputBox erscheint nicht:

    • Überprüfe, ob der Code im richtigen Bereich (CommandButton1_Click) platziert wurde.

Alternative Methoden

Statt einer InputBox kannst du auch eine UserForm verwenden, was eine benutzerfreundlichere Oberfläche bietet. Hier sind die Schritte:

  1. Füge eine UserForm hinzu:

    • Gehe im VBA-Editor zu Einfügen > UserForm.
  2. Füge ein Textfeld und einen Button hinzu:

    • Platziere ein Textfeld (für die Passworteingabe) und einen Button (zur Bestätigung).
  3. Code für die UserForm:

    Private Sub CommandButton1_Click()
       If Me.TextBox1.Value <> "supergeheim" Then
           MsgBox "Passwort falsch"
           Exit Sub
       End If
       MsgBox "Hier jetzt dein Makro"
       Me.Hide
    End Sub
  4. Öffne die UserForm im CommandButton:

    Private Sub CommandButton1_Click()
       UserForm1.Show
    End Sub

Praktische Beispiele

Angenommen, du möchtest mit dem Passwortschutz ein Makro zur Aufteilung von Daten in Excel steuern. Hier ist ein Beispiel, wie du das umsetzen kannst:

Public Sub Aufteilen_1()
    Dim wksKriterienSheet As Worksheet
    Dim wksQuellSheet As Worksheet
    Dim rngKriterium As Range
    Dim wksNew As Worksheet
    Dim lngLastRow As Long

    ' Passwortabfrage
    If Application.InputBox("Passwort eingeben", "PasswortBox", "", , , , , 2) <> "supergeheim" Then
        MsgBox "Passwort falsch"
        Exit Sub
    End If

    ' (Der restliche Code für das Aufteilen von Daten folgt hier...)
End Sub

Tipps für Profis

  • Verwende Variablen für das Passwort: Anstatt das Passwort direkt im Code zu schreiben, definiere es in einer Variablen, um den Code flexibler zu gestalten.

  • Sichere das Passwort: Überlege, ob du das Passwort in einer externen Quelle speichern möchtest, um die Sicherheit zu erhöhen.

  • Benutzerfreundliche Meldungen: Gestalte die MsgBox-Nachrichten klar und informativ, um den Benutzer zu unterstützen.


FAQ: Häufige Fragen

1. Frage Wie kann ich den Command Button in Excel anpassen?

Antwort: Du kannst die Eigenschaften des Buttons anpassen, indem du mit der rechten Maustaste darauf klickst und Eigenschaften auswählst. Hier kannst du den Namen, die Größe und das Aussehen ändern.

2. Frage Kann ich mehrere Passwörter verwenden?

Antwort: Ja, du kannst mehrere Passwörter in deinen Code integrieren, indem du eine If-Bedingung für jedes Passwort hinzufügst.

3. Frage Funktioniert dieser Code in Excel 2016 und 365?

Antwort: Ja, der gezeigte VBA-Code sollte in Excel 2016 und 365 ohne Probleme funktionieren. Achte darauf, dass du Makros aktiviert hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige