Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA - nicht schliessen wenn Pflichtfelder leer

VBA - nicht schliessen wenn Pflichtfelder leer
MT
Hallo,
ich habe mal wieder ein kleines Problem in Excel - was für euch sicherlich (hoffentlich) ne Kleinigkeit ist.
Und zwar habe ich eine Mustervorlage erstellt, bei der gewissen Pflichtfelder auszufüllen sind. Diese sind für eine bessere Sichtbarkeit entsprechend grau hinterlegt.
Diese Felder müssen ausgefüllt sein, andernfalls soll das Dokument nicht zu schließen sein.
Das Ganze hab ich versucht, über ne VBA Geschichte zu lösen.
Da ich selbst in VBA nicht wirklich nen Genie bin, hab ich mir dieses aus den tiefen des Internets bereits zusammen geklaut.
Hier nun die VBA-Programmierung im Detail:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Cancel = Not Worksheets("Tabelle1").Range("D14")  ""
Cancel = Not Worksheets("Tabelle1").Range("D15")  ""
Cancel = Not Worksheets("Tabelle1").Range("D16")  ""
Cancel = Not Worksheets("Tabelle1").Range("I15")  ""
Cancel = Not Worksheets("Tabelle1").Range("I16")  ""
Cancel = Not Worksheets("Tabelle1").Range("D26")  ""
Cancel = Not Worksheets("Tabelle1").Range("D27")  ""
Cancel = Not Worksheets("Tabelle1").Range("D28")  ""
Cancel = Not Worksheets("Tabelle1").Range("I27")  ""
Cancel = Not Worksheets("Tabelle1").Range("I28")  ""
Cancel = Not Worksheets("Tabelle1").Range("I12")  ""
Cancel = Not Worksheets("Tabelle1").Range("I24")  ""
End Sub

Mein Problem ist nun allerdings, dass sich in meinen Tests herausgestellt hat, dass eben nicht alle diese grauen Zellen ausgefüllt sein müssen, um das Dokument zu schließen.
(Datei unter https://www.herber.de/bbs/user/76593.xlt abrufbar)
Woran liegt das? Wo liegt mein logischer Fehler? Oder kann über diesen Weg nur eine bestimmte Anzahl an Zellen überprüft werden?
Vielleicht noch zur Info: Ich habe es geschafft, die Mustervorlage ohne jeglichen Inhalt zu speichern, indem ich zunächst das nicht ausgefüllte Dokument gespeichert habe - und dann im Anschluss Excel über den Task-Manager abgeschossen habe.
Schließlich ist ja nur das Schließen bei Nicht-Ausfüllen unterdrückt, nicht aber das speichern.
Im zweiten Schritt will ich dann das ganze noch aufs Drucken erweitern. Das müsste dann ja _ eigentlich das Gleiche sein, nur das ich das

Private Sub Workbook_BeforeClose(Cancel As Boolean) .... End Sub
durch


Private Sub Workbook_BeforePrint(Cancel As Boolean) .... End Sub
ersetzen müsste,oder?
Besten Dank für eure Hilfe!
Markus
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA - nicht schliessen wenn Pflichtfelder leer
13.09.2011 13:09:34
Rudi
Hallo,
so geht das:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim blnC As Boolean
With Worksheets("Tabelle1")
blnC = blnC Or .Range("D14") = ""
blnC = blnC Or .Range("D15") = ""
blnC = blnC Or .Range("D16") = ""
blnC = blnC Or .Range("I15") = ""
blnC = blnC Or .Range("I16") = ""
blnC = blnC Or .Range("D26") = ""
blnC = blnC Or .Range("D27") = ""
blnC = blnC Or .Range("D28") = ""
blnC = blnC Or .Range("I27") = ""
blnC = blnC Or .Range("I28") = ""
blnC = blnC Or .Range("I12") = ""
blnC = blnC Or .Range("I24") = ""
End With
Cancel = blnC
End Sub

Gruß
Rudi
Anzeige
AW: VBA - nicht schliessen wenn Pflichtfelder leer
13.09.2011 13:18:15
MT
Hallo Rudi!
Besten Dank, läuft nun einwandfrei :)
Damit kann ich nun diesen Thread schließen.
Danke nochmals!
Markus
;

Forumthreads zu verwandten Themen

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