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

Forumthread: VBA Abfrage Passwort

VBA Abfrage Passwort
17.01.2018 20:40:41
Thomas

Hallo zusammen,
ich hätte ein Anliegen und hoffe dass so was möglich ist.
In der jeweiligen Spalten kommt ein x rein. Diese X werden zusammengezählt. Ich habe die Abfrage, wenn mehr wie 2 (B1) dann soll eine Fehlermeldung kommen."Anzahl überschritten"
Danach soll eine Input kommen „bitte Passwort eingeben“ ( oder Abbrechen) dann gebe ich das Passwort ein und dann wird das X eingetragen sonst abbruch.Die Zahl 2 darf nicht überschritten werden ohne die Eingabe des Passwortes.
Wäre sowas möglich ?
Ich hab schon mal angefangen, aber ich hab null plan 
Danke
Thomas
https://www.herber.de/bbs/user/119050.xlsb
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Abfrage Passwort
17.01.2018 21:20:51
Sepp
Hallo Thomas,
Die Formeln in Zeile 1 brauchst du nicht.
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim strPW As String, objRng As Range

On Error GoTo ErrorHandler
Application.EnableEvents = False

If Not Intersect(Target, Range("C3:H100")) Is Nothing Then
  For Each objRng In Intersect(Target, Range("C3:H100"))
    If Application.CountIf(objRng.EntireColumn, "x") > 2 Then
      strPW = InputBox("Die Anzahl wird überschritten!" & vbLf & vbLf & _
        "Um den Eintrag vornehmen zu können, müssen Sie das Passort eingeben!", "Passwort")
      If strPW <> cstrPW Then
        Application.Undo
        objRng = ""
        objRng.Select
        Exit For
      End If
    End If
  Next
End If

ErrorHandler:
Application.EnableEvents = True
End Sub

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public Const cstrPW = "test" 'Passwort

Gruß Sepp

Anzeige
AW: VBA Abfrage Passwort
17.01.2018 21:40:56
Thomas
Hallo Sepp,
danke Dir
aber er muss die Abfrage immer in der Zeile 1 machen.
Denn es kommt dort eine Zählenwennsformel rein die nur bestimmt x zählt.
Es kann auch sein das jemand u oder f eingibt und das ist erlaubt.
Also wenn in Spalte C mehr wie 2 ist ( C1 ist das Ergebnis) dann soll die Abfrage kommen
Danke
Anzeige
AW: VBA Abfrage Passwort
17.01.2018 21:44:06
Sepp
Hallo Thomas,
u's und f's oder sonstwas kannst du ja eingeben soviel du willst!
Gruß Sepp

AW: VBA Abfrage Passwort
17.01.2018 21:51:47
Thomas
ah okay,
aber es sollen nicht alle u zählen deswegen die Abfrage Zeile1
Da kommt Zählenwenns rein , die nur einige X zählen
Anzeige
AW: VBA Abfrage Passwort
17.01.2018 22:05:50
Sepp
Hallo Thomas,
okay, wenn du meinen Vorschlag nicht ausprobieren willst, auch gut.
Mein Code zählt keine u oder sonst etwas, einzig x darf höchstens 2x eingegeben werden und dafür braucht es die Formeln in Zeile 1 nicht!
Gruß Sepp

Anzeige
AW: VBA Abfrage Passwort
17.01.2018 22:42:42
Thomas
Hallo Sepp,
ich habe es getestet. Du hast recht. U und so weiter werden nicht gezählt.
Aber, es dürfen nicht alle X gezählt werden. Deswegen steht in der Zeile in den jeweiligen Spalten eine
Zählenwenns formel drin =ZÄHLENWENNS(B:B;"Personal2";C:C;"x")+ZÄHLENWENNS(B:B;"Personal6";C:C;"x")+ZÄHLENWENNS(B:B;"Personal10";C:C;"x")
und deswegen die zeile1
Anzeige
AW: VBA Abfrage Passwort
17.01.2018 22:57:16
Sepp
Hallo Thomas,
du willst eine VBA-Lösung, da interessiert mich deine Formel nicht!
Beschreibe doch einfach, wann das x gezählt werden soll und wann nicht, davon hast du zu Beginn nämlich nichts erzählt!
Gruß Sepp

Anzeige
AW: VBA Abfrage Passwort
18.01.2018 05:33:53
Thomas
Hallo Sepp,
er soll alle X zählen, wenn in der Spalte C Lager steht. Wenn Büro steht oder was anderes soll Soll hab die X nicht beachten.
AW: VBA Abfrage Passwort
18.01.2018 09:44:25
Sepp
Hallo Thomas,
warum dauernd wechselnde Bedingungen und andere Spalten?
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim strPW As String, objRng As Range

On Error GoTo ErrorHandler
Application.EnableEvents = False

If Not Intersect(Target, Range("C3:H100")) Is Nothing Then
  For Each objRng In Intersect(Target, Range("C3:H100"))
    If LCase(objRng) = "x" And Application.CountIfs(Columns(objRng.Column), "x", Columns(6), "Lager") > 2 Then
      strPW = InputBox("Die Anzahl wird überschritten!" & vbLf & vbLf & _
        "Um den Eintrag vornehmen zu können, müssen Sie das Passort eingeben!", "Passwort")
      If strPW <> cstrPW Then
        Application.Undo
        objRng = ""
        objRng.Select
        Exit For
      End If
    End If
  Next
End If

ErrorHandler:
Application.EnableEvents = True
End Sub

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public Const cstrPW = "test" 'Passwort

Gruß Sepp

Anzeige
AW: VBA Abfrage Passwort
17.01.2018 22:36:05
Sepp
Hallo Thomas,
jetzt hab ich dein Problem verstanden,
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim strPW As String, objRng As Range

On Error GoTo ErrorHandler
Application.EnableEvents = False

If Not Intersect(Target, Range("C3:H100")) Is Nothing Then
  For Each objRng In Intersect(Target, Range("C3:H100"))
    If LCase(objRng) = "x" And Application.CountIf(objRng.EntireColumn, "x") > 2 Then
      strPW = InputBox("Die Anzahl wird überschritten!" & vbLf & vbLf & _
        "Um den Eintrag vornehmen zu können, müssen Sie das Passort eingeben!", "Passwort")
      If strPW <> cstrPW Then
        Application.Undo
        objRng = ""
        objRng.Select
        Exit For
      End If
    End If
  Next
End If

ErrorHandler:
Application.EnableEvents = True
End Sub

Gruß Sepp

Anzeige
Nicht Spalte C sondern Spalte F
18.01.2018 05:35:26
Thomas
....
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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