Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1600to1604
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
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

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
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

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

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
....

18 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige