Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1516to1520
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
Inhaltsverzeichnis

Grosse Tabelle in Array und dieses bearbeiten

Grosse Tabelle in Array und dieses bearbeiten
03.10.2016 11:49:09
Helfi
Liebe Excel-Cracks,
leider hat mir die Suche nicht weiterhelfen können (wahrscheinlich aufgrund der falschen Fragestellung), ich muss Euch deshalb so um Hilfe bitten.
Ausgangslage: Ich habe eine Kunden-"Datenbank" mit bisher ca. 600 Einträgen und ca. 200 Infos pro Kunde (600 Zeilen / 200 Spalten) in einer Tabelle. Ich habe mir damit (mangels Unternehmenslösung) eine kleine, handgestrickte "CRM-Lösung" für mich selbst gebastelt. Mit einigen "Komfort"-Features wie z.B. Auswahl nach Kriterien mittels Userform ist das eine ganz gute und einfach zu bedienende Story und ich kann damit Auswertungen fahren. Der jeweils ausgewählte Kunde wird in einer Userform dargestellt und Änderungen können wieder zurückgeschrieben werden. Nun sind aber plötzlich über 3000 Einträge dazugekommen, und damit wird das Ganze doch ziemlich langsam (durch das dauernde Zugreifen auf die Tabelle). Aus diesem Grund überlege ich mir, wie ich das (mit meinen begrenzten Mitteln) nachhaltig verbessern könnte.
Meine Idee: Die Suchfunktion habe ich mittels einlesen einer Matrix in ein Array als Dictionary Object-Item bereits massivst beschleunigen können. Nun überlege ich mir, ob ich nicht beim Öffnen der Tabelle gleich alle Werte einer Matrix entsprechend einlesen und nachher damit arbeiten kann. Dann beabsichtige ich den ausgewählten Datensatz wiederum in der Userform darzustellen und schlussendlich die Änderungen wieder in das ursprüngliche Array zurückschreiben. Beim Schliessen der Tabelle würde ich dann das Array wieder in die Tabelle zurückschreiben. Ich erhoffe mir dadurch ein massiv schnelleres Arbeitstempo.
Meine Frage an Euch: Mache ich hier einen Denkfehler? Ist das so möglich? Hat einer von Euch allenfalls bereits sowas gemacht und hätte für mich ein Beispiel wie man das machen könnte?
Danke im Voraus für Eure Rückmeldung
Helfi

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Grosse Tabelle in Array und dieses bearbeiten
03.10.2016 15:11:44
Michael
Hi,
das könnte man so machen, aber mir wäre nicht ganz wohl dabei: Excel sichert ja doch turnusmäßig den jeweiligen Stand einer Datei automatisch ab, nicht jedoch den Inhalt des Speichers, sprich: Array.
Das Dictionary würde ich eher dazu verwenden, einen "Datensatz" auszuwählen, und dann Du kannst Du ja die jeweilige Zeile in ein Array stecken und nach Bearbeitung in die Tabelle zurückschreiben.
Das Schreiben EINER Zeile ist sicher nicht zeitkritisch...
Ansonsten gilt grundsätzlich: ohne Deinen Code (bzw. die Datei incl. ein paar anonymisierte Beispieldaten) zu sehen, kann man schlecht Optimierungsvorschläge machen.
Schöne Grüße,
Michael
Anzeige
AW: Grosse Tabelle in Array und dieses bearbeiten
03.10.2016 15:26:52
Helfi
Hallo Michael,
danke für Deine Rückmeldung. Das habe ich gar nicht bedacht, scheint effektiv nicht die beste Idee zu sein.
Tja, betreffend Code hast Du natürlich recht, da bin ich aber noch nirgends. Ich wollte ja zunächst von den Profis wissen, ob die Idee überhaupt Sinn macht, bevor ich da Amateurhaft was zusammenbaue. Und wer weiss, ev. wäre ja meine Idee ein häufiger Anwendungsbereich, dann hätte mir ev. auch jemand mit einem Beispiel aushelfen können.
Aber Deine Antwort gibt mir auch wieder Recht betreffend "zunächst fragen ohne Code": So weiss ich wenigstens, dass ich meine Zeit nicht damit verschwenden sollte;-)
Schöne Grüsse,
Helfi
Anzeige
AW: Grosse Tabelle in Array und dieses bearbeiten
03.10.2016 15:48:40
Michael
Hi Helfi,
aber Du HAST doch schon Code!
Lad den halt einfach mal hoch, dann sehen wir, was daran zeitkritisch sein könnte.
Ob es um 200 oder 10000 Zeilen geht, sollte beim Einlesen EINER Zeile in die UF nämlich egal sein: da liegt irgendwo was im Argen.
Schöne Grüße,
Michael
AW: Grosse Tabelle in Array und dieses bearbeiten
03.10.2016 16:15:36
Helfi
...ehrliche Antwort? Das ist mir zu peinlich:-(
Ist organisch gewachsen, inzwischen weiss ich auch einiges mehr über VBA und würde die meisten Fehler inzwischen nicht mehr machen. Wenn Du Dir das ansiehst, dann wirst Du entweder weinen oder lachen. Ist inzwischen auch so komplex (und leider auch ungenügend dokumentiert), dass nicht mal ich weiss, welchen Teil Du da anschauen müsstest. Und Du wärst eine Woche nur dran, mir die Anfänger-Fehler aufzuzeigen;-)
Genau deshalb will ich nochmals "from scratch" anfangen und die Fehler, die ich bisher während meiner Lernzeit "verbrochen" habe, komplett ausmerzen.
Aber ich habe selber die folgenden Fehlerquellen für die langsame Ausführung ausgemacht:
- bisher erfolgt die Ausgabe in einer Excel-Tabelle anstelle einer Userform, dabei wird zunächst eine Zeile temporär kopiert, die Werte in die Ausgabe-Tabelle mittels sVerweis "eingepflegt", dann die Formeln "rausgebügelt" und schlussendlich das korrekte Format wiederhergestellt. Alleine diese Erklärung wird Dir zeigen, weshalb mir das peinlich ist, das zu zeigen...
- Aktivitäten sind separat in einer 2. Tabelle gespeichert und werden beim Aufruf über den Primärschlüssel des Kunden auch ausgelesen
- Die Aktivitäten werden in der Ausgabe-Tabelle umgebrochen und die Zeilenhöhe angepasst (Lösung aus diesem Forum), das funktioniert zwar gut, ist aber extrem langsam.
Ich weiss Dein Angebot aber zu schätzen, und ich werde bei Problemen mit der neuen Version mit sauber dokumentiertem Code wieder nach Eurer Meinung fragen.
Lg
Helfi
Anzeige
AW: Grosse Tabelle in Array und dieses bearbeiten
03.10.2016 18:03:47
Michael
Hi,
das kann ich durchaus nachvollziehen ("ich war jung und brauchte das Geld"), quatsch, nee, die eine oder andere Sache ist evtl. mit nur wenigen Zeilen erledigt, aber wenn ich gar nix "Handfestes" habe, kann ich gar nicht erst was formulieren...
Ganz grundsätzlich finde ich ein Tabellenblatt für die Bearbeitung von 200 Feldern nicht verkehrt; vielleicht ließe sich hier mit wenig Aufwand eine Lösung finden, nicht den Text "am Ort" umzubrechen, sondern hier nur einen Hyperlink einzufügen, mit dem man "direkt" auf die 2., Text-Tabelle springt und dort die Eingaben vornimmt. Man müßte halt was sehen...
Oder so: den jeweiligen Text "vorübergehend" zur Bearbeitung in eine TextBox steckt und die dann gleich wieder wegschreibt.
Schau mal: https://www.herber.de/bbs/user/108568.xlsm
Na dann, frohes Basteln & Grüße,
Michael
Anzeige
AW: Grosse Tabelle in Array und dieses bearbeiten
04.10.2016 08:57:36
Helfi
Hallo Michael,
nochmals danke, auch für Dein Beispiel. Das stimmt, das wäre eine Möglichkeit. Wenn ich es aber schon komplett neu mache, dann tendiere ich mehr dazu, das ganze in eine Listbox in der Userform zu schreiben. Da habe ich zwar auch keinen Zeilenumbruch, ich würde es aber quasi analog zu Deinem Beispiel mit einer separaten Userform zur "Detailbearbeitung" lösen.
Du hast mir viel Stoff zum nachdenken gegeben, vielen Dank nochmals
Lg
Marc
ok, gerne - & gutes Gelingen.
04.10.2016 16:59:44
Michael
Hi Marc,
und danke für die Rückmeldung.
Happy exceling,
Michael

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige