Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1352to1356
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
Inhaltsverzeichnis

wenn ,dann Mussfeld in Spalten

wenn ,dann Mussfeld in Spalten
04.03.2014 20:35:20
rene
Hallo zusammen,
wie müsste der Code geändert werden damit zB wenn in Spalte C eine Wert steht Spalte C ein Mussfeld wird bevor man die datei speichern kann?
im Anhang Beispieldatei
https://www.herber.de/bbs/user/89535.xlsm
Danke
rene Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 'Dim Value1 As Variant Dim Value2 As Variant Dim Value3 As Variant Value2 = Range("B2").Value Value3 = Range("C2").Value If Value2 "" And Value3 = "" Then MsgBox "Preis ist nötig" & vbCrLf _ & " Speichern nicht möglich! ", _ vbExclamation, "Eingabe unvollständig !" Range("C2").Select End If Range("C2").Select Cancel = False End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Pflichtfelder befüllt vor Speichern
05.03.2014 01:51:57
Beate
Hallo Rene,
probiere mal diesen Code und passe den Zellbereich nach deinem Bedarf an:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If [COUNTA(B2:B65536)<>COUNTA(C2: _
C65536)] Then
MsgBox "Es sind nicht alle Pflichtfelder im Tabellenblatt  _
'Tabelle1' Spalte C ausgefüllt! Deshalb kann nicht gespeichert werden."
Cancel = True
End If
End Sub
Das Makro gehört ins Codefenster "DieseArbeitsmappe".
Guckst Du: Wie und wo fügt man ein Makro bzw. Code ein
Gruß,
Beate

Anzeige
AW: Pflichtfelder befüllt vor Speichern-Korrektur
05.03.2014 02:38:00
Beate
Hallo Rene,
nimm besser noch den Tabellenblattnamen mit in den Code, sonst könnte es wegen anderer Tabellenblätter Fehlermeldungen geben:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If [COUNTA(Tabelle1!B2:B65536)COUNTA(Tabelle1!C2:C65536)] Then
MsgBox "Es sind nicht alle Pflichtfelder im Tabellenblatt 'Tabelle1' Spalte C ausgefüllt!  _
Deshalb kann nicht gespeichert werden."
Cancel = True
End If
End Sub
Gruß,
Beate

AW: Pflichtfelder befüllt vor Speichern-Korrektur
07.03.2014 16:35:28
rene
Hallo Beate
Danke funktioniert Super.
Rene

Nachtrag zu Pflichtfelder
08.03.2014 19:35:58
rene
Hallo zusammen .
Zunächst vielen Dank nochmal an Beate ,habe aber doch noch ein paar Fragen zu diesem Thema
Wie könnte der Code aussehen damit folgendes erreicht werden kann ?
Bevor die Datei /Blatt gespeichert wird.
Wenn in Spalte C (C2:C6)etwas eingetragen wird ,sollen die Felder (D2:G2) Musseingabe Felder werden ,
(Spalte H wird berechnet =WENN(E2=0;"";E2*G2) und ist geschützt
(Spalte A wird berechnet =WENN(ISTTEXT(C2);1;"") und ist geschützt
(Spalte B ist kein Mussfeld)
Die Abfrage sollte jede einzelne Zeile abfragen (Zeilen 2-6) wird dabei festgestellt das ein Feld nicht gefüllt
ist ,Fehlermeldung über MSGBox (schön wäre das alle fehlenden Felder in der MSGBox aufgezeigt werden)
Ich habe ein wenig versucht aber das Ergebnis ist nicht so gut :-) ich bekomme es nur für eine Zeile hin
Code in der Arbeitsmappe
https://www.herber.de/bbs/user/89594.xlsm
Vielen Dank
Rene

Anzeige
AW: Nachtrag zu Pflichtfelder
10.03.2014 09:45:51
Uwe
Hallo Rene,
vllt. kannste eine For Next Schleife in deinen Code einbauen um alle Zellen abzufragen.
Sub test()
Dim i As Integer
For i = 2 To 6
If Cells(i, 3)  "" And Cells(i, 8) = "" Then
MsgBox "Gesamtsumme? " & "Zelle " & Cells(i, 8).Address(False, False), _
vbCritical, "Gesammtsumme"
Exit Sub
End If
If Cells(i, 3)  "" And Cells(i, 4).Value = "" Then
MsgBox "Liefertermin? " & "Zelle " & Cells(i, 4).Address(False, False), _
vbCritical, "Liefertermin"
Exit Sub
End If
If Cells(i, 3)  "" And Cells(i, 5).Value = "" Then
MsgBox "Bestellmenge? " & "Zelle " & Cells(i, 5).Address(False, False), _
vbCritical, "Bestellmenge"
Exit Sub
End If
If Cells(i, 3)  "" And Cells(i, 6).Value = "" Then
MsgBox "Bestellmengeneinheit? " & "Zelle " & Cells(i, 6).Address(False, False), _
vbCritical, "Bestellmengeneinheit"
Exit Sub
End If
If Cells(i, 3)  "" And Cells(i, 7).Value = "" Then
MsgBox "Einzelpreis? " & "Zelle " & Cells(i, 7).Address(False, False), _
vbCritical, "Einzelpreis"
Exit Sub
End If
Next
End Sub
Grüße
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige