Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1572to1576
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
Userform Passwort Abfrage vor Makro
20.08.2017 10:37:27
ben1900
Hallo,
ich habe hier bereits einen Eintrag zu dem Thema gefunden, doch leider funktioniert das ganze nicht wie es soll.
Zu meiner Aufgabe, ich habe eine Excel mit einem Makro, dieses Makro darf aber nur eingeben werden, nachdem man ein Passwort eingegeben hat.
Bedingung hier das Passwort darf nur mit ****** angezeigt werden. Also kommt ja nur die Userform in Frage, die Userform steht auch in so weit. Einen Benutzernamen benoetige ich nicht, ebenfalls sind mehrere Passwoerter nicht notwendig.
Ich habe nun eine Userform mit:
-Label1 (benannt in "Passwort:")
-Textbox1 (PasswortChar:*)
-CommandButton1 (benannt in "OK")
-CommandButton2 (benannt in "Abbrechen")
Nun habe ich hunderte Foren Beitraege gelesen und bin nun total verwirrt und verstehe nix mehr.
Wuerde mich um eine Hilfestellung sehr freuen !

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

Betreff
Datum
Anwender
Anzeige
AW: Userform Passwort Abfrage vor Makro
20.08.2017 10:39:20
Hajo_Zi
nur wenige schauen auf Deinen Rechner und sehen die Datei.
Ich möchte gerne den Fehler im Original sehen.
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren.
UserForm ist nicht notwendig.
http://hajo-excel.de/gepackt/fremd/inputbox.zip

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Anzeige
Und warum antwortest Du, wenn
20.08.2017 11:03:30
WF
Du nicht antworten willst ?
AW: Userform Passwort Abfrage vor Makro
20.08.2017 11:04:39
ben1900
Ok alles klar, wenn keine Userform notwendig ist habe ich ja schon fast die Loesung, mir fehlt dann nur die Geschichte, dass das Passwort im Klartext erscheint.
Hier mein Makro:
Sub tip_ein()
' tip_ein Makro
Dim Passwort As String
Passwort = Application.InputBox(prompt:="Geben Sie das Passwort ein", Type:=2)
If Passwort  "cresor" Then Exit Sub
Range("AF27:AI31").Select
With Selection.Font
.Color = -16711681
.TintAndShade = 0
End With
Application.Goto Reference:="R38C27"
End Sub
Die komplette ist leider 2 MB gross und kann ich hier nicht hochladen.
Anzeige
AW: Userform Passwort Abfrage vor Makro
20.08.2017 11:05:37
Hajo_Zi
ich bin dann raus, da meine Beiträge nicht komplett gelesen werden.
Das wird schon seinen Grund haben.
Gruß Hajo
AW: Userform Passwort Abfrage vor Makro
20.08.2017 11:17:59
Sepp
Hallo Ben,
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

'////////////////////////////////////////////////////////////////////
'Password masked inputbox
'Allows you to hide characters entered in a VBA Inputbox.
'
'Code written by Daniel Klann
'March 2003
'////////////////////////////////////////////////////////////////////


'API functions to be used
Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _
  ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long

Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long

Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _
  (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long

Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long

Private Declare Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" _
  (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, _
  ByVal lpClassName As String, ByVal nMaxCount As Long) As Long

Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long

'Constants to be used in our API functions
Private Const EM_SETPASSWORDCHAR = &HCC
Private Const WH_CBT = 5
Private Const HCBT_ACTIVATE = 5
Private Const HC_ACTION = 0


Private hHook As Long


Private Function NewProc(ByVal lngCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim RetVal
Dim strClassName As String, lngBuffer As Long

If lngCode < HC_ACTION Then
  NewProc = CallNextHookEx(hHook, lngCode, wParam, lParam)
  Exit Function
End If

strClassName = String$(256, " ")
lngBuffer = 255

If lngCode = HCBT_ACTIVATE Then 'A window has been activated
  
  RetVal = GetClassName(wParam, strClassName, lngBuffer)
  
  If Left$(strClassName, RetVal) = "#32770" Then 'Class name of the Inputbox
    
    'This changes the edit control so that it display the password character *.
    'You can change the Asc("*") as you please.
    SendDlgItemMessage wParam, &H1324, EM_SETPASSWORDCHAR, Asc("*"), &H0
  End If
  
End If

'This line will ensure that any other hooks that may be in place are
'called correctly.
CallNextHookEx hHook, lngCode, wParam, lParam

End Function

Private Function InputBoxDK(Prompt, Title) As String
Dim lngModHwnd As Long, lngThreadID As Long

lngThreadID = GetCurrentThreadId
lngModHwnd = GetModuleHandle(vbNullString)

hHook = SetWindowsHookEx(WH_CBT, AddressOf NewProc, lngModHwnd, lngThreadID)

InputBoxDK = InputBox(Prompt, Title)
UnhookWindowsHookEx hHook

End Function

Sub tip_ein()
'
' tip_ein Makro
'
Dim Passwort As String

Passwort = InputBoxDK("Geben Sie das Passwort ein", "Passwort")

If Passwort <> "cresor" Then
  MsgBox "Falsches Passwort!"
Else
  With Range("AF27:AI31").Font
    .Color = -16711681
    .TintAndShade = 0
  End With
  Application.Goto Reference:="R38C27"
End If
End Sub

Gruß Sepp

Anzeige
AW: Userform Passwort Abfrage vor Makro
20.08.2017 11:33:41
ben1900
Mega Sepp,
vielen Dank !
Wuensche dir einen schoenen Sonntag !

18 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige