Registriert seit: 26.01.2018
Version(en): 2010
Hallo Experts!
Es sollen erst in den genannten Zellen die erforderlichen Daten eingegeben werden, sonst kann nicht gespeichert werden.
Es kommt immer die Fehlermeldung: "Laufzeitfehler '438': Objekt unterstützt diese Eigenschaft oder Methode nicht"
Vielen Dank schon mal!
Uwe
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Application.Sheets("ArbZeitAbr").Left(Range("A1").Value, 11) = "Haus wählen" Or Application.Sheets("ArbZeitAbr").Range("J1").Value = "Mon Jahr" _
Or Application.Sheets("ArbZeitAbr").Range("J1").Value = "" Or Application.Sheets("ArbZeitAbr").Left(Range("N1").Value, 12) = "Bitte wählen" Then
Cancel = True
MsgBox "Erst ... ausfüllen!"
End If
End Sub
Registriert seit: 12.03.2016
Version(en): Excel 2003
Hallo
einen Fehler kann ich in deinem Code so nicht sehen, man kann ihn aber geschickt verkürzen! s. unten
Stimmt der Blattname "ArbZeitAbr" mit der Tabelle 100% überein?? Ich habe Worksheet statt Sheet mit With verwendet
mfg Gast 123
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Worksheets("ArbZeitAbr")
If .Left(Range("A1"), 11) = "Haus wählen" Or .Range("J1") = "Mon Jahr" _
Or .Range("J1") = "" Or .Left(Range("N1"), 12) = "Bitte wählen" Then
Cancel = True
MsgBox "Erst ... ausfüllen!"
End If
End With
End Sub
Registriert seit: 11.04.2014
Version(en): Office 2007
Auch Hallo,
meines Wissen hat ein Sheet keine Left-Eigenschaft.
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Worksheets("ArbZeitAbr")
If Left(.Range("A1"), 11) = "Haus wählen" Or .Range("J1") = "Mon Jahr" _
Or .Range("J1") = "" Or Left(.Range("N1"), 12) = "Bitte wählen" Then
Cancel = True
MsgBox "Erst ... ausfüllen!"
End If
End With
End Sub
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 26.01.2018
Version(en): 2010
Danke. Aber diesselbe Fehlermeldung, markiert werden die ersten 2 Zeilen des If-Blocks. Allerdings bin ich es schon fast gewohnt, dass bei uns nicht alles so läuft wie bei anderen...
Gruß
Uwe
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
bei welcher Variante?
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 14.05.2017
Version(en): MS Office Prof. Plus 2016_32-Bit
20.06.2019, 15:07
(Dieser Beitrag wurde zuletzt bearbeitet: 20.06.2019, 15:08 von hddiesel.)
Hallo Uwe,
mit deinen Angaben und dem Makrobeispiel, kann ich nichts anfangen.
Wie wäre es mit einer Beispieldatei, damit wir sehen, was du eigentlich erreichen, vor allem prüfen möchtest.
Im Moment prüfst du auf folgendes:
In A1 soll in den ersten 11 Zeichen "Haus wählen" stehen,
oder in J1 soll "Mon Jahr" stehen,
oder J1 soll leer sein "",
oder in N1 soll in den ersten 12 Zeichen "Bitte wählen" stehen.
Gruß Karl
Registriert seit: 12.03.2016
Version(en): Excel 2003
Hallo
noch en Gedicht ....
Wenn ein Fehler im Code ist kann man oft schwer erkennen wer ihn wirklich verursacht? Ich zerlege dann die If Anweisung in einzelne Teilstrings. Dann sieht man sofort welche Zeile gelb markiert wird. Sollte es "Left(Sheet), 12" sein kann man Sheet.Name vorher in eine Text Variable laden und dann Left auswerten!.
mfg Gast 123
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolea(Sheet)
Dim ok As Boolean
With Worksheets("ArbZeitAbr")
If Left(.Range("N1"), 12) = "Bitte wählen" Then ok = True
If Left(.Range("A1"), 11) = "Haus wählen" Then ok = True
If .Range("J1") = "Mon Jahr" Then ok = True
If .Range("J1").Value = "" Or ok = True Then
Cancel = True
MsgBox "Erst ... ausfüllen!"
End If
End With
End Sub