Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1636to1640
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Runtime Error 13 bei einfachem Makro

Runtime Error 13 bei einfachem Makro
09.08.2018 11:54:19
Nadine
Hallo zusammen
Ich habe ein einfaches Makro in einem Forum gefunden, welches auch funktioniert. Nun erscheint jedoch immer der gleiche Fehler "Runtime error 13, type mismatch".
Mit dem Makro soll zwischen den Zellen I36:L44 beim Klick auf die Zelle ein X erscheinen. Wenn man wieder draufklickt, soll das X wieder verschwinden. Hier der VBA Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Range("I35:L43"), Target) Is Nothing Then Exit Sub
If Target = "X" Then
Target = ""
Else
Target = "X"
Target.HorizontalAlignment = xlCenter
End If
End Sub
Was kann ich tun um den Runtime Error zu bezwingen?
Ich bin leider bei VBA noch blutige Anfängerin. Danke für eure Hilfe!
Liebe Grüsse
Nadine

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Runtime Error 13 bei einfachem Makro
09.08.2018 12:03:17
MatthiasG
Hallo Nadine,
so?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim r0 As Range, rng As Range
Set rng = Intersect(Range("I35:L43"), Target)
If Not rng Is Nothing Then
For Each r0 In rng
If r0 = "X" Then
r0 = ""
Else
r0 = "X"
r0.HorizontalAlignment = xlCenter
End If
Next r0
End If
End Sub

Dein Code läuft auf einen Fehler, wenn mehrere Zellen markiert werden.
Gruß Matthias
AW: Runtime Error 13 bei einfachem Makro
09.08.2018 12:06:48
Nepumuk
Hallo Nadine,
teste mal:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim objRange As Range, objCell As Range
    Set objRange = Intersect(Range("I35:L43"), Target)
    If Not objRange Is Nothing Then
        For Each objCell In objRange
            If objCell.Value = "X" Then
                objCell.Value = ""
            Else
                objCell.Value = "X"
                objCell.HorizontalAlignment = xlCenter
            End If
        Next
        Set objRange = Nothing
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Runtime Error 13 bei einfachem Makro - OT
09.08.2018 12:17:20
MatthiasG
Hallo Nepumuk,
muss bzw. sollte man Objekte in VBA nach Gebrauch auf Nothing setzen (wegen Speicherverwaltung und so), oder ist das Gewohnheit bei dir, weil du auch in anderen Sprachen programmierst?
Gruß Matthias
AW: Runtime Error 13 bei einfachem Makro - OT
09.08.2018 12:21:44
Nepumuk
Hallo Matthias,
reine Gewohnheit, ich arbeite viel mit Klassen und die muss ich explizit zerstören.
Gruß
Nepumuk
AW: Runtime Error 13 bei einfachem Makro
09.08.2018 12:15:06
Daniel
Hi
Das Problem müsste auftreten, wenn der Anwender mehrere Zellen gleichzeitig selektiert
(Diese Möglichkeit wird von vielen übersehen, wenn sie mit dem selection-Change-Event arbeiten.
Die erste Frage, die man sich stellen muss ist, was dann passieren soll.
- nichts, weil der Anwender jedes Kreuz einzeln schalten soll
- der Inhalt wird umgeschaltet, so wie wenn der Anwender jede Zelle einzeln nacheinander anklicken würde
- es wird umgeschaltet, aber alle gewählten Zellen bekommen den gleichen Wert , auch wenn sie vorher unterschiedlich waren.
Wenn Fall 1 zutrifft, würde ich auf das BeforeDoubleClick- Event ausweichen.
Da kann man nur eine Zelle anklicken und es geschieht bewusster als der einfach klick.
Außerdem kann man die gleiche Zelle sofort wieder anklicken, ohne erst wo anders hin klicken zu müssen.
Gruß Daniel
Anzeige
AW: Runtime Error 13 bei einfachem Makro
09.08.2018 12:24:46
Nadine
Update: Danke für eure Inputs! Ich habe den Code von Nepumuk verwendet und das hat perfekt geklappt. Merci auch für die Erklärungen von Daniel und den Code von MatthiasG. So schnell wurde mir noch nie mit einem Excel Thema geholfen. Vielen lieben Dank an euch alle!

220 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige