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

Wenn Zelle nicht leer, dann Pflichtfelder

Forumthread: Wenn Zelle nicht leer, dann Pflichtfelder

Wenn Zelle nicht leer, dann Pflichtfelder
14.08.2013 10:21:56
Ricarda
Hallo,
mit meinen seit Jahren verschütteten Kenntnissen komme ich leider nicht weiter.
Ich benötige eine Lösung für folgendes Problem:
Wenn in Spalte B einer Tabelle etwas eingetragen ist, also wenn Feld in Spalte B nicht leer, dann sollen die Felder in Spalte I und J zum Pflichtfeld werden.
Und das bitte als Schleife für alle Zeilen der Tabelle ab Zeile 2.
Die Sache mit dem Pflichtfeld habe ich hinbekommen und die MsgBox erscheint, wenn nicht ausgefüllt ist, allerdings will er das jetzt für alle Zeilen und nicht nur für die, wo schon was drin steht.
Danke!
Ricarda

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Wenn Zelle nicht leer, dann Pflichtfelder
14.08.2013 11:57:11
Hajo_Zi
Hallo Ricarda,
nur wenige sehen Deinen Code.

AW: Wenn Zelle nicht leer, dann Pflichtfelder
14.08.2013 12:39:38
Ricarda
bin neu hier... hatte gar keinen Code eingefügt. Oder ist meine Frage am falschen Ort gestellt?

AW: Wenn Zelle nicht leer, dann Pflichtfelder
14.08.2013 12:41:07
Hajo_Zi
das hatte ich auch schon festgestellt.

Anzeige
AW: Wenn Zelle nicht leer, dann Pflichtfelder
14.08.2013 15:04:07
Ricarda
Der Mittelteil zur Ermittlung des Pflichfeldes funktioniert, wenn ich ihn einzeln nehme, aber im Drumherum ist irgendwo ein Fehler.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim c As Range
Dim d As Range
For Each c In Worksheets("Tabelle1").Range("B3:B999")
If c = "" Then
For Each d In Worksheets("Tabelle1").Range("I3:J999")
If d = "" Then
MsgBox "Es sind nicht alle Pflichtfelder ausgefüllt! Stichwort 1 (Spalte I) und Stichwort 2  _
(Spalte J) sind Pflichtfelder!"
Cancel = True
End If
Exit For
End If
Exit For
Next
End Sub

Anzeige
AW: Wenn Zelle nicht leer, dann Pflichtfelder
14.08.2013 15:36:00
Hajo_Zi

Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim c As Range
Dim d As Range
For Each c In Worksheets("Tabelle1").Range("B3:B999")
If c = "" Then
If d = "" Then
MsgBox "Es sind nicht alle Pflichtfelder ausgefüllt! Stichwort 1 (Spalte I) und  _
" _
& "Stichwort 2  (Spalte J) sind Pflichtfelder!"
Cancel = True
Exit For
End If
End If
Next
End Sub
Gruß Hajo
Anzeige

Forumthreads zu verwandten Themen

Anzeige

Infobox / Tutorial

Pflichtfelder in Excel aktivieren, wenn Zelle nicht leer


Schritt-für-Schritt-Anleitung

Um sicherzustellen, dass bestimmte Felder in Excel Pflichtfelder werden, wenn eine andere Zelle ausgefüllt ist, kannst du folgenden VBA-Code verwenden. Dieser Code prüft, ob die Zelle in Spalte B nicht leer ist. Wenn sie gefüllt ist, werden die Felder in den Spalten I und J Pflichtfelder.

  1. Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke im Projektfenster auf DieseArbeitsmappe.
  3. Füge den folgenden Code ein:
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim c As Range
    Dim d As Range
    For Each c In Worksheets("Tabelle1").Range("B3:B999")
        If c <> "" Then
            For Each d In Worksheets("Tabelle1").Range("I3:J999")
                If d = "" Then
                    MsgBox "Es sind nicht alle Pflichtfelder ausgefüllt! Stichwort 1 (Spalte I) und Stichwort 2 (Spalte J) sind Pflichtfelder!"
                    Cancel = True
                    Exit Sub
                End If
            Next d
        End If
    Next c
End Sub
  1. Schließe den VBA-Editor und speichere die Datei als Excel-Makro-fähige Arbeitsmappe (*.xlsm).
  2. Teste den Code, indem du Werte in Spalte B eingibst und überprüfst, ob die MsgBox erscheint, wenn die Felder in Spalte I und J leer sind.

Häufige Fehler und Lösungen

Fehler: MsgBox erscheint auch, wenn alle Felder ausgefüllt sind.
Lösung: Überprüfe, ob der Code korrekt in das richtige Arbeitsblatt eingefügt wurde und die Zellbereiche richtig definiert sind.

Fehler: Code wird nicht ausgeführt.
Lösung: Stelle sicher, dass die Excel-Datei als .xlsm gespeichert wurde und Makros aktiviert sind.


Alternative Methoden

Falls du keine VBA-Lösung verwenden möchtest, kannst du die Datenüberprüfung in Excel nutzen:

  1. Wähle die Zellen in Spalte I und J aus.
  2. Gehe zu Daten > Datenüberprüfung.
  3. Wähle Benutzerdefiniert und gib folgende Formel ein:
=UND($B3<>"",I3<>"")
  1. Füge eine Fehlermeldung hinzu, die angezeigt wird, wenn die Bedingungen nicht erfüllt sind.

Das stellt sicher, dass die Zellen in Spalte I und J nur ausgefüllt werden können, wenn die Zelle in Spalte B nicht leer ist.


Praktische Beispiele

Angenommen, du hast eine Tabelle mit folgenden Daten:

  • Spalte B: Kundenname
  • Spalte I: E-Mail-Adresse
  • Spalte J: Telefonnummer

Wenn du in Zeile 3 in Spalte B den Namen "Max Mustermann" eingibst, müssen die Felder in Spalte I und J ausgefüllt werden, bevor die Datei geschlossen werden kann.


Tipps für Profis

  • Verwende die Worksheet_Change-Ereignisprozedur, um die Eingaben in Echtzeit zu überwachen.
  • Du kannst die MsgBox durch eine benutzerdefinierte UserForm ersetzen, um eine ansprechendere Benutzeroberfläche zu bieten.
  • Denke daran, den Code regelmäßig zu testen, insbesondere nach Änderungen in der Struktur deiner Tabellen.

FAQ: Häufige Fragen

1. Wie kann ich die Prüfung auf andere Spalten erweitern?
Du kannst einfach die Zellbereiche im VBA-Code anpassen, um mehr Spalten zu überprüfen.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, dieser VBA-Code sollte in allen modernen Excel-Versionen funktionieren. Stelle sicher, dass die Makros aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige