Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Suchenfunktion Optimieren
zurück: Bestimmte Datenreihe in Diagramm farblich markieren weiter: Konsolidierung von Spalten Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Joshi375
Gast


Verfasst am:
14. Mai 2013, 14:00
Rufname:

Suchenfunktion Optimieren - Suchenfunktion Optimieren

Nach oben
       Version: Office 2007

Hallo ich arbeite in einer sehr umfangreichen Tabelle mit verschiedenen Makros. Momentan versuche ich die Durchlaufzeiten der Makros zu optimieren. Vielleicht könnt ihr mir dabei helfen:
In einem Daten-Tabellenblatt Arbeitspläne(AP) stehen Artikelnummern und Arbeitsgänge in folgender Form (circa 65'000Zeilen)
Artikel1 Arbeitsgang1
Artikel1 Arbeitsgang2
Artikel1 Arbeitsgang3
Artikel2 Arbeitsgang1
Artikel2 Arbeitsgang3

Im meinem "aktiven" Tabellenblatt möchte zu einer Liste von Artikeln die Abeitsgänge jeweils als Zeile darunter einfügen. Dafür habe ich folgende Funktionen genutzt:

Code:

Dim zeile as Range
Dim i,j,k as Integer
Dim Artikel As String

i=1
Do While Not Artikel = ""
  Artikel = Sheets("Aktiv").Cells(i, 3).Value
  Set zeile = Sheets("AP").Range("A:A").Find(Artikel, , , xlPart)
  j = 0
  Do While (Sheets("AP").Cells(zeile.Row + j + 1, 1) = Artikel)
    j = j + 1
  Loop
  Sheets("Aktiv").Rows(i + 1 & ":" & i + j + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
  For k = 0 To j
    Sheets("Aktiv").Cells(i, 3).Value = Artikel
    Sheets("Aktiv").Cells(i, 7).Value = Sheets("AP").Cells(zeile.Row + k, 2)
  Next 'k
i = i+j+1
Loop

(das Makro ist hier vereinfacht dargestellt, Es sind noch kleine If-Bedingungen die Fehler abfangen und bestimmte Zeilen überspringen enthalten. Außerdem bestehen die Arbeitspläne aus mehr Spalten, dadurch sind in der k-For-Schleife mehrere ähnliche Anweisungen.)

Dieser Ablauf dauert circa eine halbe Stunde. Ich befürchte dass die Set-Anweisung das Zeitraubende an diesem Makro ist (Weiß es aber nicht genau). Oder braucht das Zeileneinfügen so lange? Gibt es eine Möglichkeit das Makro zu beschleunigen? (An anderer Stelle konnte ich mit einem Scripting.Dictionary große Zeiteinsparungen erzielen. Nur keider fehlt mir der Ansatz das auch hier Anwenden zu können) Vielleicht habt ihr ja auch einen sehr viel effizienteren Ansatz als ich...

Ich bin auf eure Hinweise und Erfahrung gespannt und bedanke mich schon im Voraus für eure Hilfe
mfg joshi
slowboarder
Im Profil kannst Du frei den Rang ändern


Verfasst am:
14. Mai 2013, 14:27
Rufname:


AW: Suchenfunktion Optimieren - AW: Suchenfunktion Optimieren

Nach oben
       Version: Office 2007

Hi

ja das Einfügen ode Löschen von Zeilen ist ein zeitaufwendiger Vorgang, der zumindest bei grösserer Anzahl vermieden werden sollte.

wenn man bei sowas effektiv arbeiten will, dann solltest du darauf achten, daß die Liste Sortierfähig ist, denn im Sortieren ist Excel sehr schnell.
dann kannst du nämlich einfach die neuen Daten am Datenende einfügen (inkcl der Sortierkriterien) und über das Sortieren an die richtige Position bringen.
dabei hilft auch, daß beim Sortieren die Werte mit gleichem Sortierkriterum ihre Position zueinander nicht verändern.


dh wenn die Artikelliste so ausseht:

ArtNr01 | Artikel A
ArtNr02 | Artikel B
ArtNr03 | Artikel C


dann kannst du die Liste so am Datenende fortschreiben:

ArtNr01 | Arbeitsgang A1
ArtNr01 | Arbeitsgang A2
ArtNr01 | Arbeitsgang A3
ArtNr02 | Arbeitsgang B1
ArtNr02 | Arbeitsgang B2
ArtNr03 | Arbeitsgang C1


und durch sortieren der ganzen Liste nach der Artikelnummer zueinander führen:

ArtNr01 | Artikel A
ArtNr01 | Arbeitsgang A1
ArtNr01 | Arbeitsgang A2
ArtNr01 | Arbeitsgang A3

ArtNr02 | Artikel B
ArtNr02 | Arbeitsgang B1
ArtNr02 | Arbeitsgang B2

ArtNr03 | Artikel C
ArtNr03 | Arbeitsgang C1


das Sortieren ist auch bei grösseren Datenmengen eine Frage von Sekunden.

Gruß Daniel
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: Suchenfunktion 1 habib 99 01. Feb 2012, 11:42
Alterweg Suchenfunktion
Keine neuen Beiträge Excel VBA (Makros): For Schleife (optimieren) 8 Sino 206 23. Nov 2011, 23:03
Gast For Schleife (optimieren)
Keine neuen Beiträge Excel VBA (Makros): VBA-Code optimieren; Zeilen dynamisch erstellen / löschen 2 TLo 1332 22. Sep 2011, 23:15
Gast VBA-Code optimieren; Zeilen dynamisch erstellen / löschen
Keine neuen Beiträge Excel VBA (Makros): Code optimieren 13 deb01 194 17. Jun 2011, 16:30
deb01 Code optimieren
Keine neuen Beiträge Excel VBA (Makros): Geschwindigkeit optimieren 3 ToRa82 868 13. Apr 2011, 15:53
Gast Geschwindigkeit optimieren
Keine neuen Beiträge Excel Formeln: Formel optimieren bitte um Eure Hilfe 3 TeleTobi 203 01. Apr 2011, 16:26
Gast Formel optimieren bitte um Eure Hilfe
Keine neuen Beiträge Excel VBA (Makros): MakroCode zellen ausblenden optimieren 13 Thomas84 398 07. März 2011, 17:40
Phelan XLPH MakroCode zellen ausblenden optimieren
Keine neuen Beiträge Excel VBA (Makros): Makro zum ändern der Formatierung optimieren 2 plumbum 196 07. Feb 2011, 20:35
plumbum Makro zum ändern der Formatierung optimieren
Keine neuen Beiträge Excel VBA (Makros): VBA Code optimieren 0 Böhmi 602 18. Jan 2011, 15:34
Böhmi VBA Code optimieren
Keine neuen Beiträge Excel VBA (Makros): Code optimieren, bitte Hilfe... 18 Kaios 610 15. Jan 2011, 17:05
Kaios Code optimieren, bitte Hilfe...
Keine neuen Beiträge Excel VBA (Makros): Benutzerdefnierte Funktion optimieren 22 slowboarder 832 03. Sep 2010, 00:34
slowboarder Benutzerdefnierte Funktion optimieren
Keine neuen Beiträge Excel VBA (Makros): Makro optimieren 2 biestieboy 394 11. Okt 2009, 12:49
biestieboy Makro optimieren
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Excel Tricks