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

Performance-Probleme

Performance-Probleme
10.02.2003 09:54:27
Markus
Hallo alle zusammen!!!
Ich muss mit Hilfe von VBA eine Tabelle auslesen, dies aber je nach gewünschter Abteilung, o.ä. Ich habe geschafft das ein Auswahlfenster erscheint, indem die Abteilungsbezeichnungen stehen. Wenn ich diese allerdings anklicke um in ein detailierteres Menü zu gelangen (Unterabteilungen, einzelne Personen usw.), braucht das ewig viel Zeit. Je nach Auswahl sollen die Daten dann in ein Diagramm eingefügt werden. Dies funktioniert auch soweit. Aber alles ziemlich langsam.
Kann mir da vieleicht irgendjemand helfen?
Vielen Dank, mfg. Markus

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Performance-Probleme
10.02.2003 10:00:01
Michael Scheffler

Hallo,

wie wärs denn mit einem Code-Schnipsel?

Gruß

Micha

Re: Performance-Probleme
10.02.2003 10:03:15
Markus

Ich denke hieran wirds irgendwo liegen:

Sub Daten_2_schreiben()
Dim pruefString As String
Dim Text As Variant

For k = 1 To 500
If Schreib_String = Sheets("Bericht").Cells(k, 1) Then
Worksheets("Datenquelle").Cells(2, 2).Value = Sheets("Bericht").Cells(k, 4)
k = 500
End If
Next k

Text = "=SummeWenn(ArbeitTage!$A:$A;" + Chr(34) + Such_String + "*" + Chr(34) + ";ArbeitTage!B:B)"
Worksheets("Datenquelle").Range("B6:FG6").FormulaLocal = Text

Text2 = "=SummeWenn(RestTage!$A:$A;" + Chr(34) + Such_String + "*" + Chr(34) + ";RestTage!B:B)"
Worksheets("Datenquelle").Range("B4:FG4").FormulaLocal = Text2

End Sub

Anzeige
Re: Performance-Probleme
10.02.2003 11:00:31
Michael Scheffler

Hallo,

1.
k = 500 -> falsch!!!
Man setzt prinzipiell nie die Schleifenvariable anders, dafür gibt es "Exit For"!

2.
Dann dimensioniert man k als Long! Bringt Performance! Alles dimensioniert man - setze "Option Explicit"!. Woher soll Excel wissen, dass es nur ein Zeilenzähler ist?

Gruß

Micha


Re: Performance-Probleme
10.02.2003 11:25:40
Markus

Danke, aber kannst du mir das mal anhand von einem Quelltext zeigen, weil ich kapier nicht wie ich das umsetzen soll. Kenne mich in Vba noch nicht sonderlich aus. Und was hat man unter Option Explicit zu verstehen?
Mfg. Markus

Re: Performance-Probleme
10.02.2003 11:54:44
Michael Scheffler

Hallo,

1.

For k = 1 To 500
If Schreib_String = Sheets("Bericht").Cells(k, 1) Then
Worksheets("Datenquelle").Cells(2, 2).Value = Sheets("Bericht").Cells(k, 4)
Exit For
End If
Next k

2. "Option Explicit" - zwingt Dich, alle Vriablen vor der Laufzeit zu dimensionieren.

Die Hilfe (F1) sagt Dir in VBA eine Menge, zudem gibt es eine Menge Beispiele. Wenn Du auf ein Schlüsselwort gehst und F1 drückst, wird Dir alles angeboten.

Dim lngZeilek As Long

an den Anfang setzen! Dran siehst Du auch:
- Richtig, typgerecht dimensionieren
- Typgerechte Namen vergeben
- Mnemonische Namen vergeben

Gruß

Micha




Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige