Office-Fragen.de
VBA Laufzeitfehler 13 Typen unverträglich - Druckversion

+- Office-Fragen.de (https://office-fragen.de)
+-- Forum: Microsoft Office (https://office-fragen.de/forum-1.html)
+--- Forum: Excel (https://office-fragen.de/forum-2.html)
+--- Thema: VBA Laufzeitfehler 13 Typen unverträglich (/thread-28940.html)



VBA Laufzeitfehler 13 Typen unverträglich - RudiRatlos - 15.09.2023

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


RE: VBA Laufzeitfehler 13 Typen unverträglich - ralf_b - 15.09.2023

das Problem könnte sein, das dein Code nicht darauf ausgelegt ist, das Target auch mehrere Zellen sein können.

if target.count >1 then exit sub könnte das beheben.


RE: VBA Laufzeitfehler 13 Typen unverträglich - RPP63 - 16.09.2023

(15.09.2023, 21:03)ralf_b schrieb: if target.count >1 then exit sub  könnte das beheben.

Es könnte aber auch die Err.Number von 13 auf 6 (Überlauf) switchen.  Angel
Ich nehme ja lieber If Target.CountLarge

Gruß Ralf