Stürzt mein Projekt bei großen Datenmengen ab?
#1
Hallo,

ich habe versucht mir ein Kalkulationsprogramm zu schreiben, allerdings musste ich vba-code verwenden (was ich bis vor 5 Tagen noch garnicht konnte).
Jetzt wo ich fast fertig bin stelle ich mir die Frage ob mein Projekt bei großen Datenmengen abstürzt!? Wäre echt mieß wenn ich jetzt ca 1500 Zutaten und 500 Rezepte einpflege und das Projekt dann entweder sehr lange Ladezeiten hat oder sogar abschmiert!

Es wäre sehr nett wenn das ein Excelkundiger mal überprüfen könnte, bevor ich mir die ganze Arbeit umsonst mache!

Zum Pojekt:

Es gibt 4 Reiter "Zutaten" "Rezepte" "Kalkulation" und "Tabelle4"

Zutaten: Hier werden die eingegeben Zutaten mittels "Button Übernehmen" in Tabelle4 "Zutaten" geschrieben! Sinn: Verhindern von Leerzeilen in der      Dropdownliste!  Makro: Modul1->Sub Liste_Zutaten

Rezepte: Hier werden Rezepte zusammen gestellt und mittels "Button Übernehmen" in Tabelle4 "Rezepte" geschrieben! Sinn: Siehe "Zutaten"
Makro_ Modul1->Sub Liste_Rezepte

Kalkulation: Hier kann man per Dropdown ein Rezept (oder die Zutaten direkt) auswählen und die Zutaten, Preise ect werden automatisch übernommen!
Makro: in Tabelle3 "Rezepte" von Anfang1 bis ende1

Den Rest zur Eklärung des Projekts erspare ich mir, denn es geht um die 3 oben genannten Funktionen!

Was ich nicht hinbekommen habe: (Muss auch nicht unbedingt sein, bin auch so zufrieden! Wäre eher ein: nice to have)

- In den Dropdownmenüs die Tabellüberschriften der Zutaten in fetter Schrift darstellen

- Die suchen Funktion konnte ich nur einmal benutzen! bsp: In "Zutaten" kann man oben suchen, diese funktion wollte ich auch in "Kalkulation" und "Tabelle4" benutzen. Als auch die Suche nach Rezepten konnte ich nur in "Rezepte" anwenden, jedoch nicht zusätzlich in "Tabelle4".


Ich würde mich sehr freuen wenn sich das mal einen ansehen könnte und mir eine qulifizierte Aussage geben könnte ob das so funktioniert, oder wie oben beschrieben lange Ladenzeiten bekommt oder gar abstürzt!

Wenn es so funktioniert wäre das top, ansonsten reichen mir ein paar Tips zur Verbesserung! Coden würde ich dann zuerstmal gerne selber versuchen! Manchmal reicht es ja aus wenn einem andere Lösungswege gezeigt werden! Mir ist mangels VBA Kenntnis nichts besseres eingefallen! (Wie gesagt VBA vor 5 Tagen mit angefangen, zum Glück gibts Youtube und tolle Foren wie dieses hier!)

Vielen Dank im vorraus an denjenigen, der sich der Sache annehmen möchte!


Angehängte Dateien
.xlsm   eigene kalkulation_final.xlsm (Größe: 580,36 KB / Downloads: 12)
Top
#2
Hallöchen,

also, ich denke, an den Datenmengen soll es nicht scheitern. Auch wenn für solche Aufgaben sicher eine Datenbank besser wäre, kann das auch mit Excel was werden.
Gut ist schon mal, dass Du auf Formatierungen weitgehend verzichtet hast. Durch die Nutzung der Listen / "intelligenten Tabellen" hast Du trotzdem eine anschaulichere Gestaltung.
Ob die Formeln Ladeprobleme verursachen werden, das kann man mit letzter Gewissheit erst sagen, wenn es so weit ist. Allgemein kennt man ja, dass man z.B. Arrayformeln in größeren Datenbeständen vermeiden sollte. Da könnte man aber mit VBA auch was dagegen tun, und sei es nur, dass man Formeln temporär einsetzt und nach einer Berechnung durch die Werte ersetzt.

Zitat:In den Dropdownmenüs die Tabellüberschriften der Zutaten in fetter Schrift darstellen
Ist nun mal so Sad

Zitat:Die suchen Funktion konnte ich nur einmal benutzen!
Wieso bzw. wie meinst Du das?

sowas
Zitat: If Sheets("Zutaten").Cells(i, 1).Value = "" Then
ElseIf Sheets("Zutaten").Cells(i, 1).Value <> "" Then
kannst Du abkürzen zu
Zitat:If Sheets("Zutaten").Cells(i, 1).Value <> "" Then

Da Du dabei 10.000 Zellen durchgehst - For i = 2 To 10000 - dauert das entsprechend. Hier gibt es auch verschiedene Ansätze wie Übernahme der Zellberieche in ein Array und / oder Verlassen der Schleife, wenn nix mehr zu verarbeiten ist.

So, ich muss jetzt erst mal Streusel für'n Heidelbeerkuchen kneten Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
Sad 
Hi,

vielen Dank für deine Einschätzung und Tipps. Ich habe tatsächlich bei "Sub Liste_Zutaten" und "Sub Liste_Rezepte" den frühzeitigen Ausstieg aus der Schleife vergessen, bei den anderen Schleifen hab ich es drin! [img]
Dateiupload bitte im Forum! So geht es: Klick mich!
] (wird nach meinem Urlaub direkt eingepflegt)

Nach deinem Hinweis sehe ich es auch, die Zeile:  - If Sheets("Zutaten").Cells(i, 1).Value = "" Then  ist in der Tat komplett unnötig!


Zitat:
Zitat: schrieb:Die suchen Funktion konnte ich nur einmal benutzen!
Wieso bzw. wie meinst Du das?

Die Zellen in "Tabelle4 "Spalte "B" beinhalten ja folgenden Code:

=WENNFEHLER(INDEX([Zutaten];AGGREGAT(15;6;(ZEILE([Zutaten])-1)/(--(SUCHEN(Rezepte!$C$2;[Zutaten])>0));ZEILE()-1);1);"")

Hier ist ja Zelle c2 in "Rezepte" als Suchfeld deklariert und nach gefühlten 100 Versuchen, da eine oder-Verbindung mit einzubringen, habe ich es gelassen! In Kalkulation!$B$1 sollte auch gesucht werden können!
Hatte es so ungefähr versucht:

=WENNFEHLER(INDEX([Zutaten];AGGREGAT(15;6;(ZEILE([Zutaten])-1)/(--(SUCHEN(oder((Rezepte!$C$2;[Zutaten]);(Kalkulation!$B$1;[Zutaten])>0));ZEILE()-1);1);"")

oder so:

=WENNFEHLER(INDEX([Zutaten];AGGREGAT(15;6;(ZEILE([Zutaten])-1)/(--oder(SUCHEN(Rezepte!$C$2;[Zutaten]);(SUCHEN(Kalkulation!$B$1;[Zutaten])))>0));ZEILE()-1);1);"")

Ist immer ein Fehler drin! [img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]

*Edit: Wenn ich mit meiner Annahme richtig liege kann das mit einer oder-Verknüpfung auch garnicht funktionieren, da "Oder" nur boolsche-Werte kann!? Ich habe es auch ohne Oder-Verknüfung versucht, leider alles ohne Erfolg!

Bin auch heute auf die Idee gekommen mir ein Makro zu schreiben, was mir "Zutaten" und "Rezepte" vollschreibt, dann kann ich ja testen ob es funktioniert! Das ich da nicht früher drauf gekommen bin! [img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]

So werde jetzt weiter den Koffer packen und dann nächste Woche nehme ich die Veränderungen an den Schleifen vor!

Vielen Dank und einen schönen Abend noch!

Ps.: Ich hoffe die Kneterei hat sich gelohnt? Guten Hunger! Tongue
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste