10.12.2018, 10:10
Hallo miteinander,
ich benötige für meine Seminarliste eine Pflichtzeile.
Das bedeutet, dass bei einer Eintragung in der Zeile, automatisch die Gesamte Zeile (Spalte von C bis M) ausgefüllt werden MUSS oder eben alle Zellen leer sein müssen. Andernfalls funktioniert das Speichern nicht. Da meine VBA-Kentnisse noch nicht allzu gut sind, verzeiht es mir wenn ich vermeintliche "dumme" Nachfragen stelle. Aktuell habe ich folgenden Funktion zusammengebastelt:
Aktuell ist leider nur eine Zelle als Pflichtfeld definiert und ich möcht zwecks Nachvollziehbarkeit die ganze Zeile ausgefüllt haben! habt ihr noch Anregungen oder Ideen wie ich etwas besser/anders machen könnte, bin ich dafür jederzeit offen!
Vielen Dank schon einmal für eure Hilfe!
VG
Christian
ich benötige für meine Seminarliste eine Pflichtzeile.
Das bedeutet, dass bei einer Eintragung in der Zeile, automatisch die Gesamte Zeile (Spalte von C bis M) ausgefüllt werden MUSS oder eben alle Zellen leer sein müssen. Andernfalls funktioniert das Speichern nicht. Da meine VBA-Kentnisse noch nicht allzu gut sind, verzeiht es mir wenn ich vermeintliche "dumme" Nachfragen stelle. Aktuell habe ich folgenden Funktion zusammengebastelt:
Zitat:Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim zeile As Long
'zahl darf positiv wie negativ bis 2 mrd sein
Dim OK As Boolean
'ok ist wahr oder falsch
OK = True
'ok ist wahr
For zeile = 2 To Tabelle12.Cells.SpecialCells(xlCellTypeLastCell).Row
'für zeile = 2 (konstante) bis letzte zeile, for startet eine schleife
If Tabelle12.Cells(zeile, 8).Value <> "" Then
'wenn in tabelle 12 zeile 2 spalte 8 ein wert ungleich nichts steht dann -->
If Tabelle12.Cells(zeile, 2).Value = "" Then OK = False 'Spalte B
If Tabelle12.Cells(zeile, 3).Value = "" Then OK = False 'Spalte C
If Tabelle12.Cells(zeile, 4).Value = "" Then OK = False 'Spalte D
If Tabelle12.Cells(zeile, 5).Value = "" Then OK = False 'Spalte E
If Tabelle12.Cells(zeile, 6).Value = "" Then OK = False 'Spalte F
If Tabelle12.Cells(zeile, 7).Value = "" Then OK = False 'Spalte G
If Tabelle12.Cells(zeile, 9).Value = "" Then OK = False 'Spalte I
If Tabelle12.Cells(zeile, 10).Value = "" Then OK = False 'Spalte J
If Tabelle12.Cells(zeile, 11).Value = "" Then OK = False 'Spalte K
If Tabelle12.Cells(zeile, 12).Value = "" Then OK = False 'Spalte L
If Tabelle12.Cells(zeile, 13).Value = "" Then OK = False 'Spalte M
End If
Next
'schleife startet neu
If Not OK Then
'wenn nicht ok das ergebnis dann öffne eine messagebox mit folgendem inhalt der das speichern verhindert bis spalte b bis m befüllt wurden!
MsgBox "Speichern nicht möglich - bitte füllen Sie alle Zellen Ihrer Anmeldung aus (Spalte B bis P)! Vergewissern Sie sich das alle anderen Zellen nach Ihrer aktuellen Eintragung leer sind!" & ActiveSheet.Name, vbOKCancel + vbInformation, "Information"
Cancel = True
End If
End Sub
Aktuell ist leider nur eine Zelle als Pflichtfeld definiert und ich möcht zwecks Nachvollziehbarkeit die ganze Zeile ausgefüllt haben! habt ihr noch Anregungen oder Ideen wie ich etwas besser/anders machen könnte, bin ich dafür jederzeit offen!
Vielen Dank schon einmal für eure Hilfe!
VG
Christian