Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1604to1608
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
Inhaltsverzeichnis

VBA: Zwangseingabe erweitern?

VBA: Zwangseingabe erweitern?
31.01.2018 09:17:17
Juergen
Hallo zusammen,
ich habe hier ein Makro, welches beim Start des Sheets zwangsweise eine 8stellige Pj.-Nummer zur Eingabe abfrägt.
Jetzt ist es erforderlich, diese Abfrage so zu gestalten, dass zugleich auch noch eine Kunden-Nummer dazu eingetragen wird.
Nachdem ich VBA eigentlich gar nicht kenne, bitte ich um Unterstützung:
wie könnte ich eine Abfragebox erstellen, in dem die 8-stellige numerische Nummer und ein Eingabefeld für die 5-stellige Kd.-Nr. eingetragen werden muss?
Dabei soll nach Bestätifung die 8-stellige Nr in Zelle C1, die Kd.-Nr. in F1 übernommen werden?
Hier mein Beispiel:
https://www.herber.de/bbs/user/119428.xlsm
Danke & Gruss,
Juergen

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Zwangseingabe erweitern?
31.01.2018 10:52:01
Peter(silie)
Hallo,
unten der Link zu deiner Datei.
Beschreibung:
Statt einer zweiten Inputbox, habe ich eine kleine Userform eingefügt.
In die Felder können ausschließlich Zahlen eingegeben werden!
Projekt Feld MUSS 8 Ziffern enthalten und es können Maximal 8 Zahlen eingegeben werden
Kunden Feld MUSS 5 Ziffern enthalten und es können Maximal 5 Zahlen eingegeben werden
Falls Eingabe Inkorrekt -> Rotes blinken der Felder
Falls Bestätigen geklickt -> Einfügen der Daten mit Prüfung der Daten
Falls Abbrechen geklickt -> Hinweis Box das erst nach Eingabe bearbeitet werden kann
Bei schließen der Maske durch "X" oder durch Taskmanager etc. -> Blattschutz
Bei Korrekter Eingabe v. Daten -> Blattschutz entfernen und Maske schließen
Passwort steht im Code der Userform im Sub "SheetProtection"

Hier deine Mappe: https://www.herber.de/bbs/user/119430.xlsm
Anzeige
Nachtrag: Code ohne Datei
31.01.2018 10:55:10
Peter(silie)
Hallo,
hier noch der Userform Code für die Download faulen:
Option Explicit
Private Sub UserForm_Terminate()
SheetProtection True
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
SheetProtection True
End Sub
Private Sub UserForm_Initialize()
SheetProtection True
End Sub
Private Sub btn_abort_Click()
'Protect the worksheet!
SheetProtection
MsgBox "Das bearbeiten dieser Datei ist erst nach Eingabe der Daten möglich!", vbOKOnly, "! _
ACHTUNG!"
End Sub
Private Sub SheetProtection(Optional ByVal Enabled As Boolean = True)
If Enabled Then
ThisWorkbook.Sheets("Kalkulation").Protect "Blattspinat"
Else
ThisWorkbook.Sheets("Kalkulation").Unprotect "Blattspinat"
End If
End Sub
Private Sub btn_confirmed_Click()
If ValidInputs Then
With ThisWorkbook.Sheets("Kalkulation")
'Remove worksheet protection!
SheetProtection False
'Add Data
.Cells(1, 3).Value = tb_ProjectInput.Value
.Cells(1, 6).Value = tb_ClientInput.Value
Unload Me
End With
Else
'Show User that the input isnt correct
ControlBlink
End If
End Sub
Private Sub tb_ClientInput_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57
Case Else: KeyAscii = 0
End Select
End Sub
Private Sub tb_ProjectInput_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57
Case Else: KeyAscii = 0
End Select
End Sub
Private Function ValidInputs() As Boolean
Dim inp1 As String, inp2 As String
inp1 = tb_ProjectInput.Value
inp2 = tb_ClientInput.Value
If Not inp1 = vbNullString And Not inp2 = vbNullString Then
If Len(inp1) = 8 And Len(inp2) = 5 Then
ValidInputs = True
End If
End If
End Function
Private Sub ControlBlink()
Dim color1(1) As Long
Dim blink As Boolean
Dim t As Double
Dim i As Long
Const TIME As Double = 0.08
On Error Resume Next
color1(0) = 255
color1(1) = 125
Do
blink = Not blink
tb_ClientInput.BackColor = color1(-blink)
tb_ProjectInput.BackColor = color1(-blink)
t = Timer + TIME
Do While Timer  5
tb_ClientInput.BackColor = vbWhite
tb_ProjectInput.BackColor = vbWhite
End Sub

Anzeige
AW: Nachtrag: Top-Lösung! Danke!
31.01.2018 12:12:51
Juergen
Hallo Peter(silie)!
deine Lösung ist natürlich das Wellness Paket im Excel-Wald.
Herzlichen Dank für die umfangreiche Funktionalität samt Schutz und "Aufwach"-blinkenden Boxen!
Das funktioniert dann auch verschlafen Montags-Früh ;)
Danke nochmals für deine Bemühungen in meiner Sache,
Gruss, Juergen
AW: VBA: Vielen Dank!
31.01.2018 12:15:11
Juergen
Hallo yummi,
herzlichen Dank für deine fertige Lösung!
Das war meine Vorstellung, wie es zum umsetzen wäre, aber leider mangels Kenntnis für mich nicht machbar.
Danke nochmals für deine Zeit und Gruss,
Juergen
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige