Anzeige
Archiv - Navigation
752to756
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
752to756
752to756
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Pflichtfeld

Pflichtfeld
06.04.2006 16:14:25
Jänz
Hallo zusammen,
ich möchte in einem Artikel-Bestellformular (Excel-Datei mit einem Blatt)die 8 Ja/Nein Felder, die enthalten sind, zu Pflichtfeldern machen.
Es soll nicht möglich sein die Datei zu speichern, ohne die 4 Fragen mit Ja oder Nein beantwortet zu haben.
Leider sind meine VBA-Kenntnisse noch nicht ausreichend...
Die Datei ist hier:
https://www.herber.de/bbs/user/32658.xls
Bin dankbar für für jeden Lösungsansatz / Vorschlag
Gruß aus Ffm - Jänz

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pflichtfeld
06.04.2006 16:34:08
ChrisL
Hallo Jänz

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Worksheets("Tabelle1")
If CheckJaNein(.Range("C12:D12")) = False Or _
CheckJaNein(.Range("C13:D13")) = False Or _
CheckJaNein(.Range("C14:D14")) = False Or _
CheckJaNein(.Range("C16:D16")) = False Then
MsgBox "Fehler blabla. Mappe nicht gespeichert!", vbCritical, "Fehlermeldung"
Cancel = True
End If
End With
End Sub


Private Function CheckJaNein(rng As Range) As Boolean
Dim Zelle As Range
For Each Zelle In rng
If Zelle <> "" Then
CheckJaNein = True
Exit Function
End If
Next Zelle
End Function

Gruss aus SG
Chris
Anzeige
AW: Pflichtfeld
06.04.2006 16:45:53
otto-mueller
Hallo,
hier noch eine ähnliche Lösung:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Blatt As Worksheet
Dim JaNein As String
Set Blatt = Worksheets("Tabelle1")
For i = 12 To 16
With Blatt
JaNein = .Cells(i, 3) & .Cells(i, 4)
End With
If Len(JaNein) = 0 Then
MsgBox "Fragen vollständig beantworten!"
Cancel = True
Exit Sub
End If
Next
End Sub

@Chris
bei deiner Lösung würde ich die Schleife in Sub einsetzen und von dort die Function aufrufen, dann brauchst du die ganzen Or-Bediengungen nicht mehr oder?
Gruß
Otto
Anzeige
@Otto
06.04.2006 17:02:40
ChrisL
Hallo Otto
Prinzipiell hast du schon recht. Problem ist aber, dass Zeile 15 ausgeschlossen ist. Ich wusste auch nicht, ob es sich um ein konkretes Beispiel handelt, oder ob die Tabellenbereich noch ändern. Mit der Funktion ist man diesbezüglich flexibler.
Noch ein kleiner Tipp. "Option Explizit" aktivieren d.h. Deklaration von Variablen erzwingen. Vermindert u.a. das Fehlerpotenzial in Zusammenhang mit Variablen.
Gruss
Chris
AW: @Chris
06.04.2006 17:07:30
otto-mueller
Hallo Chris,
zum 1.
da hast du recht.
zum 2.
die Option ist mir bekannt aber ich setze es nur ein wenn es unbediengt sein muß, d. h. bei komplexen Codes, sonst bei solchen beispielen oder andere kleinere Codes mußt du jede Variable definieren - da bin ich etwas "eintipp-scheu" ;-)
Gruß
Otto
Anzeige
AW: @Chris
06.04.2006 17:22:28
ChrisL
Hallo Otto
Danke für die Rückmeldung.
Manchmal sind auch die kleinen Codes mühsam zum Debuggen. Habe regelmässig Tomaten auf den Augen und da hilft mir die Option sehr. Bin also etwas "debugg-scheu" :-)
cu
Chris
Vielen Dank für eure Hilfe - klappt gut! o.T.
07.04.2006 09:31:10
Jänz
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige