Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

MUSS Felder in Formular

Betrifft: MUSS Felder in Formular von: MO
Geschrieben am: 26.08.2004 08:52:11

Morgen allerseits,

hab ein kleines Problem mit einem Formular in Excel - gibt es eine Formel oder Funktion, mit der man die User zwingen kann bestimmte Felder unbedingt auszufüllen um weiterzumachen, wie z.B. Felder mit Name, Funktion etc.
Dass man z.B. nur dann das nächste Sheet öffnen kann wenn diese Felder ausgefüllt sind, oder ähnliche Hinweise dann?!?!?

Bin für jeden Ansatz dankbar.

Gruß,
MO

  


Betrifft: AW: MUSS Felder in Formular von: ANdreas
Geschrieben am: 26.08.2004 10:26:32

Hallo,

mit Makros gehts in etwa so:

Private Function AusgefuelltFormular() As Boolean
Dim blnAusgefuellt As Boolean

blnAusgefuellt = True

With Worksheets("Formular")
    If .Range("B2") = "" Then blnAusgefuellt = False
    If .TextBox1.Text = "" Then blnAusgefuellt = False
End With
AusgefuelltFormular = blnAusgefuellt
End Function


Private Sub Workbook_SheetDeactivate(ByVal sh As Object)
If sh.Name = "Formular" Then
    If Not AusgefuelltFormular Then
        sh.Activate
        MsgBox "Bitte erst Formular ausfüllen!"
    End If
End If
End Sub


Code einfach ins Klassenmodul "DieseArbeitsmappe" eintragen und Namen des Formular Worksheets ändern und in der Function die Zellen bzw. Formularshapes abfragen wie ich es beispielhaft mit Zelle B2 und dem Textfeld1 gemacht habe.

Gruß
Andreas


  


Betrifft: AW: MUSS Felder in Formular von: MO
Geschrieben am: 26.08.2004 12:06:27

Hi vielen Dank schonmal,

irgendwie erkennt er allerdings am Anfang das Makro nicht!? Versteh VBA leider nicht wirklich daher die blöde Frage :)

DANKE


  


Betrifft: AW: MUSS Felder in Formular von: ANdreas
Geschrieben am: 26.08.2004 12:25:34

Hallo,

ich vergaß, die
Function in ein Standardmodul als Public dann:

Function AusgefuelltFormular() As Boolean
Dim blnAusgefuellt As Boolean

blnAusgefuellt = True

With Worksheets("Formular")
    If .Range("B2") = "" Then blnAusgefuellt = False
    If .TextBox1.Text = "" Then blnAusgefuellt = False
End With
AusgefuelltFormular = blnAusgefuellt
End Function


Das andere wie bisher im Klassenmodul "DieseArbeitsmappe". Das wird dann automatisch ausgeführt, sobald man innerhalb der Datei zw. Tabellenblättern wechselt.
Versucht man das "Formular" zu verlassen, wird mit der
Function geprüft ob die einzelnen Felder alle gefüllt sind. Wenn nicht, wird wieder zurück zum Formular gesprungen. Das funktioniert dann natürlich nur wenn Makros aktiviert sind.

Gruß
Andreas



  


Betrifft: AW: MUSS Felder in Formular von: Mo
Geschrieben am: 26.08.2004 14:07:36

Hab die Version jetzt in ein Modul kopiert und den Rest in "Diese Arbeitsmappe", tut aber leider noch nichts, obwohl die Makros aktiviert sind?

Hab glaub ich was entscheidendes vergessen :)
Muss ich das als Makro bearbeiten oder einfach nur so das VB starten???


  


Betrifft: AW: MUSS Felder in Formular von: ANdreas
Geschrieben am: 26.08.2004 15:05:04

Hallo,

wenn Du das Makro nicht an Dein Blatt anpasst, dann passiert auch nichts. Du musst wie gesagt, "Formular" im Makro durch den Tabellenblattnamen Deines Formularblattes ersetzen. Außerdem musst Du in der Funktion alle Textfelder/Zelle u.ä. abfragen ob ein Wert eingetragen wurde - so wie ich es exemplarisch für Zelle B2 und TextBox1 getan habe.

Gruß
Andreas


 

Beiträge aus den Excel-Beispielen zum Thema "MUSS Felder in Formular"