15.09.2023, 12:37
Hallo,
ich bin neu hier und Grüße euch alle.
Ich habe Microsoft 365. Ich habe einen VBA Code, der eigentlich einwandfrei das tut was ich möchte,
doch gibt es trotzdem ein Problem mit der Laufzeit.
Mein Code fügt bei Klick auf einen Namen im Bereich B9:G14 in eine untere Liste ab B18 Werte ein. Funktioniert soweit auch gut.
Aber soblad ich irgendwo im Tabellenblatt zwei Zellen versehentlich markiere, oder zwei Zellen verbinden möchte
gibt es eine Fehlermeldung. Laufzeitfehler 13, Typen unverträglich.
Egal ob ich auf dem Tabellenblatt in den Tabellen oder in leeren geschützen Zellen zwei markiere, die Meldung kommt immer.
Hier mein Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rng As Range
Set rng = Range("B9:G9") ' Der zu überwachende Zellenbereich
Set rng = Union(rng, Range("B10:G14"))
If Not Intersect(Target, rng) Is Nothing And Target.Value <> "" Then
Application.EnableEvents = False ' Events deaktivieren, um eine Endlosschleife zu vermeiden
Me.Unprotect ' Arbeitsblattschutz aufheben
With Range("B" & Rows.Count).End(xlUp).Offset(1) ' Nächste leere Zeile in Spalte B suchen
.Value = Target.Value ' Zelleninhalt ab B18 einfügen
.Offset(0, 1).Value = Date ' Aktuelles Datum in Spalte C einfügen
End With
With Range("A" & Rows.Count).End(xlUp).Offset(0) ' Nächste leere Zelle in Spalte A ab Zeile 18 suchen
.Value = Application.UserName ' Application.UserName in Zelle A einfügen
End With
Me.Protect ' Arbeitsblatt wieder sperren
Application.EnableEvents = True ' Events wieder aktivieren
End If
End Sub
Ich habe es auch schon so versucht, aber dann werden die Namen nichtmehr in die Tabelle eingetragen:
If Not Intersect(Target, rng) Is Nothing And Target.Value Is Not Nothing Then
Application.EnableEvents = False
Wäre für eine Lösung dankbar.
LG RudiRatlos
ich bin neu hier und Grüße euch alle.
Ich habe Microsoft 365. Ich habe einen VBA Code, der eigentlich einwandfrei das tut was ich möchte,
doch gibt es trotzdem ein Problem mit der Laufzeit.
Mein Code fügt bei Klick auf einen Namen im Bereich B9:G14 in eine untere Liste ab B18 Werte ein. Funktioniert soweit auch gut.
Aber soblad ich irgendwo im Tabellenblatt zwei Zellen versehentlich markiere, oder zwei Zellen verbinden möchte
gibt es eine Fehlermeldung. Laufzeitfehler 13, Typen unverträglich.
Egal ob ich auf dem Tabellenblatt in den Tabellen oder in leeren geschützen Zellen zwei markiere, die Meldung kommt immer.
Hier mein Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rng As Range
Set rng = Range("B9:G9") ' Der zu überwachende Zellenbereich
Set rng = Union(rng, Range("B10:G14"))
If Not Intersect(Target, rng) Is Nothing And Target.Value <> "" Then
Application.EnableEvents = False ' Events deaktivieren, um eine Endlosschleife zu vermeiden
Me.Unprotect ' Arbeitsblattschutz aufheben
With Range("B" & Rows.Count).End(xlUp).Offset(1) ' Nächste leere Zeile in Spalte B suchen
.Value = Target.Value ' Zelleninhalt ab B18 einfügen
.Offset(0, 1).Value = Date ' Aktuelles Datum in Spalte C einfügen
End With
With Range("A" & Rows.Count).End(xlUp).Offset(0) ' Nächste leere Zelle in Spalte A ab Zeile 18 suchen
.Value = Application.UserName ' Application.UserName in Zelle A einfügen
End With
Me.Protect ' Arbeitsblatt wieder sperren
Application.EnableEvents = True ' Events wieder aktivieren
End If
End Sub
Ich habe es auch schon so versucht, aber dann werden die Namen nichtmehr in die Tabelle eingetragen:
If Not Intersect(Target, rng) Is Nothing And Target.Value Is Not Nothing Then
Application.EnableEvents = False
Wäre für eine Lösung dankbar.
LG RudiRatlos