Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Speichern nur bei erfüllter Bedingung zulassen

Speichern nur bei erfüllter Bedingung zulassen
23.08.2005 07:19:07
Azubi
Hallo zusammen!
Ich habe folgendes Problem:
Eine Excel-Tabelle soll nur dann gespeichert werden können, wenn keine Zellen mehr rot sind (Der Anwender muss in alle rot markierten Zellen Eintragungen vornehmen; bei richtiger Eingabe färbt sich die Zelle wieder weiss [mittels Bedingter Formatierung]).
Wie kann ich nun das Speichern verhindern, wenn noch Zellen rot sind?
Dank im Voraus für eure Hilfe.
Gruß,
Azubi CPFT
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern nur bei erfüllter Bedingung zulassen
23.08.2005 07:55:43
ede
hallo,
als VBA gut solltest du das aber können!
versuchs mal so:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Cells(1, 1) = "" Then
MsgBox "Zelle A1 ist noch leer"
Cancel = True
End If
End Sub

AW: Speichern nur bei erfüllter Bedingung zulassen
23.08.2005 08:01:08
Azubi
Danke für die schnelle Hilfe.
Aber: Wie definiere ich die Farbe rot?
Anzeige
AW: Speichern nur bei erfüllter Bedingung zulassen
23.08.2005 08:07:48
Azubi
Danke für die schnelle Hilfe, aber:
wenn ich es richtig verstanden habe erscheint die Msg-Box, wenn eine der Zellen leer ist.
Es ist aber durchaus möglich, dass alle Zellen gefüllt sind, jedoch nicht alle Bedingungen erfüllt (Zellwert zu niedrig, etc.) und daher auch noch rote Zellen vorhanden sind.
Bei obigem Beispiel würde dies bedeuten, dass ich trotz roter Zellen speichern kann, oder?!
Anzeige
AW: Speichern nur bei erfüllter Bedingung zulassen
23.08.2005 08:20:26
ede
hallo nochmal,
in meinem beispiel habe ich nur die zelle A1 auf Inhalt geprüft, wenn sie leer ist, dann wird speichern unterdrückt.
in deinem beispiel solltest du alle deine zellen einzeln prüfen incl. der bedingung.
auf bedingte formatierung (farbe rot) zu prüfen ist schwerer!
;
Anzeige
Anzeige

Infobox / Tutorial

Speichern nur bei erfüllter Bedingung zulassen


Schritt-für-Schritt-Anleitung

Um das Speichern einer Excel-Tabelle nur dann zuzulassen, wenn keine Zellen mehr rot sind, kannst du VBA (Visual Basic for Applications) verwenden. Folge dieser Schritt-für-Schritt-Anleitung:

  1. Öffne deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Doppelklicke im Projektfenster auf „Diese Arbeitsmappe“, um das Code-Fenster zu öffnen.

  3. Füge den folgenden VBA-Code in das Code-Fenster ein:

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
       Dim cell As Range
       Dim hasRedCells As Boolean
    
       hasRedCells = False
    
       For Each cell In ThisWorkbook.Sheets(1).UsedRange
           If cell.Interior.Color = RGB(255, 0, 0) Then
               hasRedCells = True
               Exit For
           End If
       Next cell
    
       If hasRedCells Then
           MsgBox "Das Speichern ist nicht erlaubt, solange noch rote Zellen vorhanden sind."
           Cancel = True
       End If
    End Sub
  4. Schließe den VBA-Editor und speichere deine Datei als „Excel-Arbeitsmappe mit Makros“ (*.xlsm).

  5. Teste die Funktion, indem du versuchst, die Datei zu speichern, während noch rote Zellen vorhanden sind.


Häufige Fehler und Lösungen

  • Problem: Das Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass du die Datei als *.xlsm gespeichert hast und dass Makros in deinen Excel-Optionen aktiviert sind.
  • Problem: Die MsgBox erscheint nicht, obwohl rote Zellen vorhanden sind.

    • Lösung: Überprüfe, ob die Zellen tatsächlich die rote Farbe mit RGB(255, 0, 0) haben. Möglicherweise ist eine andere Farbdefinition verwendet worden.

Alternative Methoden

Falls du keine VBA verwenden möchtest, kannst du auch eine alternative Methode nutzen, um die Eingaben zu validieren:

  1. Verwende die Datenüberprüfung, um sicherzustellen, dass nur bestimmte Werte eingegeben werden können.
  2. Setze eine benutzerdefinierte Formel in der Datenüberprüfung, die sicherstellt, dass die Eingaben den gewünschten Bedingungen entsprechen.

Diese Methode ist jedoch weniger flexibel als die VBA-Lösung und bietet nicht den gleichen Schutz beim Speichern.


Praktische Beispiele

Hier ein konkretes Beispiel, wie du die Farben definieren kannst:

  • Wenn du die Zellen mit einer bedingten Formatierung rot markierst, stelle sicher, dass die Bedingungen klar definiert sind, so dass die richtigen Zellen erkannt werden. Zum Beispiel:

    If cell.Value < 10 Then
       cell.Interior.Color = RGB(255, 0, 0) ' Rot für Werte unter 10
    End If

Tipps für Profis

  • Du kannst das VBA-Makro erweitern, um verschiedene Bedingungen zu überprüfen. Füge weitere If-Anweisungen hinzu, um sicherzustellen, dass alle Anforderungen erfüllt sind, bevor das Speichern zugelassen wird.
  • Denke daran, das Makro regelmäßig zu testen und sicherzustellen, dass es in verschiedenen Szenarien funktioniert. Dies ist besonders wichtig, wenn du mit vielen Benutzern arbeitest.

FAQ: Häufige Fragen

1. Wie definiere ich die Farbe rot in VBA?
Die Farbe rot wird in VBA normalerweise mit RGB(255, 0, 0) definiert. Du kannst diese Funktion verwenden, um die Farbe einer Zelle zu überprüfen.

2. Kann ich das Speichern auch unter bestimmten Bedingungen erlauben?
Ja, du kannst die Logik im VBA-Code anpassen, um spezifische Bedingungen zu definieren, unter denen das Speichern erlaubt ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige