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

Makro stürzt immer ab nach einer Weile

Forumthread: Makro stürzt immer ab nach einer Weile

Makro stürzt immer ab nach einer Weile
01.03.2025 10:25:31
HofmannChri
Hallo Forum

Ich habe einen relative einfachen VBA Code, der zwischen 2 Excel-Files Werte hin und her spielt.
Also in einem File1 wird SpalteA-File1 Zeile für Zeile durchgeloopt.
Für jede Zeile wird der Wert in der Zelle daneben gespeichert, also SpalteB-File1.
Dann in das zweite File gesprungen und dort in SpalteA-File2 alles durchsucht, bis der Wert von SpalteA-File1
gefunden wird und dann in der SpalteB-File2 der Wert von SpalteB-File1 reingeschrieben.

Ist ne Menge Arbeit, es sind viele Zeilen, dauert ein bisschen aber keine Hexerei.
Mein Problem ist, dass Excel da immer abstürzt. Es gibt keine Fehler oder Meldungen oder sonst irgendwas.
Es stürzt einfach ab.
Mir ist das schön öfters passiert, auch bei anderen Makros, dass Excel da abstürzt, wenn es so oft hin und her
springt. Manchmal dann, läuft`s durch, meistens schwirrt es ab.

Meine Frage ist, wie man das verhindern kann, dass Excel bei so vielen Vergleichsschritten abstürzt.

Danke.
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro stürzt immer ab nach einer Weile
01.03.2025 10:32:39
ralf_b
das kommt auf den Fehler an. Und der verursachende Code wäre auch hilfreich.
AW: Makro stürzt immer ab nach einer Weile
01.03.2025 11:56:56
Piet
Hallo

ein Makro muss nicht hin und her springen, das passiert NUR bei einem Makro Recordercode mit Select!
Wir benötigen kein Workbook oder Sheet Select! Das ist völlig überflüssig, kostet auch unnötig Zeit!
Dazu musst du uns den Code aber bitte mal hochladen. Dann können wir dir weiterhelfen.

mfg Piet
Anzeige
AW: Makro stürzt immer ab nach einer Weile
01.03.2025 14:00:00
Onur
"Meine Frage ist, wie man das verhindern kann, dass Excel bei so vielen Vergleichsschritten abstürzt"
Da du ja die Datei nicht gepostet hast, bleibt nur die Antwort: "RICHTIG zu programmieren lernen"
AW: Makro stürzt immer ab nach einer Weile
01.03.2025 16:50:31
Daniel
Hi
Wenn Excel sehr beschäftigt ist und lange rechnet, dann kann es sein, dass es "vergisst, sich beim Betriebssystem zu melden" und das sieht dann wie ein Absturz aus, obwohl Excel im Hintergrund fröhlich weiterrechnet und irgendwann fertig wird, wenn man lange genug wartet.

Wie man das verhindern kann?
Durch eine bessere Programmierung.

Das was du beschreibst, klingt für mich wie eine Aufgabe für den SVerweis oder XVerweis.
Hier kann man sehr stark optimieren, wenn man die Quellliste (File1) aufsteigend sortiert um dann die Verweis-Variante für sortierte Listen zu verwenden (beim SVerweis 4. Parameter = Wahr, beim XVerweis müsstest du mal in der Anleitung schauen)

Wie hoch der Optimierungsgrad ist, kannst du mit folgendem Selbstversuch herausfinden:
Nimm dir ein Klassisches Telefonbuch.
Denke dir einen Namen aus und suche den Namen im Telefonbuch, bzw finde heraus, ob er existiert, stoppen die Zeit, bis du ein Ergebnis hast.
Mach das gleiche dann mit einer Telefonnummer und vergleiche die Zeiten die du benötigst.


Ein anderer Weg wäre, für die Aufgabe ein Dictionary zu verwenden.
Dictionarys sind im Prinzip eindimensionale Arrays, bei denen der Index (im Dictionary "Key" genannt) aus einem beliebigen Freitext bestehen kann. Innerhalb eines Dictionarys werden ebenfalls optimierte Suchmethoden verwendet, weshalb sie ebenfalls schneller sind als die Suchschleifen, die du vermutlich programmiert hast.

Gruß Daniel
Anzeige
AW: Makro stürzt immer ab nach einer Weile
02.03.2025 11:10:40
Marc
Helfen kann da eine Beispieltabelle oder Code...

Was zusätzlich helfen kann,
- zu posten welcher Fehler , Abbruch Code erscheint
- ein Fehlermanagement ein zu bauen z.B. mit On Error Goto (dabei dann entscheiden, was er beim Fehler machen soll)
- Wenn es "so" große Datenmengen oder Loops sind, wäre eine Datenbank (oder ähnliches) vielleicht Sinnvoller...und schneller
Anzeige
AW: Makro stürzt immer ab nach einer Weile
02.03.2025 13:26:45
Piet
Hallo

ich lade dir mal einen funktionierenden Suchcode hoch, damit du siehst wie wir so etwas programmieren.
Der ist universell, d.h., es müssen nur beide Dateien geöffnet sein. --> (Bitte KEINE 3. Datei offen!)
Du musst nur Prüfen ob in beiden Workbooks das Sheet "Tabelle1" heisst, sonst im Code umbenennen!
In die Variable "SuTxt" bitte deinen Suchtext eingeben und laufen lassen. Da gibt es keine Selects im Code!

Unklar ist mir: --> Du suchst in Workbook2 denselben Text wie im Workbook1, kopierst aber Spalte A nach B??
Da steht doch schon -derselbe Wert- drin! Da ist in deiner Beschreibung irgendeine Unstimmigkeit drin!

mfg Piet

Option Explicit

Dim AC As Range, lz1 As Long
Dim rFind As Range, Adr1 As String

'Suchcode für 2 Workbooks

Sub Suchen_und_einfügen()
Dim SuTxt As String 'Suchname (Text)
Dim WB2 As Workbook, WSht As Worksheet
If Workbooks(2).Name > ThisWorkbook.Name Then _
Set WB2 = Workbooks(2) Else Set WB2 = Workbooks(1)
Set WSht = WB2.Sheets("Tabelle1") '** Name prüfen!
Application.ScreenUpdating = False

With ThisWorkbook.Sheets("Tabelle1")
'LastZelle in Spalte A ThisWorkbook
lz1 = .Cells(Rows.Count, 1).End(xlUp).Row

'Dein Suchtext angeben!!
SuTxt = "Dein Such-Text"

For Each AC In .Range("A2:A" & lz1)
'** gefundene Werte in Spalte B schreiben!
'** ist zum kopieren in Sheets2 nicht notwendig!
If AC.Value = SuTxt Then AC.Cells(1, 2) = AC.Value

'Suchtext in Workbook2 suchen
Set rFind = WSht.Columns(1).Find(what:=SuTxt, After:=[a1], LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)

'Wenn gefunden alle Zeilen durchsuchen
If Not rFind Is Nothing Then
Adr1 = rFind.Address '1. Find Adresse notieren!
Do 'Do Loop um alle Werte in WB2 einzufügen
rFind.Cells(1, 2) = AC.Value
Set rFind = WSht.Columns(1).FindNext(rFind)
Loop Until rFind.Address = Adr1
End If
Next AC
End With
End Sub
Anzeige
AW: Makro stürzt immer ab nach einer Weile
03.03.2025 10:23:13
Christian Lehner
Hallo zusammen

Ich komme erst jetzt dazu zu antworten. Erstmal Danke für die vielen Ratschläge.
Tatsächlich konnte ich letzte Woche den Fehler nicht nachstellen, es war ein bisschen so wie Daniel geschrieben hat.
Es sah so aus als ob Excel abgeschwirrt war, war es aber nicht. Nach einer Weile war alles fertig und Excel wieder "da".

Keine Ahnung, ob das jetzt Zufall war. Jedenfalls werde ich die Ratschläge beherzigen, sollte das wieder passieren.

Danke
Grüße
Chri
Anzeige
AW: Makro stürzt immer ab nach einer Weile
04.03.2025 14:00:09
Yal
Hallo Chri,

anbei eine beschleunigte Version mit Dictionary (von Daniel vorgeschlagen)

Sub Suchen_und_einfügen()

Dim Z As Range 'Z wie Zelle
Dim Dic As Object

'Aufbau der Dictionary
Set Dic = CreateObject("Scripting.Dictionary")
With ThisWorkbook.Worksheets("Tabelle1")
For Each Z In .Range("A2", .Cells(Rows.Count, 1).End(xlUp))
Dic(LCase(Z.Value)) = Z.Offset(, 1).Value 'Wert in Sp. A ist Schlüssel, Wert in Sp. B ist Wert
Next
End With

Application.ScreenUpdating = False
Application.EnableEvents = False

'Verwendung der Dictionary: Ablegen der passenden Werte
With Workbooks("xyz").Worksheets("Tabelle1")
For Each Z In .Range("A2", .Cells(Rows.Count, 1).End(xlUp))
If Dic.Exists(LCase(Z.Value)) Then Z.Offset(, 1).Value = Dic(LCase(Z.Value))
Next
End With

Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub


VG
Yal
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18