Hallo zusammen,
Ich habe folgendes Problem:
In meiner Datei wird immer wieder vergessen einige Zellen auszufüllen.
Darum wäre es genial wenn Excel einen bevor man Speichert mit einer Meldung aufmerksam macht das die Pflichtangaben noch nicht ausgefüllt sind.
Der absolute Wahnsinn wäre noch wenn vielleicht diese Zellen noch farbig hervor gehoben werden.
Es würde sich um folgende Zellen Handeln: H8, Q8, H11, Q11. Es muss eine von diesen Zellen mit einem Text gefüllt werden.
Ist die so umsetzbar?
Dankeschön im voraus!
Hallo Pascala,
ja, das geht. - Eine mögliche Variante der einfacheren Art wäre dies:
Code:
Private Sub Text_füllenNorbert()
Tabelle1.Range("H8").Interior.ColorIndex = None
Tabelle1.Range("Q8").Interior.ColorIndex = None
Tabelle1.Range("H11").Interior.ColorIndex = None
Tabelle1.Range("Q11").Interior.ColorIndex = None
If Tabelle1.Range("H8") = "" And _
Tabelle1.Range("Q8") = "" And _
Tabelle1.Range("H11") = "" And _
Tabelle1.Range("Q11") = "" Then
MsgBox "Es muss noch eine Zelle mit Text gefüllt werden"
Else
Tabelle1.Range("H8").Interior.ColorIndex = 5
Tabelle1.Range("Q8").Interior.ColorIndex = 5
Tabelle1.Range("H11").Interior.ColorIndex = 5
Tabelle1.Range("Q11").Interior.ColorIndex = 5
End If
End Sub
Name der Tabelle und gewünschte Farbe noch anpassen.
Grüße
Norbert
Vielen lieben Dank für deine Antwort!
Nur leider speichert er dennoch die Datei ab wenn keiner dieser Zellen befüllt ist.
Hast du vielleicht hierzu noch eine Lösung?
Vielen Dank.
Ich habe es jetzt so angepasst und es funktioniert. :)
Trotzdem vielen Dank für das Helfen!
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Tabelle1.Range("H8").Interior.ColorIndex = 3
Tabelle1.Range("Q8").Interior.ColorIndex = 3
Tabelle1.Range("H11").Interior.ColorIndex = 3
Tabelle1.Range("Q11").Interior.ColorIndex = 3
If Tabelle1.Range("H8") = "" And _
Tabelle1.Range("Q8") = "" And _
Tabelle1.Range("H11") = "" And _
Tabelle1.Range("Q11") = "" Then
MsgBox "Es muss noch eine Zelle mit Text gefüllt werden"
Cancel = True
Else
Tabelle1.Range("H8").Interior.ColorIndex = None
Tabelle1.Range("Q8").Interior.ColorIndex = None
Tabelle1.Range("H11").Interior.ColorIndex = None
Tabelle1.Range("Q11").Interior.ColorIndex = None
End If
End Sub
Hallo Pascala,
das sollte funktionieren:
Code:
Option Explicit
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Tabelle1.Range("H8").Interior.ColorIndex = 3
Tabelle1.Range("Q8").Interior.ColorIndex = 3
Tabelle1.Range("H11").Interior.ColorIndex = 3
Tabelle1.Range("Q11").Interior.ColorIndex = 3
If Tabelle1.Range("H8") = "" And _
Tabelle1.Range("Q8") = "" And _
Tabelle1.Range("H11") = "" And _
Tabelle1.Range("Q11") = "" Then
MsgBox "Es muss noch eine Zelle mit Text gefüllt werden"
Cancel = True
Else
Tabelle1.Range("H8").Interior.ColorIndex = xlNone
Tabelle1.Range("Q8").Interior.ColorIndex = xlNone
Tabelle1.Range("H11").Interior.ColorIndex = xlNone
Tabelle1.Range("Q11").Interior.ColorIndex = xlNone
MsgBox "Tabelle wurde gespeichert"
End If
End Sub
Grüße
Norbert