Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

plötzlich keine Rückmeldung von Excel mehr bei Makro

Forumthread: plötzlich keine Rückmeldung von Excel mehr bei Makro

plötzlich keine Rückmeldung von Excel mehr bei Makro
07.07.2025 22:58:05
Christian
Hallo, ich hoffe es hat einer von euch eine Idee, ich habe dafür keine Erklärung:

es geht um dieses Makro:
einzeln gestartet lief es einwandfrei in weniger als einer Sekunde durch.


Sub UpdateUmwandeln()

Dim wsUpdate As Worksheet
Dim letzteZeileUpdate As Long
Dim deleteStartRow As Long
Dim cell As Range
Dim formulaRange As Range

Set wsUpdate = ThisWorkbook.Sheets("Update") ' Anpassen falls nötig
letzteZeileUpdate = wsUpdate.Cells(wsUpdate.Rows.count, 1).End(xlUp).Row

' Alle Shapes auf einmal löschen
On Error Resume Next
wsUpdate.Shapes.SelectAll
Selection.Delete
On Error GoTo 0

' Hyperlinks extrahieren und Werte in Spalte B einfügen
For Each cell In wsUpdate.Range("A1:A" & letzteZeileUpdate)
If cell.Hyperlinks.count > 0 Then
Dim HyAddressParts() As String
Dim partBeforeDot As String
partBeforeDot = Split(cell.text, ".")(0)

If IsNumeric(partBeforeDot) And Val(partBeforeDot) 1001 Then
HyAddressParts = Split(cell.Hyperlinks(1).Address, "/")
If UBound(HyAddressParts) >= 4 Then cell.Offset(0, 1).Value = HyAddressParts(5)
End If
End If
Next cell

' Sortieren und überflüssige Zeilen löschen
wsUpdate.Range("A1:B" & letzteZeileUpdate).Sort Key1:=wsUpdate.Range("B1"), Order1:=xlAscending, Header:=xlNo
deleteStartRow = wsUpdate.Cells(wsUpdate.Rows.count, 2).End(xlUp).Row + 1
If letzteZeileUpdate >= deleteStartRow Then wsUpdate.Rows(deleteStartRow & ":" & letzteZeileUpdate).Delete

' Zwei Spalten einfügen
wsUpdate.Columns("B:C").Insert Shift:=xlToRight

' Direkte Formelzuweisung und Umwandlung
Set formulaRange = wsUpdate.Range("B1:B" & deleteStartRow - 1)
formulaRange.Formula = "=TRIM(SUBSTITUTE(A1, "". "", ""~"", 1))"
formulaRange.Value = formulaRange.Value ' Formeln in Werte umwandeln
formulaRange.TextToColumns Destination:=formulaRange, DataType:=xlDelimited, Other:=True, OtherChar:="~"

' Spalte A löschen und Spaltenbreite anpassen
wsUpdate.Columns("A").Delete
wsUpdate.Columns.AutoFit

' Finale Sortierung
letzteZeileUpdate = wsUpdate.Cells(wsUpdate.Rows.count, 1).End(xlUp).Row
wsUpdate.Range("A1:C" & letzteZeileUpdate).Sort Key1:=wsUpdate.Range("B1"), Order1:=xlAscending, Header:=xlNo

End Sub


Mit Call... aus einem anderen Makro gestartet hing Excel sich auf, die Shapes wurden nicht gelöscht und beim Debuggen hing er dann irgendwo mittendrin bei den Hyperlinks in Spalte B schreiben, auch immer noch nach mehreren Minuten.

Das Problem hab ich lösen können, indem ich den Teil mit dem Shapes löschen durch

Dim shp As Shape

For Each shp In wsUpdate.Shapes
shp.Delete
Next shp


ersetzt habe. Das eigentliche Problem ist also gelöst. Aber ich habe keine Erklärung dafür, wie es dazu kommt. Kann mir da jemand das erklären?

Danke
Christian

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: plötzlich keine Rückmeldung von Excel mehr bei Makro
07.07.2025 23:11:07
daniel
Hi

das Selection.Delete referenziert immer auf das aktive Sheet.
dh wenn nicht zufällig das Sheet "Update" selektiert ist, dann löschst du dir halt irgendwas im gerade aktiven Sheet.
den Fehler, vorher entstehen würde weil du nicht im aktiven Blatt selektierst, unterdrückst du ja.

alle Shapes auf einmal löschen ohne sie zu selektieren kannst du mit diesem Befehl:

wsUpdate.DrawingObjects.Delete


Gruß Daniel
Anzeige
AW: plötzlich keine Rückmeldung von Excel mehr bei Makro
07.07.2025 23:21:29
Christian
Hallo Daniel,

interessante Erklärung, wie soll man das wissen als eher Laie. Ich dachte mit wsUpdate... referenziere ich das Blatt Update.
Jedenfalls danke für die Erklärung.

Und deine Alternative zur Löschung funktioniert auch.

Christian
AW: plötzlich keine Rückmeldung von Excel mehr bei Makro
08.07.2025 10:50:33
schauan
Hallöchen,

den Fehler, vorher entstehen würde weil du nicht im aktiven Blatt selektierst, unterdrückst du ja.

hier in dem Fall bzw. an der Stelle kommt aber kein Fehler .. Bereiche kann man auf einem anderen Blatt nicht (so einfach) selektieren, Shapes schon. Nutz einem halt nix, um die Schleife - wie von Dir erklärt, oder alternativ einen Blattwechsel, gerne auch mit ...ScreenUpdating = False usw., kommt man nicht rum :-(

nicht (so einfach):

Sub test3()

ThisWorkbook.Sheets("Tabelle1").Select
With ThisWorkbook.Sheets("Tabelle2").Range("A1:B4")
.Copy
.PasteSpecial
End With
Application.CutCopyMode = False
End Sub
Anzeige
AW: plötzlich keine Rückmeldung von Excel mehr bei Makro
08.07.2025 13:50:27
Christian
Hallo schauan

verstehe ich dich richtig, Screenupdating = False verhindert in dem Fall das Wechseln des ActiveSheet zu Update?

Wusste ich bislang jedenfalls nicht.

Danke auch für die weiteren Erklärungen
Christian
AW: plötzlich keine Rückmeldung von Excel mehr bei Makro
08.07.2025 15:53:06
schauan
Hallöchen,

oder alternativ einen Blattwechsel, gerne auch mit ...ScreenUpdating = False usw.

also, Blattwechsel mit und nicht Blattwechsel durch ... Es geht nur darum, dass man den nicht sieht, falls man das als störend empfindet :-( Im Prinzip

Application.ScreenUpdating = False

Sheets("Tabelle2").Select
'mach was, was nicht ohne Wechsel geht
Sheets("Tabelle1").Select
Application.ScreenUpdating = True





Anzeige
AW: plötzlich keine Rückmeldung von Excel mehr bei Makro
07.07.2025 23:35:30
daniel
ja, aber wie gesagt,
Selektieren kannst du nur auf dem aktiven Blatt und du hast das "Update" nicht selektiert.
mit dem On Error sollte man vorsichtig umgehen.
Gruß Daniel
2 Dinge verstehe ich dann doch nicht
07.07.2025 23:58:33
Christian
...

hallo Daniel,

2 Dinge verstehe ich dann doch nicht.
Zum einen wenn ich das mit dem On error... wegnehme, hab ich das Problem immer noch... und zum anderen,
warum sollte das Auslesen der Hyperlinks so exorbitant länger brauchen, nur weil die Bilder nicht gelöscht sind?

Ich hatte ja zu Beginn gesagt, beim Debuggen hing er beim Auslesen der Hyperlinks und die Shapes waren immer noch da, also hat das was du beschreibst ja nicht zum Abbruch geführt.

Gruß
Christian
Anzeige
und außerdem hab ich gerade getestet
08.07.2025 00:01:38
Christian
funktioniert das ursprüngliche UpdateUmwandeln auch dann, wenn ich beim Starten ein anderes Blatt geöffnet habe.
das Problem tritt erst auf
08.07.2025 00:02:10
Christian
wenn ich es aus einem anderen Makro heraus aufrufe

Forumthreads zu verwandten Themen

Anzeige