Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
188to192
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
188to192
188to192
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel nach Makro sehr langsam

Excel nach Makro sehr langsam
04.12.2002 15:04:43
Uwe
Schönen guten Tag auch,

nach dem ausführen eines Makros ist Excel sehr langsam.
Die CPU-Belastung ist auch fast 0.
Im Makro selbst werden einige Dateien über das Netzwerk geöffnet, ein paar Stellen gesucht, kopiert und die Dateien wieder geschlossen.
Das Makro selbst ist mir nicht zu langsam.
Nach einem Neustart von Excel ist alles wieder in Ordnung.

Wer kann mir helfen?
Gibt es "Default" Werte die mann im Makro setzen kann?

Vielen Dank
Grüsse an alle

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Excel nach Makro sehr langsam
04.12.2002 16:05:25
Hajo_Zi
Hallo Uwe

leider hast Du niochts zu Deinem Makro geschrieben. Arbeitest Du mit set dann lösche den Speicher zum Ende wieder mit Set Variable=""

Gruß Hajo

Re: Excel nach Makro sehr langsam
04.12.2002 16:42:27
Uwe
Hallo Hajo,

am einfachsten ist wohl in poste mal einen Teil des Makros. Dann wirds wohl einfacher.

Sub Laufzeiten() '
' Makro zur automatischen Aktualisierung der Prüfstandsbelegung
' Makro erstellt am 03.12.2002
'

Dim Pfad1, Pfad, Datei1, Verzeichnis As String 'Variablendeklaration
Dim Datum, Zeit As Date
Dim Bstd_PL, Bstd_Mot As Double
Dim Länge As Long
Dim i As Integer

Application.ScreenUpdating = False 'Auffrischung des Bildschirms verhindern
Application.Calculation = xlManual

'==============================================================================
'Bezugsdaten
Worksheets("Laufzeiten").Activate 'Tabelle Pfade aktivieren
Range("J1").Select 'Zelle J1 markieren
ActiveCell.Value = Date 'Datum eintragen
Range("N1").Select 'Zelle N1 markieren
ActiveCell.Value = Time 'Uhrzeit eintragen
'==============================================================================
'Prüfstand 1
ChDir "\\Pst_1\C\MGG_Prog\config" 'Verzeichniswechsel

Workbooks.OpenText Filename:="\\Pst_1\C\MGG_Prog\config\Pst_01.ini", Origin:= _
xlWindows, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, _
1), Array(50, 1), Array(52, 1), Array(55, 1), Array(58, 1))
ActiveWindow.SmallScroll Down:=201 'PST_01.ini öffnen

Cells.Find(What:="group3=1, 201, 300, C:\MGG_Prog\daten", After:=ActiveCell _
, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False).Activate
Cells.FindNext(After:=ActiveCell).Activate 'Nach Pfadangabe suchen

ActiveCell.Select 'Pfad erxtrahieren
Pfad1 = ActiveCell.Value
Länge = Len(Pfad1)
Verzeichnis = Mid(Pfad1, 39)
Länge = Len(Verzeichnis)
Verzeichnis = Left(Verzeichnis, Länge - 3)

ActiveWorkbook.Close savechanges:=False 'Datei schliessen

Pfad = "\\Pst_1\C\MGG_Prog\Daten\" & Verzeichnis & "\Laufzeiten"
'Vollständiger Pfad in Variable

ChDir Pfad 'Pfadwechsel

Worksheets("Pfade").Activate 'Tabelle Pfade aktivieren
Range("A1:A50").Select 'Spalte A markieren

Selection.ClearContents 'Alten Inhalt löschen
Range("A1").Select 'Zelle A1 markieren

Datei1 = Dir$(Pfad & "\*.*") 'Dateien in Verzeichnis auflisten
Do While Datei1 <> ""
ActiveCell.Offset(i, 0) = Datei1
i = i + 1
Datei1 = Dir$()
Loop

Range("A1").Select 'Sortieren nach Name
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

[A1].Select 'Zelle A1 markieren
ActiveCell.End(xlDown).Select 'Letzte Zelle suchen (neuste Datei)

Datei1 = Pfad & "\" & ActiveCell.Value 'ZU öffnende Datei (Pfad und Name) in Datei1

Workbooks.Open (Datei1) 'Datei öffnen

[A4].Select 'Zelle A4 markieren
ActiveCell.End(xlDown).Select 'Letzte Zelle markieren (Datum)
Datum = Format(ActiveCell.Value, "mm.dd.yy") 'Datum formatieren / Wert in Variable

[B4].Select 'Zelle B4 markieren
ActiveCell.End(xlDown).Select 'Letzte Zelle markieren (Uhrzeit)
Zeit = ActiveCell.Value 'Wert in Variable (Uhrzeit)

[F4].Select 'Zelle F4 markieren
ActiveCell.End(xlDown).Select 'Letzte Zelle markieren (Stunden Prüflauf)
Bstd_PL = ActiveCell.Value 'Wert in Variable (Stunden Prüflauf)

[G4].Select 'Zelle G4 markieren
ActiveCell.End(xlDown).Select 'Letzte Zelle markieren (Stunden Motor)
Bstd_Mot = ActiveCell.Value 'Wert in Variable (Stunden Motor)

ActiveWorkbook.Close savechanges:=False 'Datei schliessen


Worksheets("Laufzeiten").Activate 'Tabelle Pfade aktivieren

Range("K11").Select 'Zelle K11 markieren
ActiveCell = Bstd_PL 'Variable in Zelle schreiben (Std. Prüflauf)

Range("L11").Select 'Zelle L11 markieren
ActiveCell = Bstd_Mot 'Variable in Zelle schreiben (Std. Motor)

Range("AA11").Select 'Zelle AA11 markieren
ActiveCell = Datum 'Variable in Zelle schreiben (Bezugsdatum)

Range("AC11").Select 'Zelle AC11 markieren
ActiveCell = Zeit 'Variable in Zelle schreiben (Bezugszeit)
'================================================================================================

Der Rest des Makros ist praktisch gleich mit anderen Pfadangaben und anderen Dateinamen.

Gruß Uwe

Anzeige
Re: Excel nach Makro sehr langsam
04.12.2002 16:57:47
Hajo_Zi
Hallo Uwe

in Deinem Code sehe ich nichts außergewöhnliches. Obwohl ich zugeben muß mit einer Ini datei habe ich noch nicht gearbeitet. Ich würde nur in Deinem Code auf Select und ähnliche Befehle verzichten.

Gruß Hajo

Re: Excel nach Makro sehr langsam
04.12.2002 18:27:13
Sören
Hallo Hajo,

hat jetzt nichts mit diesem Problem hier direkt zu tun, aber besser ist es am Ende mit "Set Variable=Nothing" zu schliessen.

Sören

Re: Excel nach Makro sehr langsam
04.12.2002 18:28:56
Hajo
Hallo Sören

Danke für den Hinweis, ich habe es nu´r aus der erinnerung geschreiben. Ich setze fast nicht Set ein.

Gruß Hajo

Re: Excel nach Makro sehr langsam
04.12.2002 18:35:29
Sören
Hallo Hajo,

war keine Kritik! Wollte es nur hierher schreiben, damit andere beide Möglichkeiten erfahren. Der Speicher wird eben nur durch "=Nothing" freigegeben. Mit " ="" " bleibt ein Leerstring im Speicher.

Sören

Anzeige
Re: Excel nach Makro sehr langsam
04.12.2002 18:43:47
Hajo
Hllo Sören

als Kritik habe ich das auch nicht gesehen. Man kan nicht alles über Excel wissen.

Gruß Hajo

Re: Excel nach Makro sehr langsam
05.12.2002 08:00:13
Uwe
Hallo Hajo,

erstmal danke für deine Vorschläge so wird ja auch der Code kürzer und "objektorientierter".

Aber mir ist nicht klar was der Verzicht auf "Select" usw. bringt, da mir das Makro selbst eigentlich gar nicht zu langsam ist. Die Zugriffe über das Netz brauchen halt ihre Zeit.
Vielmehr ist Excel selbst nach ausführen des Makros zu langsam, so als ob keine "Systemleistung" zur Verfügung steht ==> das ist aber nicht der Fall.

Die Sache mit der ini-Datei ist diese:
In der ini steht der aktuelle Pfad zu der Datei wo es drauf ankommt ich lese (suche) hier nur den entsprechenden Pfad.
Mit diesem Pfad (ändert sich fast täglich) öffne ich eine ASCII-Datei und lese ein paar Werte aus.
Excel müsste es doch eigentlich egal sein was es für eine Datei ist, solange es sie lesen kann.

Gruß Uwe

Anzeige
Re: Excel nach Makro sehr langsam
05.12.2002 08:03:23
Hajo_Zi
Hallo Uwe

das verzichten auf Select hat nur den Vorteil Zeit und das Flakkern des Bildschirmes wird verhindert. Der Bildschirmaufbau kostet auch Zeit.

Gruß Hajo

Re: Excel nach Makro sehr langsam
05.12.2002 08:14:13
Uwe
Hallo Hayo,

das ist ja aber nur während der Laufzeit des Makros der Fall
aber danach ?
Gibt es denn keinen Befehl der Excel in den "Startzustand" setzt?
Weil nach einem Programneustart ist es wieder i.O.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige