Anzeige
Archiv - Navigation
684to688
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
684to688
684to688
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Array-Verkleinerung ohne Inhalte zu löschen

Array-Verkleinerung ohne Inhalte zu löschen
27.10.2005 15:28:06
Florian
Hallo zusammen,
ich brauche dringend Eure Hilfe:
In meinem Excel-Makro wird ein dynamisches 2-Dimensionales Array zur Generierung einer mehrspaltigen Listbox verwendet. Der Benutzer meines Tools hat allerdings die Möglichkeit die Einträge der Listbox zu filtern, wodurch nur einige der Einträge in der Liste dargestellt werden. Das Problem ist:
Der Array bekommt als Inhalt zwar nur die gefilterten Einträge, behält aber seine ursprüngliche Größe (Anzahl aller Einträge). Dementsprechend ergeben sich einige leere Listeneinträge unter den normalen gefilterten Einträgen.
Das Array ist folgendermaßen aufgebaut: Array(AnzahlEinträge, AnzahlSpalten)
Die AnzahlSpalten bleibt immer gleich, nur die AnzahlEinträge müsste ich um die Anzahl der herausgefilterten (nicht angezeigten) Einträge verkleinern.
Wie kann ich also die erste Dimension(!!!!) eines 2-Dimensionalen Arrays
um eine bestimmte Anzahl Einträge verkleinern?
Bitte helft mir. Ich verzweifel an diesem Problem.
Gruß Florian Scheidler

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

Betreff
Datum
Anwender
Anzeige
...gar nicht..
27.10.2005 15:39:37
gordon
Hallo Florian,
Zitat olh:
redim preserve
Preserve
Optional. Schlüsselwort, das zum Erhalt der Daten in einem bestehenden Datenfeld verwendet wird, wenn die Größe der letzten Dimension geändert wird.
Array 'umdrehen'.
Gruß
gordon
AW: Array-Verkleinerung ohne Inhalte zu löschen
27.10.2005 15:54:16
Franz
Hallo Florian,
folgendermaßen sollte es funktionieren
1. Deklariere das Array (Datenfeld) zu Beginn der Prozedur oder im Modul nur allgemein ohne Größenamngabe
Dim Datenfeld()
2. Ermittle vor dem Anzeigen des Formulars bzw. nachdem der Anwender das Filter für die Listboxeinträge gesetzt hat die Anzahl der Zeilen die noch in der Listbox angezeigt werden sollen.
3. Dimensioniere das Datenfeld neu
ReDim Datenfeld(AnzahlZeilen, AnzahlSpalten)
4. Weise dem Datenfeld die Daten zu
5. Generiere die Daten-Einträge für die Listbox-List neu
6. Zeige das Formular an oder aktualisere es.
Gruß
Franz
Anzeige
AW: Array-Verkleinerung ohne Inhalte zu löschen
27.10.2005 16:04:27
Florian
Danke Ihr beiden,
@Franz: Ja das wäre eine Möglichkeit, die mir auch schon in den Kopf gekommen ist, aber es würde das Programm unnötig verlangsamen, wenn ich vor dem redim des Array nochmal die Excel-Liste durchlaufen müsste um festzustellen, wieviele Einträge gefiltert werden.
Aber so wie es aussieht bleibt ja keine andere Möglichkeit.
Gruß Florian Scheidler
AW: Array-Verkleinerung ohne Inhalte zu löschen
27.10.2005 22:33:21
gordon
Hallo Micha,
interessanter Link, mein 'gar nicht' bezog sich auf "Anzahl Spalten bleibt gleich", d.h. mit Redim preserve.
Mit meinen weiteren Anmerkungen ( s. Florians zweiter Thread) lag ich doch auch ganz gut, habe halt trivialer 'umtauschen' statt transponieren formuliert. Die Meinung, dass sich derartige Aktionen durch vorheirge Analyse eigentlich vermeiden lassen müssten, teile ich übrigens auch.
Gruß
gordon

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige