Live-Forum - Die aktuellen Beiträge
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

Mehrdimensionale Arrays zusammenführen mit Summe

Mehrdimensionale Arrays zusammenführen mit Summe
23.09.2016 13:43:23
Dennis
Hallo,
ich suche eine Möglichkeit mehrere Arrays mit einander zu verrechnen, das Problem dabei ist aber, dass ich dies abhängig von einer Variablen im Array machen will. Geht sowas überhaupt oder wie kann ich das am besten realisieren?
Ich schreibe mehrere Arrays die im Endeffekt alle aus einer Grundtabelle bedient werden aber unterschiedlich gefiltert sind. Array 1 enthält alle Daten, Array 2 nur Daten die einem Kunden zuzuordnen sind, Array 3 Daten aus einer Suchfunktion und Array 4 die Daten die zu einer Abteilung gehören. Jedes Array wird in eine separate Userform geschrieben, hier kann man dann Stückzahlen eingeben zu den einzelnen Datensätzen. Da diese aber sowohl z.B. in dem Kundenarray wie auch in dem Gesamtarray stehen müssen diese Daten summiert werden. Ich habe aber keine Ahnung ob und wie das geht. ich hab es mit Konsolidieren versucht aber das scheint mit Arrays nicht zu gehen.
Habe die Datei einmal hochgeladen vielleicht hilft das:
https://www.herber.de/bbs/user/108372.xlsm
Danke schon mal für die Hilfe.
Gruß
Dennis

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

Betreff
Datum
Anwender
Anzeige
hilft wenig
26.09.2016 16:00:41
Michael
Hi Dennis,
es ist etwas unklar, was Deine Datei mit Deiner Fragestellung zu tun hat.
Vielleicht solltest Du das etwas konkretisieren, in etwa so:
ich wiederhole die Arbeitsschritte
- ich rufe die UF sowieso auf,
- von dort aus die UF sowieso,
- dann gebe ich im Feld x einen Wert y ein
ein paar Mal,
und dann soll im Tabellenblatt z in den Zellen xyz diesunddas stehen.
Schöne Grüße,
Michael
AW: hilft wenig
27.09.2016 08:47:01
Dennis
Hallo Michael,
ich hoffe ich habe das jetzt richtig verstanden:
- ich gebe im ersten UF per Checkbox an, dass eine Abteilung eingefügt werden soll
- Beim aktivieren der CB erscheinen die Komboboxen wo man die Abteilung auswählen kann
- Man springt in die 2 UB indem man Auf den Button "Inv.-Eingabe..." klickt
- beim init. der UF2 wird der Inhalt der Tabelle "Grunddaten" in ein Array geschrieben
- gleichzeitig werden die Grunddaten über Autofilter und Kopie in die "Hilfstabelle" in ein weiteres Array geschrieben
- Per Auswahl der Abteilung wird auch wieder mit Autofilter etc. ein drittes Array mit gefilterten Daten beschrieben.
- jedes Array wir in einer Multipage in einer Separaten Listbox dargestellt.
- In der Listbox lässt sich ein entsprechender Artikel auswählen
- Über die TextBoxen kann ein wert zum gewählten LB-Eintrag eingegeben werden.
- mit dem Button "Speichern" werden die Daten in der UF in eine ausgeblendete Zelle geschrieben.
- Da aber die Daten doppelt vorhanden sein können (Grunddaten und Selektion) soll das Programm wenn
z.B. Artikel A in der einen Multipage einen wert erhält diesen auch in Multipage 2 haben, dies soll sein damit keine Doppeleingaben passieren.
Die müsste dann für alle Multipage-Seiten zutreffen.
Hoffe ich konnte das nun etwas besser erklären.
Gruß
Dennis
Anzeige
AW: hilft wenig
27.09.2016 16:13:14
Michael
Hi Dennis,
mit den Infos habe ich jetzt einigermaßen durchschaut, was passiert bzw. passieren soll.
Eine Lösung kann ich Dir nicht bieten, dafür ist der Code zu "verteilt" und kompliziert: da sitze ich "morgen noch da", das geht nicht im Rahmen des Forums.
Anfassen mag ich es nicht zuletzt deshalb nicht, weil die Funktionsweise relativ schwer nachzuvollziehen ist. Das liegt u.a. an den Namen:
Userbild
Das "Eigenschaften"-Fenster links unten kannst Du, sollte es bei Dir nicht vorhanden sein, über "Ansicht" einblenden: wenn JEDER Button "CommandButton"1 bis 55 heißt, und das in jeder UF, also mehrfach, wirste irre.
Es würde sich z.B. anbieten, diesem CommandButton5 den Namen UF1_InvEingabe zu nennen, dann weiß man a), auf welcher UF er ist und b) wofür er gut ist. Die Sub heißt dann analog xxx_Click.
Weiterhin ist nicht nachvollziehbar, weshalb Du die Spalten L-O löschst, nur weil keine Abteilung ausgewählt wurde: damit fliegen alle bereits (in einer vorhergehenden Sitzung) gemachten Angaben raus!
Deine Filterfunktion (die fälschlicherweise unter "Suchen" firmiert) filter IMMER nach *[Begriff]*, siehe Sub Daten_filtern:
ActiveSheet.Range("$A$1:$Q" & zeile_zaehlen).AutoFilter Field:=Filterzeile, Criteria1:="=*" & Filtergrund & "*", Operator:=xlOr

so daß die Aufforderung in der uform_invsuche, *e anzufügen, die Sache doppelmoppelt.
So, der Knackpunkt ist ja was ganz anderes: ich würde mit nur EINER Page auf der Inventureingabe arbeiten: damit vermeidest Du nämlich genau die Probleme, die Du hast. D.h., es wären hier einfach noch Buttons zum Filtern/"Suchen" anzubringen.
Für meinen Geschmack sollten die 4 Werte links unten nicht nur geschrieben werden, wenn "Speichern" geklickt wird, sondern (vielleicht mit einer Sicherheitsabfrage) auch dann, wenn der User ein anderes Teil in der Listbox auswählt.
Ich nehme an, die Spalte A in der "Grundtabelle" soll so was wie ein "eindeutiger Schlüssel" sein, damit der jeweils richtige Datensatz zurückgeschrieben wird. Hier wäre auch eine lfd. Nummerierung denkbar...
Jedenfalls gehören sich Änderungen gleich in der Grundtabelle, und zwar (am besten nur) in der richtigen Zeile, abgespeichert.
Falls es für Dich einfacher zu programmieren sein sollte, kannst Du dann ja wieder alle Daten in ein Array stecken: die Betonung liegt auf "ein", wenn Du nur eine Page hast.
Alles Weitere überschreitet mein Zeitbudget...
Schöne Grüße,
Michael
Anzeige
AW: aw: hilft wenig
28.09.2016 10:55:05
Dennis
Hallo Michael,
danke fürs "zerpflücken" meines Codes :)
Leider habe ich keine Ahnung wie ich die Daten in der Listbox filtern soll ohne das er beim "zurückschreiben" der Daten die Zuordnung zum Schlüssel verliert. Das Problem ist, das beim speichern die Daten in der Grunddaten-Tabelle einfach eingefügt werden es wird also nicht nach dem Schlüssel gesucht und dort eingefügt sondern es wird einfach auf A2 entsprechend alles eingefügt.
Kann man das irgendwie umgehen`?
Gruß
Dennis
mir zu arbeitsaufwendig für Forum
28.09.2016 14:20:02
Michael
Hi Dennis,
ich kann es mir gern ansehen, bitte aber um Verständnis dafür, daß ich den Aufwand nicht kostenlos betreiben mag.
Ich stelle den Thread mal auf offen, falls sich jemand erbarmt.
Ansonsten sieh Dich bitte nach professioneller Hilfe um: z.B. Hr. Herber oder in den "Profilen" oder Du schickst mir ne mail (bin der 2. Michael in den Profilen) oder Du suchst Dir jemand vor Ort.
Letzteres mag in dem Fall am Geschicktesten sein: die Sache riecht mir danach, als könnten "Nebenbedingungen" vorhanden sein, die man erst Mal konzeptionell erfaßt haben sollte, bevor man das eigentliche Programmieren anfängt; aus der Ferne kann so ein Detail zu Beginn leicht übersehen werden, so daß nachträgliche Korrekturen relativ aufwendig sein könnten.
Schöne Grüße,
Michael
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige