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

Suchcode verkürzen

Suchcode verkürzen
08.07.2008 07:39:00
otto
Hi,
kann man folgenden Code noch verkürzen?

Private Sub suchen()
Dim suchbegriff, fund2, bereich As Range, fundfund, bereichnds As Range
Sheets("Bestand").Select
Set bereich = Range("y2:y20000")
suchbegriff = Start.Ident
Dim p1 As Currency, p2 As Currency, pg As Currency
With bereich
Set c = .Find(suchbegriff, LookIn:=xlValues, LookAt:=xlPart, SearchDirection:=xlPrevious)
If Not c Is Nothing Then
firstaddress = c.Address
Dim zli
zli = 0
Do
fund2 = c.Row
If fund2 = fundfund Then GoTo weitersuchen      'wenn in gleicher Zeile nochmals  _
gefunden dann weitersuchen
ListBox1.AddItem fund2
ListBox1.List(zli, 0) = Format(Cells(fund2, 47), "0")
ListBox1.List(zli, 1) = Cells(fund2, 53)
ListBox1.List(zli, 2) = Format(Cells(fund2, 63), "0")
ListBox1.List(zli, 3) = Cells(fund2, 61)
ListBox1.List(zli, 4) = Format(Cells(fund2, 39), "0.00")
ListBox1.List(zli, 5) = Format(Cells(fund2, 40), "0.00")
zli = zli + 1
fundfund = fund2
If zli >= 20 Then
If Cells(fund2, 61)  firstaddress
End If
End With
ListBox1.ColumnWidths = "40;50;80;50;70;40"
Me.Caption = "Auflistung zu: >" & suchbegriff & " "" Then GoTo üanzeigen
Exit Sub
üanzeigen:
ListBox1.Height = 338
End Sub


Gruß
otto

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchcode verkürzen
08.07.2008 23:00:06
Daniel
HI
eine mögliche Verkürzung wäre folgende:
anstelle von

Sheets("Bestand").Select
Set bereich = Range("y2:y20000")


reich das hier völlig aus:


Set bereich = Sheets("Bestand").Range("y2:y20000")


ansonsten beschreib mal bitte etwas genauer, was gemacht werden soll und lade mal ne Beispieldatei hoch, an der man mal was ausprobieren kann.
für mich sieht der Code nach schlechtem Programmierstil aus:
- Variablendeklaration mitten im Code und nicht am Anfang
- Variablen teilweise gar nicht oder nur als Variant deklariert
- Es werden Variablen deklariert, die im Code überhaupt nicht verwendet werden.
- Spaghetti-Code durch die Verwendung von mehreren Gotos
hier aufzuräumen wäre wichtiger, als den Code zu verkürzen.
aber dazu muss erstmal klar sein, was der Code überhaupt machen soll.
Gruß, Daniel

Anzeige
AW: Suchcode verkürzen
09.07.2008 07:00:00
otto
Hi Daniel,
mit diessem Code werden in einer Tabelle mit derzeit ca. 7500 Zeilen die Zeilen, deren Spalte Y mit dem Suchbegriff übereinstimmt gesucht. Dann werden die gewünschten Daten aus der jeweiligen Zeile in eine Listbox geschtrieben.
Die Variable "bereichnds" habe ich vergessen zu löschen, der Code ist nur für einen Commandbutton aus dem "großen" Suchcode herauskopiert.
Das mit dem hochladen ist schwierig, da die Datei vertrauliche Daten enthält und 13 MB groß ist.
Es gibt außerdem ein Zusammenspiel von über 20 Eingebemasken und außer dem oben genannten Tabellenblatt noch eins mit ca. 1500 Zeilen und ein mit ca. 10.000 Zeilen. Bei meinem "großen" Suchcode werden alle drei Tabellenblätter nach einer bestimmten Identnummer durchsucht.
Den Code kann ich die schicken, wird dir aber nichts nützen, weil damit schon mal 3 Userforms verbunden sind, die entweder schon geöffnet sind (bei der Eingabe des Suchbegriffes) oder die dann im Laufe der Codeausführung Initialisiert und angezeigt werden.
Gruß
otto

Anzeige
AW: Suchcode verkürzen
10.07.2008 12:45:00
Wolli
Hallo Otto, ich würde vorschlagen, dass Du a) den Code soweit Du kannst selbst straffst, b) sagst, WARUM er verkürzt werden soll - um die Eleganz dürfte es Dir ja kaum gehen ;-) Läuft er zu langsam? Vielleicht kannst Du ja den Teil, um den es geht, in einer neuen Tabelle nachbauen, so dass man sich der Problemstellung leichter nähern kann.
Mach dazu dann am Besten einen frischen Thread auf.
Gruß, Wolli

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige