Registriert seit: 24.08.2022
Version(en): 2021
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Shapes("Kontrollkästchen 3").OLEFormat.Object.Value = 1 Then
If Intersect(Target, Range("F5:F16")) Is Nothing Then Exit Sub
If Target.Value <> "" Then
Target.Offset(0, 1).Value = Date
Else
Target.Offset(0, 1).ClearContents
End If
End If
End Sub
Wenn ich die Werte D-H markiere und inhalt löschen auswähle bekomme ich immer eine Fehlermeldung
Laufzeitfehler `13´:
Typen unverträglich
unter debug ist dies gelb markiert
If Target.Value <> "" Then
lässt sich das irgendwie korrigieren?
Registriert seit: 24.08.2022
Version(en): 365, 2019
27.08.2022, 19:55
(Dieser Beitrag wurde zuletzt bearbeitet: 27.08.2022, 19:59 von EarlFred.)
Wie der Fehler entsteht, dürfte klar sein: Ein Datenfeld kann man nicht auf Gleichheit mit einem String prüfen, sondern nur jedes einzelne Element.
Damit hast du dann deine Lösung:
Code:
Dim c as Range
For Each c in Intersect(…)
If Isempty(c) Then
usw.
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipedia, die Tafeln oder aktion-deutschland-hilft.de
Registriert seit: 24.08.2022
Version(en): 2021
Wenn ich bei D1, E1 und F1 was eingebe soll bei G1 das Datum von heute eingetragen werden entscheidend ist F1.
Markiere ich nun D1+E1+F1 und löschen den Inhalt kommt es zu diesem Fehler, wenn ich alles einzeln löschen dann klappt das ohne die Fehlermeldung.
Registriert seit: 24.08.2022
Version(en): 365, 2019
Schau bitte nochmal in meine andere Antwort, da stehen die Erklärung und die Lösung.
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipedia, die Tafeln oder aktion-deutschland-hilft.de
Registriert seit: 24.08.2022
Version(en): 2021
27.08.2022, 20:11
(Dieser Beitrag wurde zuletzt bearbeitet: 27.08.2022, 20:17 von ecvBxter.)
So ?
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Shapes("Kontrollkästchen 3").OLEFormat.Object.Value = 1 Then
If Intersect(Target, Range("F5:F16")) Is Nothing Then Exit Sub
Dim c As Range
For Each c In Intersect(…)
If IsEmpty(c) Then
Target.Offset(0, 1).Value = Date
Else
Target.Offset(0, 1).ClearContents
End If
End If
End Sub
mit dem Kontrollkästchen 3 kann ich den script de/-aktivieren
Registriert seit: 24.08.2022
Version(en): 365, 2019
27.08.2022, 20:24
(Dieser Beitrag wurde zuletzt bearbeitet: 27.08.2022, 20:35 von EarlFred.)
(27.08.2022, 20:11)ecvBxter schrieb: So ?
Nein. Schau nochmal genau hin.
Willst du die Prozedur denn deaktivieren, wenn du löscht, oder warum erwähnst du das?
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Shapes("Kontrollkästchen 3").OLEFormat.Object.Value = 1 Then
If Intersect(Target, Range("F5:F16")) Is Nothing Then Exit Sub
Dim c As Range
Application.EnableEvents = False
For Each c In Intersect(Target, Range("F5:F16"))
If Not IsEmpty(c) Then
c.Offset(0, 1).Value = Date
Else
c.Offset(0, 1).ClearContents
End If
Next c
Application.EnableEvents = True
End If
End Sub
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipedia, die Tafeln oder aktion-deutschland-hilft.de
Folgende(r) 1 Nutzer sagt Danke an EarlFred für diesen Beitrag:1 Nutzer sagt Danke an EarlFred für diesen Beitrag 28
• ecvBxter
Registriert seit: 24.08.2022
Version(en): 2021
27.08.2022, 20:53
(Dieser Beitrag wurde zuletzt bearbeitet: 27.08.2022, 21:05 von ecvBxter.)
nein das soll optional sein für mich sind das alles böhmische dörfer ich verstehe davon sogut wie nichts
Ok habs hinbekommen Vielen dank, das ist ja blöd das man den Code scrollen muss hate deswegen nur die hälfte kopiert
Edit:
funktioniert soweit gut bis aufs Kontrollkästchen 3 dem Code ist es egal es lässt sich nicht ausshalten.