Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1696to1700
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

Laufzeitfehler 13 verbundene Zellen Makro im Blatt

Laufzeitfehler 13 verbundene Zellen Makro im Blatt
18.06.2019 18:25:52
Markus
Hallo,
ich habe durchaus lange hier recherchiert, bevor ich mit meiner Anfrage nerve, aber ich bekomme das problem nicht in den Griff.
Ich habe auf einem Blatt ein Formular, welches Daten wie Eingabe 040619 in 04.06.2019 umwandelt. Leider auch unverzichtbare verbundene Zellen.
Am Ende der Prozedur soll der Benutzer ein Makro aus einem Modul auslösen, welches die Eingaben löscht...
Ich bekomme immer wieder den Laufzeitfehler 13 wenn aus den verbunden Zellen gelöscht werden soll.
Kann jemand helfen?
Im Blatt:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MekZellSt As String
Target.NumberFormat = "General"
If Intersect(Target, Range("34:71")) Is Nothing Or (InStr(Target, ".") > 0) Then Exit Sub
Application.EnableEvents = False
If Len(Target) = 5 Then
Target = _
CDate(Format(CDate(Mid(Target, 1, 1) & "." & _
Mid(Target, 2, 2) & "." & _
Mid(Target, 4, 2)), "dd.mm.yyyy"))
ElseIf Len(Target) = 6 Then
Target = _
CDate(Format(CDate(Mid(Target, 1, 2) & "." & _
Mid(Target, 3, 2) & "." & _
Mid(Target, 5, 2)), "dd.mm.yyyy"))
ElseIf Len(Target) = 7 Then
Target = _
CDate(Format(CDate(Mid(Target, 1, 1) & "." & _
Mid(Target, 2, 2) & "." & _
Mid(Target, 4, 4)), "dd.mm.yyyy"))
ElseIf Len(Target) = 8 Then
Target = _
CDate(Format(CDate(Mid(Target, 1, 2) & "." & _
Mid(Target, 3, 2) & "." & _
Mid(Target, 5, 4)), "dd.mm.yyyy"))
End If
Range("R40:V48").NumberFormat = "#,##0.00 €"
Application.EnableEvents = True
End Sub
Im Modul:
Sub Löschen_Abschluss_BK()
Dim ts As Worksheet
Set ts = Worksheets("BK neu")
ts.Range("O13:U13").ClearContents
ts.Range("O15:U15").ClearContents
ts.Range("O17:U17").ClearContents
ts.Range("O19:U19").ClearContents
End Sub
Ich bedanke mich für jeden Hinweis!

38
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 13 verbundene Zellen Makro im Blatt
18.06.2019 18:37:40
onur
"Ich bekomme immer wieder den Laufzeitfehler 13" - Diese Aussage ist wertlos, wenn du nicht verrätst, wo genau er auftaucht!
AW: Laufzeitfehler 13 verbundene Zellen Makro im Blatt
18.06.2019 18:44:01
Markus
Sorry,
beim Makro im Blatt:

If Intersect(Target, Range("34:71")) Is Nothing Or (InStr(Target, ".") > 0) Then
AW: Laufzeitfehler 13 verbundene Zellen Makro im Blatt
18.06.2019 18:46:40
onur
Wahrscheinlich steht in Target kein Text, dann gibt es Probleme mit Instr.
AW: Laufzeitfehler 13 verbundene Zellen Makro im Blatt
18.06.2019 18:50:55
onur
Abgesehen davon solltest du statt Target InStr(Target.text,".") schreiben, weil ja Target ein RANGE ist.
Oder suchst du in einer Zahl nach Text?
AW: Laufzeitfehler 13 verbundene Zellen Makro im Blatt
18.06.2019 18:53:26
Markus
Nein, nein... Im Target fehlt der Punkt fürs Datum... Eingabe=010519, Ausgabe = 01.05.19... Ich bereite fix eine saubere Probedatei vor und lade Sie hoch...
Danke für Eure Hilfe!!!
PS: Hab monatelang bei Euch gelesen... Prima Forum!
Anzeige
AW: Laufzeitfehler 13 verbundene Zellen Makro im Blatt
18.06.2019 18:39:55
Hajo_Zi
frage jemand der neben Dir sitzt der sieht die Datei.
Die meisten hier sehen Sie nicht.
Da Sie nicht auf Deinen Rechner schauen.
Vielleicht sollte die Datei verlinkt werden?
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)

so ein sturer Bock dieser Hajo-immer wieder...
18.06.2019 18:46:00
robert
AW: Laufzeitfehler 13 verbundene Zellen Makro im Blatt
18.06.2019 18:46:16
Markus
Danke Hajo,
ich lasse mir etwas zur Veranschaulichung einfallen...
AW: Laufzeitfehler 13 verbundene Zellen Makro im Blatt
18.06.2019 19:04:45
onur
Und WO bitteschön ist der Code, wo der Fehler auftritt?
AW: Laufzeitfehler 13 verbundene Zellen Makro im Blatt
18.06.2019 19:08:07
Markus
Haut mich auch gerade um... Der Laufzeitfehler wird mir gezeigt und der Debugger sagt nix...
In der Datei (Original) in der Zeile:
If Intersect(Target, Range("H8:H8")) Is Nothing Or (InStr(Target, ".") > 0) Then
Vielleicht hätte ich erwähnen sollen unbedingt ein Datum und Text einzugeben und dann den Button "Alles Löschen" zu drücken...
AW: Laufzeitfehler 13 verbundene Zellen Makro im Blatt
18.06.2019 19:09:33
onur
NOCHMAL: WO IST DER CODE?
Mit einer Datei ohne den Code von Tabelle1 kann man nix anfangen!
AW: Laufzeitfehler 13 verbundene Zellen Makro im Blatt
18.06.2019 19:10:49
onur
Sorry - Hat sich erledigt, beim 2. mal runterladen hatte ich den Code.
Anzeige
AW: Laufzeitfehler 13 verbundene Zellen Makro im Blatt
18.06.2019 19:11:48
Markus
Okay ;-)... mein Problem ist eben, dass ich auf diese unbeliebten verbundenen Zellenn nicht verzichten kann...
AW: Laufzeitfehler 13 verbundene Zellen Makro im Blatt
18.06.2019 19:18:15
onur
Setze target.text in eine Variable und benutze sie überall statt Target (ausser du meinst den BEREICH Target - dann klappt es auch.
Z.B.
tt=Target.Text
AW: Laufzeitfehler 13 verbundene Zellen Makro im Blatt
18.06.2019 19:19:28
Markus
Ich Danke Euch!!! Es klappt.
bis bald
Es wird nicht mehr klappen, wenn irgendein ...
18.06.2019 19:37:10
Luc:-?
…mehrzelliger Bereich in das Blatt einkopiert wird, Markus.
Für eine einzelne Zelle ist .Text aber sinnvoll, wenn sich das ZellFormat automatisch auf Datum stellt. Anderenfalls wäre auch kein Pkt vorhanden. Damit ist aber immer noch nicht 100%ig sicher, dass ein Pkt aus der Datumsformatierung stammt und nicht etwa einzeln eingegeben wurde, so dass ein ZahlText entsteht. Etwas mehr Nachdenken über FehlEingaben kann nicht schaden, wenn man ein solches Pgm schreibt!
Luc :-?
Anzeige
AW: Es wird nicht mehr klappen, wenn irgendein ...
18.06.2019 19:39:09
Markus
Ich lese hier gerne und ich nehme das auf, was ihr sagt... danke in jedem fall :-)
so kommt bei mir kein Fehler ...
18.06.2019 19:13:38
Matthias
Hallo
funktioniert es so?
... Or (InStr(Target.Text, ".") > 0)
Gruß Matthias
AW: so kommt bei mir kein Fehler ...
18.06.2019 19:18:01
Markus
Spitze, ich glaube Matthias sein Vorschlag funzt.
MAnchmal frage ich mich wie man nur so festgefahren sein kann...
Danke, ich meld mich nochmal wenn alles passt
AW: so kommt bei mir kein Fehler ...
18.06.2019 19:19:39
onur
DAS HABE ICH DIR SCHON VOR EINER HALBEN STUNDE (18:50) SCHON VORGESCHLAGEN !!!
Das ist NICHT des Pudels (Fehlers) Kern, ...
18.06.2019 19:27:34
Luc:-?
…Leute,
sondern nur ein weiterer Fehler, weil das immer geprüft wird, bei jeder Änderung! Es muss aber nur geprüft wdn, wenn die Änderung in H8 erfolgt! Also muss das Konstrukt in 2 separate Anweisungen geteilt wdn, wobei die 2. der 1. nachgeordnet ist.
Außerdem tritt der Fehler so auch beim Löschen auf, weil die EreignisProzedur hierbei ebenfalls unnötigerweise ausgelöst wird, weil ver­gessen wurde, die Reaktion auf Ereignisse zeitweise abzuschalten.
Gruß, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Deshalb Intelligenz steigern mit …

Anzeige
AW: Das ist NICHT des Pudels (Fehlers) Kern, ...
18.06.2019 19:32:21
Markus
Hallo Luc,
genau dies wollte ich umgehen, da das letztlische Clearing ja automatisch ein _Change(ByVal Target As Range)auslöst und ich nicht drauf kam, wie ich dies verhindere...
Application.EnableEvents auch im Löschmakro
18.06.2019 21:18:56
Daniel
Hi
wenn du in einem Makro eine Änderung von Zellwerten durchführen willst, bzw Zellinhalte löschen willst und dabei verhindern willst, dass das Change-Event ausgelöst wird, dann kannst du in dem Makro ebenfalls Application.EnableEvents = False/True verwenden.
Sub Löschen_Abschluss_BK()
Dim ts As Worksheet
Set ts = Worksheets("Tabelle1")
Application.EnableEvents = False
ts.Range("G4:J4").ClearContents
ts.Range("H6:I6").ClearContents
Application.EnableEvents = true
End Sub
Gruß Daniel
Anzeige
Vermutest du, er versteht nicht, was mit ...
19.06.2019 00:03:47
Luc:-?
zeitweise abzuschalten gemeint war, obwohl er das ja im EreignisMakro selbst benutzt hatte, Daniel…?
Luc :-?
Standardfehler im Change-Makro
18.06.2019 21:36:15
Daniel
Hi
der Fehler kommt daher dass du hier nicht bedacht hast, dass TARGET nicht immer nur eine Zelle und ein Einzelwert sein kann, sondern immer auch ein mehrzelliger Zellbereich, er auch aus mehreren nicht zusammenhängenden Einzelzellen besteht, (Mehrfachselektion mit SHIFT- oder STRG-Taste, dann löschen von Inhalten oder Eingabe mit STRG+ENTER.
in diesem Fall ergibt dann TARGET.VALUE keinen Einzelwert, sondern ein ARRAY, was im Umgang mit diesem Wert berücksichtigt werden muss.
am einfachsten löst man das Problem, dass man entweder abfragt, ob Target eine Einzelzelle ist:
if Targt.CountLarge = 1

weitere Prüfungen, die sich auf den Einzelwert von Target beziehen, darf man dann aber nicht in dieses IF mit einbauen, sondern muss dann mehrere IF-Blöcke ineinander schachteln:
If Target.CountLarge = 1 then
If Target.Value = "Hallo Welt Then

oder man arbeitet mit einer Schleife über die Zellen von Target und verwendet den Schleifenzähler anstelle von Target
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MekZellSt As String
Dim Zelle As Range
Target.NumberFormat = "General"
If Intersect(Target, Range("H8:H8")) Is Nothing Then Exit Sub
For Each Zelle In Intersect(Range("H8:H8"), Target)
If InStr(Zelle.Value, ".") = 0 Then
Application.EnableEvents = False
If Len(Zelle) = 5 Then
Zelle = _
CDate(Format(CDate(Mid(Zelle, 1, 1) & "." & _
Mid(Zelle, 2, 2) & "." & _
Mid(Zelle, 4, 2)), "dd.mm.yyyy"))
ElseIf Len(Zelle) = 6 Then
Zelle = _
CDate(Format(CDate(Mid(Zelle, 1, 2) & "." & _
Mid(Zelle, 3, 2) & "." & _
Mid(Zelle, 5, 2)), "dd.mm.yyyy"))
ElseIf Len(Zelle) = 7 Then
Zelle = _
CDate(Format(CDate(Mid(Zelle, 1, 1) & "." & _
Mid(Zelle, 2, 2) & "." & _
Mid(Zelle, 4, 4)), "dd.mm.yyyy"))
ElseIf Len(Zelle) = 8 Then
Zelle = _
CDate(Format(CDate(Mid(Zelle, 1, 2) & "." & _
Mid(Zelle, 3, 2) & "." & _
Mid(Zelle, 5, 4)), "dd.mm.yyyy"))
End If
Range("R40:V48").NumberFormat = "#,##0.00 €"
Application.EnableEvents = True
End Sub
nochmal zum Thema Verbundzellen:
bei wenn du eine Zelle im Zellverbund mit Inhalt änderst, so ist Target immer die Linke obere Zelle des Verbundes und somit eine Einzelzelle.
Löscht du jedoch den Inhalt einer Verbundzelle, so ist Target immer ganze Zellverbund.
Gruß Daniel
Anzeige
Das war ebenfalls bereits erwähnt worden! owT
19.06.2019 00:05:35
Luc:-?
:-?
"A" und A
19.06.2019 00:44:51
Daniel
Luc, denk mal drüber nach
welchen Beitrag meinst du konkret?
19.06.2019 01:06:44
Daniel
das jemand die die "For Each Zelle in Target" oder ein ähnliches Konstrukt erwähnt hat, ist mir nicht aufgefallen, kanst du mir den Beitrag, den du da meinst, zeigen?
Danke, Daniel
Luc, ich warte ...
20.06.2019 17:57:41
Daniel
nenne bitte den Beitrag, auf den du dich beziehst, in welchem mein Lösungsvorschlag (insbesondere der mit For Each Zelle in Target) bereits erwähnt worden sein soll.
Ich kann so einen Beitrag nicht finden.
Gruß Daniel
Du hättest meinetwegen gern noch länger warten ...
20.06.2019 21:53:23
Luc:-?
…können, Daniel,
aber, da ich gerade dabei war… :-]
Luc :-?
Ich meine nicht deine Ausführlichkeit, sondern ...
20.06.2019 21:51:33
Luc:-?
…die Möglichkeit, dass Target auch mehrere Zellen umfassen kann.
Außerdem hättest du inzwischen ja auch mal deinen Flüchtigkeitsfehler korrigieren können:
If Target.Value = "Hallo Welt Then
Aber deine Ausführlichkeiten haben ja nun den Anfrager ungefähr genausoviel interessiert wie mein einfacher Hinweis…
Luc :-?
Anzeige
AW: Ich meine nicht deine Ausführlichkeit, sondern ...
20.06.2019 23:30:09
Daniel
was du meintst, Luc, kann ich nicht wissen, ich kann nur lesen, was du geschrieben hast.
nun, ich habe aber nicht nur erwähnt, das Target auch mehrer Zellen umfassen kann, sondern auch eine konkrete allgemein funktionierende Lösungsmöglichkeit für das Problem aufgezeigt, was vorher noch keiner gemacht hat (Target.Text ist jetzt nicht wirklich eine funktionierende Lösung für das Problem) und daher ist mein Beitrag neu denn diese Lösungsmöglichkeit wurde in diesem Thread bisher noch nicht erwähnt.
Deswegen ist deine Anmerkung schlicht und einfach falsch.
und wenns den Fragesteller nicht interessiert (er hat sich ja für ne andere Lösung entschieden), vielleicht gibts ja stille Mitleser oder irgendejemand mit einem ähnlichen Problem stößt bei seiner Recherche über diesen Thread...
Anzeige
So, so, wohl genauso wie meine andere Anmerkung, …
22.06.2019 10:17:13
Luc:-?
…Daniel,
wohl weil ein einfacher Hinweis ggüber einer ausführlichen Erläuterung von dir untergeht… :-]
Den Frager hat's nicht interessiert und ob spätere Nachnutzer genau das hier finden, ist zweifelhaft, zumal das schon seit Jahren immer mal wieder erwähnt und auch ausgeführt wurde…
Folglich würden wohl nur neu eingestiegene unmittelbare Mitleser davon profitieren.
Ansonsten, was ist an Target als einkopierte ganze Bereiche interpretationsbedürftig?
Sonst hast du wohl nichts zu tun…‽ :-]
Luc :-?
AW: So, so, wohl genauso wie meine andere Anmerkung, …
22.06.2019 12:27:01
Markus
Sorry,
möchte mich bei Euch entschuldigen... Habe dann wohl doch etwas den Überblick verloren :-I
Prinzipiell war die Lösung von Daniel genau das was ich gesucht habe! Danke dafür!
Die Anmerkungen von Luc, Werner und Hajo haben mir aber auch ermöglicht besser zu verstehen, was ich hier eigentlich tue und wie ich die Anweisungen besser durchdenken kann...
Danke Euch allen und wenn ich mich als bald wieder fragend an Euch wende, werde ich meine Formulierungen besser durchdenken... Danke!
Gruß Markus
AW: So, so, wohl genauso wie meine andere Anmerkung, …
22.06.2019 13:17:23
Daniel
Luc schrieb:
"Den Frager hat's nicht interessiert "
was sich ja mittlerweile als eine weitere nicht zutreffende Annahme deinerseits herausgestellt hat.
und wie gesagt Luc, es reicht nicht nur aus, dass man erwähnt dass es da einen Punkt gibt, den man beachten muss, sondern man sollte auch zeigen wie.
Passt ja gut zu deiner Kritik an neopa und …
24.06.2019 20:53:46
Luc:-?
…seiner AW in heutigem Thread, Daniel. :-]
Aber, wenn du gern alles 100× wiederkäust, bitte. (Lehrer müssen das von Berufs wegen machen…)
Mit einer neuerlichen AW des Fragers war kaum noch zu rechnen. Das nun nachträglich zum FehlSchluss­Krite­rium zu erheben, ist nicht unbedingt ehrlich…
Luc :-?
es ist unehrlich Luc, Annahmen zur Tatsache
24.06.2019 22:09:37
Daniel
zu erklären, wenn eigentlich noch gar keine Informationen vorliegen.
wir wissen ja, dass viele Fragesteller kein Feedback geben, aber daraus zu schließen, dass es daran liegt dass sie Antwort nicht gelesen haben, ist nicht zulässig.
Aber Fakt ist, dass sich deine Annahme in diesem Fall als falsch herausgestellt hat.
Gruß Daniel

59 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige