Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
936to940
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
936to940
936to940
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Pflichtfelder

Pflichtfelder
28.12.2007 13:28:59
gino01
Hallo
Ich habe ein Problem und hoffe auf Hilfe.
Es wurden im nachfolgendem Code Pflichtfelder definiert.
Allerdings kann das Tabellenblatt vorher nicht geschlossen werden, bevor alle Pflichtfelder ausgefüllt sind.
Wie kann denn erreicht werden, dass eine tägliche Abfrage ( mit Pflichteingabe von Datum erfolgt) .
Bei Bedarf kann ich die Tabelle gerne zuschicken.
Ich danke im voraus für eure Hilfe.
C7-h7 = Eingabe von Datum
K2 = Eingabe der KW woche
e3 = Eingabe eine Nr.
------

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim c As Range
For Each c In Worksheets("KW49").Range("c7,d7,e7,f7,g7,h7,e3,k2")
If c = "" Then
MsgBox "Es sind nicht alle Pflichtfelder ausgefüllt!"
Cancel = True
Exit For
End If
Next
End Sub


11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pflichtfelder
28.12.2007 15:14:01
Peter
Hallo gino01,
so könnte es permanent gehen - nicht ur einmal täglich

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim rZelle As Range
For Each rZelle In Worksheets("KW49").Range("C7,D7,E7,F7,G7,H7,E3,K2")
If rZelle = "" Then
MsgBox "Es sind nicht alle Pflichtfelder ausgefüllt!"
Cancel = True
Exit For
Else
Select Case rZelle.Row
Case 7
If Not IsDate(rZelle.Value) Then
MsgBox "Es wurde kein Datum eingetragen!", _
48, "   Hinweis für " & Application.UserName
Cancel = True
rZelle.Select
Exit For
End If
Case 3
If Not rZelle.Text = Right(ActiveSheet.Name, Len(rZelle.Value)) Then
MsgBox "In Zelle E3 ist keine gültige KW eingetragen worden.", _
48, "   Hinweis für " & Application.UserName
Cancel = True
rZelle.Select
Exit For
End If
Case 2
If Not IsNumeric(rZelle.Value) Then
MsgBox "In Zelle K2 ist keine Nummer eingetragen worden.", _
48, "   Hinweis für " & Application.UserName
Cancel = True
rZelle.Select
Exit For
End If
End Select
End If
Next rZelle
End Sub


Gruß Peter

Anzeige
AW: Pflichtfelder
28.12.2007 15:48:00
Peter
Hallo gino01,
wenn es immer die zum Tagesdatum passende KW sein soll, dann so:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim rZelle As Range
For Each rZelle In Worksheets("KW49").Range("C7,D7,E7,F7,G7,H7,E3,K2")
If rZelle = "" Then
MsgBox "Es sind nicht alle Pflichtfelder ausgefüllt!", _
48, "   Hinweis für " & Application.UserName
Cancel = True
Exit For
Else
Select Case rZelle.Address(0, 0)
Case "C7", "D7", "E7", "F7", "G7", "H7" ' die Zellen C7 bis H7
If Not IsDate(rZelle.Value) Then
MsgBox "in die Zelle " & rZelle.Address(0, 0) & _
" wurde kein Datum eingetragen!", _
48, "   Hinweis für " & Application.UserName
Cancel = True
rZelle.Select
Exit For
End If
Case "E3"                               ' die Zelle E3
'If Not rZelle.Text = Right(ActiveSheet.Name, Len(rZelle.Value)) Then
If Not rZelle.Value = KWoche(Date) Then
MsgBox "In Zelle E3 ist keine gültige KW eingetragen worden.", _
48, "   Hinweis für " & Application.UserName
Cancel = True
rZelle.Select
Exit For
End If
Case "K2"                               ' die Zelle K2
If Not IsNumeric(rZelle.Value) Then
MsgBox "In Zelle K2 ist keine Nummer eingetragen worden.", _
48, "   Hinweis für " & Application.UserName
Cancel = True
rZelle.Select
Exit For
End If
End Select
End If
Next rZelle
End Sub


'
' die folgende Funktion berechnet die KW nach DIN 1355 / ISO 8601.
'


Public Function KWoche(Datum As Date) As Integer
Dim lTemp  As Long
lTemp = DateSerial(Year(Datum + (8 - Weekday(Datum)) Mod 7 - 3), 1, 1)
KWoche = (Datum - lTemp - 3 + (Weekday(lTemp) + 1) Mod 7) \ 7 + 1
End Function


Gruß Peter

Anzeige
AW: Pflichtfelder
28.12.2007 18:44:28
gino01
Hallo peter
D anke erst einmal
Leider klappt es nicht so wie ich es gerne hätte.
---- Angenommen heute wäre Montag und ich muss lediglich erst hier ein Datum und weitere "unbedeutende" Felder ausfüllen Erst am nächsten Tag die weiteren. Hier sollte erst die "überprüfung " für Montag gelten.

AW: Pflichtfelder
28.12.2007 21:21:00
Peter
Hallo gino01,
du hast in deinem ersten Makro doch auch ALLE Zellen geprüft und den Anwender nicht entlassen, bevor nicht alle Felder ausgefüllt waren.
Warum soll das nun plötzlich anders sein?
Du kannst das Makro ja als Wochen-Ende-Kotrolle verwenden.
Gib ihm einen anderen Namen, kopiere es aus Diese Arbeitsmappe in ein allgemeines Modul und gib ihm einen Button oder rufe es über Extras Makro Makros bzw. Alt + F8 auf.
Gruß Peter

Anzeige
AW: Pflichtfelder
28.12.2007 22:05:47
gino01
Hallo Peter
Darum geht es ja. Ich habe es nicht hinbekommen,jeden einzelnen Tag seperat abzufragen.
Da ich leider nicht so viel Ahnung von VBA habe frage ich nach.
Ich muss täglich eine Tabelle ausfüllen. Leider passiert es öfters, dass ich z.b. das Datum vergesse oder die KW einzutragen..
Mit dem Vorschlag das Makro als Wochen-Ende-Kotrolle zu verwenden.
Schau Dir die Tabelle doch mal an.

Die Datei https://www.herber.de/bbs/user/48689.xls wurde aus Datenschutzgründen gelöscht


Anzeige
AW: Pflichtfelder
29.12.2007 14:15:49
Peter
Hallo gino01,
ich weiß nicht, ob du auch den Sonntag eintragen musst, dann musst du im Statement
'Case 1: Set rBereich = Worksheets("KW49").Range("C7,D7,E7,F7,G7,H7,I7,E3,K2") ' So
das führende Apostroph entfernen um es damit zu aktivieren.
Das Makro meckert allerdings auch, wenn in der Woche ein Feiertag ist, an dem du kein Datum eintragen müsstest!
Gruß Peter

AW: Pflichtfelder
29.12.2007 14:25:00
gino01
Hallo Peter
Danke erst einmal für Deine umfangreiche Hilfe.
Nein der Sonntag ist kein Arbeitstag.
Allerdings meckert das Makro auch wenn ich nur ein Datum eingebe. Das makro verweist bei Schließen immer auf das nächste Pflichtfeld.
Ich Bin also gezwungen alle Daten der KW einzutragen. Auch wenn ich nicht arbeiten muss.
Ich denke das war von Dir nicht so gedacht oder...
Gruß
Hans

Anzeige
AW: Pflichtfelder
29.12.2007 14:52:10
Peter
Hallo gino01,
das Makro geht IMMER vom aktuellen Wochentag aus.
Am Montag musst du nur das Datum für Montag und die Kom-Nr, sowie die KW füllen.
Am Dienstag ein Datum in Montag UND Dienstag + Kom-Nr + KW
Am Mittwoch ein Datum in Montag UND Dienstag UND Mittwoch + Kom-Nr + KW
Am Donnerstag, Freitag, Samstag entsprechend, immer ein Datum mehr.
Heute müssen also alle 6 Datumsfelder gefüllt sein.
Testen kannst du das, in dem du iWoTag mit einem Wert von 2 - 7 füllst.
Gruß Peter

AW: Pflichtfelder
29.12.2007 15:36:35
gino01
Hallo Peter
Dake nochmal für die Hilfe.
Es klappt alles genau so wie ich mir das vorgestellt habe.
Ich wünsche Dir einen guten Rutsch ins neue Jahr und alles Gute.

Anzeige
AW: Pflichtfelder
29.12.2007 15:40:00
Peter
Hallo gino01,
danke für die Rückmeldung.
Auch Dir ein gutes neues Jahr - ohne Excel-Probleme :-)
Gruß Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige