Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
744to748
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
744to748
744to748
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Userform ausblenden und Funktion abbrechen

Userform ausblenden und Funktion abbrechen
19.03.2006 11:24:38
Konni
Hallo Freaks,
ich habe von Peter Feustel (Vielen Dank nochmal) freundlicherweise nachstehenden Code bekommen. Ich bekomme es jedoch nicht hin, beim Betätigen der Schaltfläche "Abbrechen" die UserForm zu schließen, ohne dass der Code abläuft.
Option Explicit
' bei Klick auf den CommandButton1 wird das Passwort verglichen
' wurde es richtig eingegeben, wird das Makro verlassen und die
' weitere Verarbeitung kann beginnen.
' Wurde es falsch eingegeben, kommt ein Hinweis und das Passwort
' wird erneut abgefragt.

Private Sub CommandButton1_Click() 'Code der Userform freundlicherweise von Peter Feustel 18.03.06
If TextBox1 = Passw Then
MsgBox "Das eingegebene Passwort ist richtig!" & vbLf & vbLf & "Es werden nun die Tabllen zur weiteren Bearbeitung durch den Einkauf angezeigt!", _
64, "   Passwort Verhandlungsleiter/-in:"
Unload UserForm1
Else
MsgBox "Sie haben ein falsches Passwort eingegeben!" & vbLf & vbLf & "Diese Funktion ist nur für den Einkauf bestimmt!", _
16, "   Passwort Verhandlungsleiter/-in:"
With TextBox1
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
End Sub


Private Sub CommandButton2_Click()
'UserForm1.Hide
Unload Me
End Sub

' Beim Laden des UserForm(ulars) wird die TextBox zur Passwort-
' Eingabe mit Sternchen maskiert.

Private Sub UserForm_Activate()
TextBox1.PasswordChar = "*"
End Sub

' wird das Schließen-Kreuz betätigt, wird die Mappe gesichert und beendet

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
ThisWorkbook.Save
ThisWorkbook.Close
End If
End Sub

Peter ist vermutlich außer Haus, sonst hätte er sich bestimmt schon gemeldet.
Ich stelle daher meine Frage an das Forum, weil mir die Zeit davonläuft.
Gruß und Dank vorab:
Konni

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

Betreff
Datum
Anwender
Anzeige
AW: Geht leider nicht!
19.03.2006 14:47:45
Konni
Hallo Nepumuk,
mit Deinem Code klappt es leider nicht. Es werden trotzdem die anderen Tabellen eingeblendet.
Grüße:
Konni :-(
AW: Geht leider nicht!
19.03.2006 14:54:38
Juergen
Also wenn ich auf (x) klicke kommt die anzeige..."jetzt gehts weiter" und die arbeitsmappe wird geschlossen.
was soll den gehen ?
AW: Geht leider nicht!
19.03.2006 15:51:05
Konni
Hallo Jürgen,
es geht nicht um ( X ), sondern um die Schaltfläche "Abbrechen".
Gruß
Konni
AW: Geht leider nicht!
19.03.2006 15:07:12
Nepumuk
Hallo Konni,
1. Da fehlt im QueryClose-Ereignis noch das setzen der Variablen. Ändere das mal so:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = vbFormControlMenu Then
        blnCancel = True
        ThisWorkbook.Saved = True
        If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close
    End If
End Sub

2. Kann ich nur raten, wie dein Makro zum Aufruf des Userforms aussieht und wie es dann weiter geht. Soll ich? Kommt aber bestimmt nichts brauchbares dabei raus!!!
Gruß
Nepumuk

Anzeige
AW: Geht leider nicht!
19.03.2006 16:12:24
Konni
Hallo Nepumuk,
nachstehend der Code mit Makro "EK_Register_einblenden()". Und dieses Makro läuft auch, wenn ich die Schaltfläche "Abbrechen" betätige. - Bin am verzweifeln!!!
Danke für Deinen Einsatz
Grüße:
Konni :-((
Option Explicit
'
' das zur Zeit einzige Passwort als Public Konstante, d. h. gültig
' für alle Makros der Mappe.
Public blnCancel As Boolean
Public Const Passw = "Passwort"
' Aufruf der UserForm
Public

Sub UserForm1_anzeigen() 'freundlicherweise von Peter Feustel 18.03.06
UserForm1.Show
End Sub

' Bei Klick auf die Schaltfläche im Tabellenblatt wir das nachfolgende
' Makro aufgerufen.
' Es nimmt den Schutz vom Tabellenblatt und blendet das UserForm(ular)
' ein, damit das Passwort eingegeben werden kann.
' Wurde das richtige Passwort eingegeben, kommt ein Hinweis und die
' weitere Verarbeitung kann erfolgen.
' Sowohl das Tabellenblatt, als auch die gesamte Mappe werden mit einem
' Passwort-Schutz versehen.
Public

Sub EK_Register_einblenden()
ActiveWorkbook.Unprotect Password:=Passw
Call UserForm1_anzeigen
'MsgBox "Es werden nun alle Tabellen zur weiteren Bearbeitung durch den Einkauf angezeigt"
ActiveSheet.Shapes("Button 115").Visible = Not ActiveSheet.Shapes("Button 115").Visible = True
ActiveSheet.Shapes("Button 116").Visible = Not ActiveSheet.Shapes("Button 116").Visible = True
ActiveSheet.Shapes("Button 117").Visible = Not ActiveSheet.Shapes("Button 117").Visible = True
ActiveSheet.Shapes("Button 118").Visible = Not ActiveSheet.Shapes("Button 118").Visible = False
ActiveSheet.Shapes("Button 119").Visible = Not ActiveSheet.Shapes("Button 119").Visible = True
ActiveSheet.Shapes("Button 120").Visible = Not ActiveSheet.Shapes("Button 120").Visible = True
ActiveSheet.Shapes("Button 121").Visible = Not ActiveSheet.Shapes("Button 121").Visible = True
ActiveSheet.Shapes("Button 122").Visible = Not ActiveSheet.Shapes("Button 122").Visible = True
Select Case Environ("UserName")
Case ("Username")
Worksheets("Nachtragsübersicht").Visible = False
Worksheets("Gesprächsprotokoll").Visible = False
Worksheets("Protokolltext").Visible = False
Worksheets("Verhandlungsteilnehmer").Visible = False
Case Else
Worksheets("Nachtragsübersicht").Visible = True 'xlVeryHidden
Worksheets("Gesprächsprotokoll").Visible = True 'xlVeryHidden
Worksheets("Protokolltext").Visible = True 'xlVeryHidden
Worksheets("Verhandlungsteilnehmer").Visible = True 'xlVeryHidden
End Select
ActiveSheet.Protect Password:=Passw
ActiveWorkbook.Protect Password:=Passw
End Sub

Anzeige
AW: Der Punkt auf dem I fehlt noch
19.03.2006 17:17:25
Konni
Hallo Nepumuk,
das mit dem Abrechen funktioniert nun. Wenn ich das Passwort eingebe werden auch die bisher ausgeblendeten Register angezeigt. Aber ..
.. dafür sind die Schaltflächen 117-122 ausgeblendet. Nur 115 + 116 sind sichtbar.117 bis 122 benötige ich aber zur weiteren Bearbeitung. Ich kann dann die Tabelle sonst nicht zur Weiterbearbeitung an andere User senden, da ich "meine" Register nicht mehr ausblenden kann.
Nachstehend eine Veranschaulichung der sichtbaren Buttons (Sichtbar = Ja):
User:-------Ja----Ja--------------------------------------------------- (Nach "Abrechen")
Button Nr: 115---116---117---118---119---120---121---122
Ich:--------------------------Ja-----Ja-----Ja-----Ja-----Ja-----Ja- (Nach Passworteingabe)
Ich bin mir inzwischen sicher, dass Du hierfür auch die Lösung hast! ;-)
Grüße:
Konni
Anzeige
AW: Der Punkt auf dem I fehlt noch
19.03.2006 17:28:23
Nepumuk
Hallo Konni,
dann so:
Sub EK_Register_einblenden()
    Dim intIndex As Integer
    UserForm1.Show
    With ActiveSheet
        If Not blnCancel Then
            For intIndex = 117 To 122
                .Shapes("Button " & CStr(intIndex)).Visible = Not _
                    .Shapes("Button " & CStr(intIndex)).Visible = True
            Next
        Else
            For intIndex = 115 To 116
                .Shapes("Button " & CStr(intIndex)).Visible = Not _
                    .Shapes("Button " & CStr(intIndex)).Visible = True
            Next
        End If
    End With
    ActiveWorkbook.Unprotect Password:=Passw
    Select Case Environ("UserName")
        Case ("Username")
            Worksheets("Nachtragsübersicht").Visible = False
            Worksheets("Gesprächsprotokoll").Visible = False
            Worksheets("Protokolltext").Visible = False
            Worksheets("Verhandlungsteilnehmer").Visible = False
        Case Else
            Worksheets("Nachtragsübersicht").Visible = True
            Worksheets("Gesprächsprotokoll").Visible = True
            Worksheets("Protokolltext").Visible = True
            Worksheets("Verhandlungsteilnehmer").Visible = True
    End Select
    ActiveSheet.Protect Password:=Passw
    ActiveWorkbook.Protect Password:=Passw
End Sub

Gruß
Nepumuk

Anzeige
AW: Der Punkt auf dem I fehlt noch
19.03.2006 18:05:52
Konni
Hallo Nepumuk,
ich muss Dich vielmals um Entschuldigung bitten. Die sichtbaren Buttons sehen so aus:
User:-------Ja-----Ja-------------Ja---------------------------------------- (Nach "Abrechen")
Button Nr: 115---116---117---118---119---120---121---122
Ich:--------------------------Ja-------------Ja-----Ja-----Ja-----Ja- (Nach Passworteingabe)
Zur Erklärung:
Ich schicke die Mappe an die User und betätige hierfür Button 117. - Es werden nun "meine Register" ausgeblendet und die Buttons Nr. 117,119,120,121 und 122. Sichtbar bleiben nur die Buttons Nr. 115,116 und 118.
Kommt die Mappe zurück, dann klicke ich auf Button 118 und "meine Register" und die Buttons Nr. 117,119,120,121,122 werden wieder eingeblendet.
Habe mit mir bitte ein Nachsehen, bin schon ganz neben der Kappe
Grüße:
Konni
Anzeige
AW: Der Punkt auf dem I fehlt noch
19.03.2006 18:30:10
Nepumuk
Hallo Konni,
heute ist sowieso nicht so viel los.
Sub EK_Register_einblenden()
    Dim vntArray1 As Variant, vntArray2 As Variant, vntItem As Variant
    UserForm1.Show
    vntArray1 = Array(115, 116, 118)
    vntArray2 = Array(117, 119, 120, 121, 122)
    With ActiveSheet
        If blnCancel Then
            For Each vntItem In vntArray1
                .Shapes("Button " & CStr(vntItem)).Visible = Not _
                    .Shapes("Button " & CStr(vntItem)).Visible = True
            Next
        Else
            For Each vntItem In vntArray2
                .Shapes("Button " & CStr(vntItem)).Visible = Not _
                    .Shapes("Button " & CStr(vntItem)).Visible = True
            Next
        End If
    End With
    ActiveWorkbook.Unprotect Password:=Passw
    Select Case Environ("UserName")
        Case ("Username")
            Worksheets("Nachtragsübersicht").Visible = False
            Worksheets("Gesprächsprotokoll").Visible = False
            Worksheets("Protokolltext").Visible = False
            Worksheets("Verhandlungsteilnehmer").Visible = False
        Case Else
            Worksheets("Nachtragsübersicht").Visible = True
            Worksheets("Gesprächsprotokoll").Visible = True
            Worksheets("Protokolltext").Visible = True
            Worksheets("Verhandlungsteilnehmer").Visible = True
    End Select
    ActiveSheet.Protect Password:=Passw
    ActiveWorkbook.Protect Password:=Passw
End Sub

Gruß
Nepumuk

Anzeige
AW: Ich dreh noch durch!
19.03.2006 19:07:52
Konni
Hallo Nepumuk,
bitte sieh Dir nachstehenden Code an, was ist daran falsch?
Ausgangssituation = Button 115, 116 und 118 sind sichtbar, meine Register ausgeblendet!
Betätigung Butto 118 = Nur Button 118 ist sichtbar; Button 117,119,120,121,122 sollen aber sichtbar sein, nicht Button 118; meine Register werden eingeblendet!
Betätigung "Abbrechen" = Bis auf Button 118 werden nun alle Buttons und alle Register eingeblendet.
Ich weiß nicht mehr weiter, so kurz vorm Ziel!!
Gruß:
Konni
Public

Sub EK_Register_einblenden()
'Dim intIndex As Integer
'UserForm1.Show
If Not blnCancel Then
ActiveWorkbook.Unprotect Password:=Passw
'MsgBox "Es werden nun alle Tabellen zur weiteren Bearbeitung durch den Einkauf angezeigt"
Dim vntArray1 As Variant, vntArray2 As Variant, vntItem As Variant
UserForm1.Show
vntArray1 = Array(115, 116, 118)
vntArray2 = Array(117, 119, 120, 121, 122)
With ActiveSheet
If blnCancel Then
For Each vntItem In vntArray1
.Shapes("Button " & CStr(vntItem)).Visible = Not _
.Shapes("Button " & CStr(vntItem)).Visible = True
Next
Else
For Each vntItem In vntArray2
.Shapes("Button " & CStr(vntItem)).Visible = Not _
.Shapes("Button " & CStr(vntItem)).Visible = True
Next
End If
End With
ActiveSheet.Shapes("Button 115").Visible = Not ActiveSheet.Shapes("Button 115").Visible = True
ActiveSheet.Shapes("Button 116").Visible = Not ActiveSheet.Shapes("Button 116").Visible = True
ActiveSheet.Shapes("Button 117").Visible = Not ActiveSheet.Shapes("Button 117").Visible = True
ActiveSheet.Shapes("Button 118").Visible = Not ActiveSheet.Shapes("Button 118").Visible = False
ActiveSheet.Shapes("Button 119").Visible = Not ActiveSheet.Shapes("Button 119").Visible = True
ActiveSheet.Shapes("Button 120").Visible = Not ActiveSheet.Shapes("Button 120").Visible = True
ActiveSheet.Shapes("Button 121").Visible = Not ActiveSheet.Shapes("Button 121").Visible = True
ActiveSheet.Shapes("Button 122").Visible = Not ActiveSheet.Shapes("Button 122").Visible = True
End If
Select Case Environ("UserName")
Case ("Username")
Worksheets("Nachtragsübersicht").Visible = False
Worksheets("Gesprächsprotokoll").Visible = False
Worksheets("Protokolltext").Visible = False
Worksheets("Verhandlungsteilnehmer").Visible = False
Case Else
Worksheets("Nachtragsübersicht").Visible = True 'xlVeryHidden
Worksheets("Gesprächsprotokoll").Visible = True 'xlVeryHidden
Worksheets("Protokolltext").Visible = True 'xlVeryHidden
Worksheets("Verhandlungsteilnehmer").Visible = True 'xlVeryHidden
End Select
ActiveSheet.Protect Password:=Passw
ActiveWorkbook.Protect Password:=Passw
End Sub

Anzeige
Danke Nepumuk! Danke!!!!! :-)) o.T.
19.03.2006 22:24:42
Konni

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige