VB in WPF vs. Excel VBA

MickH74

Lieutenant
Registriert
Apr. 2009
Beiträge
591
Hallo liebes Forum,

ich arbeite im Moment viel mit Excel und VBA. Mittlerweile ist aus einer reinen Pivottabelle unserer Verkaufszahlen ein richtiges Programm geworden. Mit Eingabemasken, Dashboards und einer umfangreichen Programmlogik hat sich das ganze inzwischen so weit aufgebläht, dass man merkt, dass Excel dafür eigentlich nicht mehr gemacht ist. Vor allem die Wartezeiten während der Datenaufbereitung sind mit 5-10 Sekunden sehr lang.
Bisher habe ich dagegen gesteuert, indem ich den Programmcode verbessert habe und z.B. soweit möglich mit Arrays im Speicher statt mit Tabellenzellen arbeite. Aber ich bin an den Grenzen meinen Programmierkenntnisse angelangt und einige Programmabläufe dauern nun mal seine Zeit.

Nun überlege ich, das ganze mit MS Visual Studio in WPF auf Basis von VB umzusetzen und erhoffe mir davon einen deutlichen Geschwindigkeitsvorteil.

Das wäre dann auch schon meine erste Frage und einer der Gründe für diesen Post:
Kann man erwarten, dass ein Programm in VB deutlich schneller arbeitet als Excel VBA?

Die weiteren Fragen wären:
Wie setzt man das am besten um?
Meine Datenbasis auf der alles aufbaut ist ein Export aus SAP in Form einer Excel-Tabelle. Würde man die als Datei nehmen und mit VB dann darauf zugreifen? Oder würde man die ganze Tabelle beim Programmstart in den Speicher einlesen und von da aus damit arbeiten? Die letzte Methode funktioniert mit Excel VBA nur bedingt, da ein Array und seine Verwandten Dictionary und Collections bei der Datenmanipulation Beschränkungen unterliegen was z.B. das Entfernen, Hinzufügen, Filtern oder Sortieren von Datensätzen angeht.
Oder würde man mit so einer Art Query - also einer Datenbankabfrage - arbeiten in der Art von "Excel-Sheet, gib mir mal alle Verkäufe von 2016 für das Verkaufsgebiet Deutschland des Mitarbeiters Müller"?
Welche Optionen bietet VB, um große Datensätze schnell zu verwalten?

Letzte Frage (zumindest für jetzt mal):
In Excel ist es sehr komfortabel, die Daten ansprechend in einem Dashboard darzustellen. Hauptsächlich arbeite ich da mit Verbund-Diagrammen aus gestapelten Säulen und Linien.
Gibt es diese Optionen auch in VB?

Danke schon mal!!
Mick
 
Wenn du die Bildschirmaktualisierung bei VBA ausschaltest, ist es langsamer die Daten in ein eigenes Array auszulagern...Daten kopieren, mehr verwendeteter Arbeitsspeicher usw. Der Zugriff auf beides erfolgt gleich und ist VBA-typisch sehr langsam.

Wenn du sehr große Datenmengen verarbeitest, ist das Nutzen einer Datenbank sicherlich von Vorteil, da diese genau dafür optimiert ist. Dies ließe sich auch in VBA umsetzen, ginge in VB jedoch schneller.

Allerdings solltest du bedenken:
10s Wartezeit pro Aufbereitung ggü. bspw. 80 Stunden Aufwand für Programmierung --> ca. 29.000 Aufbereitungen
Bei 10 Aufbereitungen pro Tag lohnt sich der Aufwand nach knapp 13 Jahren

Ohne die Komplexität des ganzen zu kennen ist es schwer das einzuschätzen und eine Technologie zu empfehlen. Vielleicht reicht es auch schon das ganze zu Access zu portieren.

Was ich sagen kann ist, dass sich das alleinige Verschieben der Programmlogik in VB sicherlich nicht lohnen wird.

Die Problematik hast du ja schon selbst erkannt...Excel bietet eben viele Methoden, die du möglicherweise alle erst selbst programmieren müsstest.
 
Zuletzt bearbeitet: (rächtschreibz)
Wenn die Daten aus SAP (auch als 'überteuerte deutsche Apotheke' bekannt) kommen, empfiehlt sich eher die Verwendung von Microsoft Access statt Microsoft Excel.
 
Zurück
Oben