Anzeige
Archiv - Navigation
1380to1384
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

Wenn-Dann Bedingung füllen mit Makro dauert lange

Wenn-Dann Bedingung füllen mit Makro dauert lange
23.09.2014 15:30:43
Frederik
Hallo zusammen,
ich habe in einer Excelliste bis zu 1000 Datensätze.
in der einen Zeile ist eine Wenn-Dann-Bedingung hinterlegt, da sich bei den Kriterien bestimmte Sachen gegenseitig ausschließen können und hier entsprechend auch einen Fehler melden können.
Da dieses Feld von meinen Kollegen auch weiterhin bewertbar bleiben muss, kann ich die Formel leider nicht schützen.
Wenn das Feld jedoch leer ist möchte ich, dass die Formel bei einem Excelneustart entsprechend in die felder geschireben wird.
Das funktioniert auch alles einwandfrei mit
Private Sub Workbook_Activate()
Application.Calculation = xlAutomatic
'Call Pruefen_Formel
End Sub

sub Pruefen_Formel()
Sheets("Kriterien").Select
Dim c As Range
For Each c In Range("y6:y1000")
If c.Value = "" Then c.Value = "=IF(RC[-12]=1,"""",IF(RC[-12]+COUNTIF(RC[7]:RC[12],""X"")= _
0,"""",IF(COUNTIF(RC[7]:RC[12],""X"")>=1,""X"")))"
Next c
End Sub
Nur leider brauch das Makro so ewig lang um die 1000 Datensätze zu vergleichen... bis zu 2 min :(
Ich hoffe einer von Euch hat einen Tipp, wie man das ganze beschleunigen kann.
Vielen Dank im Voraus
Frederik

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn-Dann Bedingung füllen mit Makro dauert lange
23.09.2014 15:42:00
Rudi
Hallo,
Wenn das Feld jedoch leer ist
wirklich leer?
Sub Pruefen_Formel()
Dim c As Range
On Error Resume Next
Set c = Range("y6:y1000").SpecialCells(xlCellTypeBlanks)
On Error GoTo 0
If Not c Is Nothing Then
c.FormulaR1C1 = _
"=IF(RC[-12]=1,"""",IF(RC[-12]+COUNTIF(RC[7]:RC[12],""X"")= 0,""""," _
& "IF(COUNTIF(RC[7]:RC[12],""X"")>=1,""X"")))"
End If
End Sub

Gruß
Rudi

geht ganz fix bei mir ...
23.09.2014 15:49:56
Matthias
Hallo
Also ich hab das jetzt mal mit XL2007 getestet
Natürl. in eine neuen Mappe.
Es dauert bei mir (geschätzt) weniger als 2 Sek.
Dann stehen die Formeln in den Zellen.
Auch wenn ich dann die Hälfte der Formeln wieder lösche
und das Makro neu starte dauerts nur ca. 1 Sek.
Gruß Matthias

Anzeige
AW: geht ganz fix bei mir ...
23.09.2014 16:03:00
Daniel
Hi
Wenn dieselbe Formel in mehrere Zellen kommt, sollte man die Formel auch wenn möglich in alle Zellen gleichzeitig schreiben und nicht jede Formel einzeln.
Problem ist, wenn du einen Wert oder eine Formel in eine Zelle schreibst, muss Excel intern eine ganze Reihe von Aktionen ausführen.
Schreibst du die Formeln auf einmal, kann es viele dieser Aktionen 1x für alle ausführen, schreibest du jede Formel einzeln, dann läuft auch jedesmal der ganze Autoamtismus durch.
deswegen:
Range("y6:y1000").SpecialCells(xlcelltypeblanks).FormulaR1C1 = "=IF(RC[-12]=1,"""",IF(RC[-12]+COUNTIF(RC[7]:RC[12],""X"")= 0,"""",IF(COUNTIF(RC[7]:RC[12],""X"")>=1,""X"")))"
Gruß Daniel

Anzeige
meinst Du mich ? ich habs nur getestet. owT
23.09.2014 16:06:36
Matthias

AW: meinst Du mich ? ich habs nur getestet. owT
23.09.2014 16:52:07
Daniel
nee sollte direkt Antwort werden.
Herber ist halt das einzige Forum mit der Baumstruktur, und da man immer zwei Antworten gleichzeitig sieht, kann man schon mal durcheinander kommen, auf welche man antwortet.
wie lange das mit der Schleife dauert, hängt u.U noch davon ab, ob sich andere Formeln auf den Einfügebereich beziehen oder nicht.
die Schleifenlösung löst dann bei jedem Schleifendurchgang eine Neuberechnung aus, während beim Einfügen als Block dann alle Formeln nur einmal neu berechnet werden.
gruß Daniel

Das Herber-Forum ist beileibe nicht das ...
23.09.2014 18:52:51
Luc:-?
…einzige (Xl-)Forum mit Baumstruktur, aber ggf das einzige, in dem man sowohl FORUMS- (⇒Baumstruktur, Standard) als auch BEITRAGSLISTE-Form wählen kann.
Luc :-?

Anzeige
Es funktioniert :)
24.09.2014 07:36:09
Frederik
Hallo zusammen,
so funktioniert das ganze super!
Vielen Dank für Eure Hilfe.
Viele Grüße
Frederik
PS: gibt es eigentlich noch eine Möglichkeit, dass die Berechnung der Zellen kontinuierlich erfolgt, oder ist bei Neustart die einzige Möglichkeit?

327 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige