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

Excel sehr langsam

Excel sehr langsam
Chris
Hallo Forum,
folgendes Makro bewirkt, dass in dem angegebenem Range jeweils der erste Buchstabe groß geschrieben wird bzw, alle Buchstaben groß. Funktioniert soweit wunderbar. Problem ist nur, dass Excel sehr langsam ist. Es braucht ca. 4 Sekunden bevor es nach Tastendruck reagiert. Erst wenn ich das Makro deaktiviere läuft es in Sachen Reaktion nach Tastendruck ganz normal Hat jmd. eine Idee, wie man Excel dazu zu überreden kann, trotzdem normal zu reagieren? Vielen Dank schonmal.
Dim Zelle As Range
Dim Zelle2 As Range
For Each Zelle In Range("E5:E54").Cells
Zelle = UCase(Zelle)
Next Zelle
Application.ScreenUpdating = False
For Each Zelle2 In Range("B5:C54")
Zelle2 = UCase(Mid(Zelle2, 1, 1)) + LCase(Mid(Zelle2, 2, Len(Zelle2)))
Next Zelle2
Application.ScreenUpdating = False

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

Betreff
Benutzer
Anzeige
AW: Excel sehr langsam
08.07.2011 18:13:23
Dieter(Drummer)
Hi Chris,
ist es von dir so gewollt?:
  • Application.ScreenUpdating = False
    For Each Zelle2 In Range("B5:C54")
    Zelle2 = UCase(Mid(Zelle2, 1, 1)) + LCase(Mid(Zelle2, 2, Len(Zelle2)))
    Next Zelle2
    Application.ScreenUpdating = False

  • Gruß, Dieter(Drummer)
    AW: Excel sehr langsam
    08.07.2011 19:13:50
    Chris
    Hallo Dieter,
    nein, ist tatsächlich nicht so gewollt. Ich habe den unteren gelöscht und das erste Updating unter Dim gepackt gepackt, weiterhin als false. Ist ein wenig schneller, aber noch nicht wirklich zufriedenstellend. Muss dazu sagen, ich bin Anfänger in VBA....noch nen Tipp für mich? :-)
    Danke schonmal,
    Christian
    Anzeige
    AW: Leider kein Tipp mehr von mir ...
    08.07.2011 19:49:18
    mir
    ... bin kein Excel/VBA Spezi, sondern nur Hobby Excler und VBAler ;-).
    Gruß,
    Dieter(Drummer)
    AW: schneller mit Formeln
    08.07.2011 19:42:06
    Daniel
    Hi
    hast du ggf im Modul des Tabellenblatts noch ein Makro stehen, daß mit "Private Sub Worksheet_Change" beginnt?
    Dieses würde nämlich jedesmal ausgeführt werden, wenn du einen Zellwert änderst und so das ganze langsam machen.
    Oder hast du sonst aufwendige Formeln, die bei jedem Eintrag neu berechnet werden?
    wenn ja, könntest so das ganze etwas beschleunigen:
    Dim Zelle As Range
    Dim Zelle2 As Range
    Application.EnableEvents = False 'Automatische Makros abschalten
    Application.Calculation = xlCalculationManual 'Neuberechung abschalten
    For Each Zelle In Range("E5:E54").Cells
    Zelle = UCase(Zelle)
    Next Zelle
    Application.ScreenUpdating = False
    For Each Zelle2 In Range("B5:C54")
    Zelle2 = UCase(Mid(Zelle2, 1, 1)) + LCase(Mid(Zelle2, 2, Len(Zelle2)))
    Next Zelle2
    Application.ScreenUpdating = False
    Application.EnableEvents = True 'Automatische Makros einschalten
    Application.Calculation = xlCalculationAutomatic 'Neuberechung einschalten
    
    Besser wäre aber, wenn auch mit VBA die gleiche Methode verwenden würdest, die ohne VBA die schnellste wäre, nämlich per Formel in einer Hilfsspalte (Zellbereiche für die Hilfsspalte ggf anpassen):
    range("Z5:Z54").FormulaLocal = "=Gross(E5)"
    range("Z5:Z54").Copy
    Range("E5").PasteSpecial xlpasteValues
    range("Z5:Z54").ClearContents
    range("y5:Z54").FormulaLocal = "=Gross(Links(B5);1))&Klein(Teil(B5;2;9999))"
    range("Y5:Z54").Copy
    Range("B5").PasteSpecial xlpasteValues
    range("Y5:Z54").ClearContents
    Application.CutCopyMode = False
    
    Gruß Daniel
    Anzeige
    AW: schneller mit Formeln
    08.07.2011 20:20:40
    Chris
    Hallo Daniel,
    danke für deine Vorschläge. Ich habe mich mit ersterem Makro beschäftigt. Tatsächlich habe ich das in einer Worksheet_SelectionChange Prozedur. Als Anfänger weiss ich leider so gar nicht, was ein Modul ist. Klingt zwar ganz gut, aber was das ist und wozu man es braucht, kein Plan :-) die Hilfe finde ich oft zu schwer erklärt, sodass sie mir nicht wirklich hilft...
    WIe dem auch sei: Ich habe jetzt folgendes gemacht und es geht. Dein Makro in ein Modul, dann im Tabellenblatt das Worksheetselectionchange durch Worksheet_Channge ersetzt und call xxx (das Makro zum großschreiben...) eingesetzt. Es läuft wunderbar schnell. Du wirst jetzt wahrscheinlich den Kopf schütteln, aber ich weiss mir leider nicht anders zu helfen....
    Für den Laien: Selection_change oder change ist immer(?) langsam weil Excel ständig überprüfen muss, ob was geändert worden ist und dann entsprechend laut makro reagieren muss?
    Modul: Scheint für mich wohl ein Bereich für Makros zu sein, die im Code des jeweiligen Tabellenblattes aufgerufen werden können?
    Formeln sind immer schneller als VBA? Wieso?
    Neues Terrain für mich...
    Danke nochmals,
    Chris
    Anzeige
    AW: schneller mit Formeln
    08.07.2011 20:48:50
    Daniel
    Hi
    naja, Grundlagenschulung über Forum mach ich jetzt nicht, vielleicht helfen dir ja diese Seiten weiter:
    http://www.online-excel.de/excel/grusel_vba.php?f=6
    Excelformeln sind deswegen in vielen Fällen (sicherlich nicht in allen) schneller als VBA, weil Excel von Anfang an für das Arbeiten mit Formeln ausgelegt wurde und daher die Berechnung von Formeln schneller und effektiver in Excel integriert wurden.
    VBA ist im Prinzip nur ein Aufsatz, der zusätzlich angehängt wurde.
    Außderm liegt VBA die Programmiersprache BASIC zugrunde, bei der hohe Verarbeitungsgeschwindigkeit nicht das oberste Entwicklungsziel war, wie man dem vollen Namen leicht ableiten kann:
    „Beginner’s All-purpose Symbolic Instruction Code“
    Gruß, Daniel
    Anzeige
    AW: schneller mit Formeln
    08.07.2011 21:07:45
    Chris
    Hallo Daniel,
    viele Dank für den Link. Ich werde wohl nicht herumkommen, mir VBA anzueignen. Allzu schwer kanns ja nicht sein :-) Ich schaue mir den Link die Tage genauer an. ..und dein Vorschlag mit den Formeln in VBA auch.
    Grüße aus NRW
    Chris

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige