Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1236to1240
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

suchen ersetzen zu langsam

suchen ersetzen zu langsam
Stefan
Hallo Zusammen,
habe mir ein Macro gebastelt, welches in einer Tabelle einen Teil eines Textes ersetzen soll.
(z.B. für A1: "ABCBLABLA_November2011" durch ABCBLABLA_Oktober2011")
Leider läuft das Macro viel zu langsam.(liegt am suchen ersetzen Code).
(von A1 bis K201 dauert das ersetzen fast 30 sekunden)
Kennt jemand einen code der suchen ersetzen schneller durchführt ?
Application.DisplayAlerts = False
Application.ScreenUpdating = False
'Tabellennamen neu festlegen
neuTabelle = Worksheets("macro").Range("A2")
'Tabellennamen neu festlegen
altTabelle = Worksheets("macro").Range("A1")
Sheets("Tabelle1").Select
Range("A1:K201").Select
Selection.Replace What:=altTabelle, Replacement:=neuTabelle, LookAt _
:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Sheets("macro").Select
Worksheets("macro").Range("A1") = neuTabelle
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Danke schonmal im voraus
Stefan

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

Betreff
Benutzer
Anzeige
AW: suchen ersetzen zu langsam
25.11.2011 07:43:01
Marc
Moin!
Bei mir läuft der code noch in derselben Sekunde.
Ich vermute das du in Sheets(1) Formeln hinterlegt hast, in denen du den Teil der Formel ersetzt.
Diese Ersetzten wiederum bewirkt, das die Formel SOFORT neu berechnet wird, bzw das ganze Blatt. _ Das fängst du mit

Application.Calculation = xlCalculationManual 
ab. WICHTIG: Am Ende des Codes mußt du die Berechnung wieder auf

Application.Calculation = xlCalculationAutomatic
setzen, sonst bleibt die manuelle Berechnung. Denke auch bei Code-Abbrüchen daran.
Ich hab Deinen Code mal ergänzt und ein bissl umformatiert. Versuchs mal.
Gruß, Marc
Sub test()
Anfang = "Beginn " & Time
With Application
.DisplayAlerts = False
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
With Worksheets("macro")
neuTabelle = .Range("A2") 'Tabellennamen auslesen
altTabelle = .Range("A1") 'Tabellennamen neu festlegen
.Range("A1") = neuTabelle
End With
Sheets("Tabelle1").Range("A1:K201").Replace What:=altTabelle, Replacement:=neuTabelle, LookAt:=xlPart
With Application
.DisplayAlerts = True
.ScreenUpdating = True 'darauf kann verzichtet werden, da am Ende der Sub eh wieder eingeschaltet wird
.Calculation = xlCalculationAutomatic
End With
MsgBox Anfang & vbCrLf & "Ende " & Time
End Sub
Anzeige
AW: suchen ersetzen zu langsam
25.11.2011 08:09:14
Stefan
Hallo Marc,
danke für deine schnelle Antwort !!!
Habs gleich ausprobiert, leider braucht Excel immer noch so lange (ca. 35 Sekunden).
Was dein Macro auch schön anzeigt.
Ich habe in dem Bereich alles Verknüpfungen zu einer anderen XLS Tabelle, welche jedes Monat
ein neues Tabellenblatt bekommt. (Januar 2010, Februar 2010 usw.)
Ich versuche mit suchen ersetzen immer auf das aktuelle zuzugreifen.
Deshalb dachte ich, dass deine Super Idee mit der Aktalisierung greift. Tut es aber leider nicht.
Vielleicht dauert das ersetzen ansich so lange ? Kann ich mir für diesen mini Bereich kaum vorstellen.
(hab ja nen super schnellen Rechner)...
Hmm ...
:-)
Stefan
Anzeige
AW: suchen ersetzen zu langsam
25.11.2011 08:09:50
guentherh
Hallo Stefan,
ein so lange Antwortzeiten kenne ich auch, wenn Verknüpfungen auf andere Dateien habe, und diese nicht geöffnet sind, worst case liegen sie auch noch auf einem Netzlaufwerk.
Dann wird bei jeder Zelle die Datei im Hintergrund geöffnet, der Wert nachgesehen, und wieder geschlossen.
Abhilfe schafft dann, wenn die Datei auf die die neue Verknüpfung sich beziehen wird, schon vorher geöffnet ist.
Gruß,
Günther
AW: suchen ersetzen zu langsam
25.11.2011 08:19:33
Stefan
Danke !!!
wenns geöffnet ist gehts schneller.
Falls jemand ne Lösung hat ohne die Datei zu öffnen, wäre ich sehr dankbar !!!!
:-)
Danke nochmal
Stefan
Anzeige
AW: suchen ersetzen zu langsam
25.11.2011 10:50:38
Rudi
Hallo,
teste das mal:
Sub xxxx()
Dim arr, i As Long, j As Long, altTabelle As String, neuTabelle As String
'Tabellennamen neu festlegen
neuTabelle = Worksheets("macro").Range("A2")
altTabelle = Worksheets("macro").Range("A1")
With Sheets("Tabelle1").Range("A1:K201")
arr = .FormulaLocal
For i = 1 To UBound(arr)
For j = 1 To UBound(arr, 2)
arr(i, j) = Replace(arr(i, j), altTabelle, neuTabelle)
Next
Next
.FormulaLocal = arr
End With
End Sub

Gruß
Rudi
AW: suchen ersetzen zu langsam
25.11.2011 13:05:05
Stefan
SUPER !!!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige