Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1844to1848
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

Datenausgabe per VBA

Datenausgabe per VBA
10.09.2021 14:24:49
Georg
Hallo Community,
ich habe leider keine VBA Erfahrung. Vielleicht kann mir hier jemand helfen.
Ich habe eine Datei hochgeladen die das Problem schildert.
Ich benötige den Wert eines bestimmten Objektes für den zuvor ausgewählten Monat.
https://www.herber.de/bbs/user/148002.xlsx
Wäre super, wenn mir jemand dabei helfen würde.
Liebe Grüße
Georg

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenausgabe per VBA
10.09.2021 14:52:26
Oberschlumpf
Hi Georg,
hier, probier mal (VBA wird nicht benötigt; Formeln sind in Spalte I (wie Ida))
https://www.herber.de/bbs/user/148006.xlsx
Hilfts?
Ciao
Thorsten
AW: Datenausgabe per VBA
10.09.2021 15:02:51
viktor111111
Hallo Thorsten,
vielen Dank!
Aber leider möchte ich, dass das automatisch passiert.
Die Schritte die zu gehen sind:
1. Suche in der Spalte A nach dem Objekt
2. gehe zellen hoch bis [ausgewählten Monat]
3. gehe zwei zellen nach rechts und gebe mir den Inhalt (Zahl) aus
Und das für alle 8 Objekte.
Danke :)
Liebe Grüße
Georg
Anzeige
AW: Datenausgabe per VBA
10.09.2021 15:08:15
Oberschlumpf
hä? victor oder georg?
wenn du in Zelle J3 den Eintrag änderst, dann ändern sich doch die Einträge in Spalte I auch - und zwar automatisch!
verstehe jetzt nicht, wieso meine Datei mit Formeln nicht richtig ist.
Ciao
Thorsten
AW: Datenausgabe per VBA
10.09.2021 15:12:52
Georg
Hallo Thorsten,
nutze den Acc. meines Bruders - ich habe vergessen den Namen zu ändern.
Ja du hast Recht! Es geht darum, dass ich jedes Mal die Formel für alle 8 Objekte einstellen muss. In der Zeit kann ich die Werte ablesen.
Aus diesem Grund habe ich hier gefragt, ob das auch schneller funktioniert per VBA :)
Liebe Grüße
Georg
Anzeige
AW: Datenausgabe per VBA
10.09.2021 15:15:46
Oberschlumpf
Hi Georg,
in Spalte I (Ida) steht doch - angepasst für jeden einzelnen Bereich! - die jeweils richtige Formel.
Da musst du nix mehr einstellen - nur eben den Wert in J3 ändern = Formeln in I errechnen - automatisch! - den jeweils richtigen Wert.
Hast du meine Datei eigtl auch mal ausprobiert?!
Schau dir die Formeln in Spalt I doch auch mal an.
Ciao
Thorsten
AW: Datenausgabe per VBA
10.09.2021 15:21:12
Georg
Hallo Thorsten,
ok, der Fehler liegt bei mir. Es tut mir leid...
Die Info fehlt: nächsten Monat kommt der Sep. dazu. D.h. es handelt sich um eine ExportDatei.
Liebe Grüße
Georg
AW: Datenausgabe per VBA
10.09.2021 22:29:10
Oberschlumpf
Hi Georg,
ok, ok, ok....auch ich hab was falsch gemacht - nämlich meine Formel-Idee nicht 100%ig getestet!
Ich hatte erst jetzt mal nur für Häuser eine Zeile für 09. Sep mit dem Wert 512 in Spalte C hinzugefügt.
Außerdem hab ich deine "versteckte" Spalte N um den Wert 09. Sep erweitert.
Wenn ich jetzt aber in Zelle J3 den neu verfügbaren Eintrag 09. Sep auswähle, erscheint in Zelle I9 (Anzahl Häuser für gewählten Monat) eine NULL, aber nicht 512 !!!
Wieso?
Weil - wie du mich ja schon irgdwie drauf hingewiesen hattest - meine Formel neu hinzugefügte Datenzeilen - nicht - mit berücksichtigt!
Ok, SO kann das wirklich nix werden!
Es gibt bestimmt Möglichkeiten, dass sich Formeln mit anpassen, wenn sich Datenzeilen ändern, z Bsp bei der Verwendung von sogenannten intelligenten Tabellen, aber wie genau das geht, weiß ich auf die Schnelle auch nicht.
Ok, aber ich hab nun verstanden, wieso du so sehr auf ne VBA-Idee hoffst :-)
Und...ich hab ne VBA-Lösung für dich :-)
https://www.herber.de/bbs/user/148012.xlsm
Wie du siehst, steht nun erstmal in Spalte I UND J eine 0.....weil die Zelle J3 auch noch leer ist.
(ich hab die Formeln in I erst mal gelassen, damit du gleich den Unterschied zur mit VBA gefüllten Spalte J erkennst)
Also...
...wähl erst mal in J3 den Eintrag 01. Jan aus
Du siehst, sowohl in Spalte I (Formeln) als auch in Spalte J (VBA) stehen die gleichen Werte
...wähl jetzt mal in J3 den Eintrag 09. Sep aus
In Spalte J (Formeln) stehen nur 0-Werte! Aber in Spalte J steht für Anzahl Häuser = 512....die anderen Werte in J auch 0, weil es für 09. Sep für die anderen Objekte keine Einträge gibt.
Jetzt solltest du aber zufrieden sein, oder?
Ach ja, wenn die VBA-Werte nur in I, aber nicht mehr in J gezeigt werden sollen, dann...

1. lösch die Werte in J einfach
2. änder diese Zeile...
Range("J9:J16").Value = 0
...um in...
Range("I9:I16").Value = 0
und änder diese Zeile...
Range("J" & lloObj).Value = Range("C" & lloRow).Value
...um in...
Range("I" & lloObj).Value = Range("C" & lloRow).Value
Hilfts?
Ciao
Thorsten
Anzeige
AW: Datenausgabe per VBA
10.09.2021 15:01:05
Daniel
brauchst du auch kein VBA für.
geht auch mit Formel.
da deine Tabelle für Auswertungen nicht besonderst gut geeignet ist, wird die Formel etwas komplizierter:
diese Formel in H3 und dann nach unten ziehen
Diese Formel setzt aber voraus, dass die Monatslisten keine Lücken haben, dh es ist immer jeder Monat vom ersten bist zum letzten gelisteten in einer Gruppe vorhanden und für alle Gruppen hast du die gleiche Anzahl Monate

=BEREICH.VERSCHIEBEN(INDEX(A:A;VERGLEICH(G9;A:A;0));-MONAT(INDEX(A:A;VERGLEICH(G9;A:A;0)-1)) +MONAT($J$3);2) 
besser wäre eine andere Anordnung
das Kriterium (Häuser, Kinder, usw) gehört in eine eigene Spalte vor die Monate (muss da natürlich immer wiederholt werden)
aber das würde dir erlauben, die Liste beliebig zu filtern und auch zumzusortieren, so dass solche Auswertungen gar nicht berechnet werden müssen, sondern einfach durch Sortierung oder Filter erzeugt werden können.
auch wenn man es mit Formel machen wollte, diese würden dann einfacher (SummenProdukt, SummeWenns)
Gruß Daniel
Anzeige
AW: Datenausgabe per VBA
10.09.2021 15:06:48
Georg
Hallo Daniel,
ich habe das Problem in der Antwort von Thorsten geschildert.
Hier eine weitere Info: Es handelt sich um ein Export. Das heißt: nächsten Monat kommt der Sep. dazu.
Der Aufbau bleibt identisch.
Danke :)
Liebe Grüße
Georg
AW: Datenausgabe per VBA
10.09.2021 15:41:27
Daniel
Hi
stört nicht, die Formel ist in Bezug auf die angegebenen Monate flexibel, da geht von 1-12 alles
es müssen nur in allen Blöcken die selben Monate vorhanden sein und die Monate müssen von 1-x (maximal 12) lückenlos gelistet sein.
wenn das gegeben ist, passt sich meine Formel automatisch an die Anzahl der Monate an.
Wenn du einen Standardisierten Export hast, dann ist das ja gegeben.
Das prinzip meiner Formel ist folgendes:
zuerst wird in Spalte A die Zelle mit der Kategorie gesucht (Haus, Kinder usw). dann wird in derZelle direkt darüber schaut, welcher Monat dadrin steht und um die entsprechende Anzahl nach oben gesprungen, somit sollte man in der Zelle direkt über der Gruppe sein. und von dieser Zelle aus gehts dann wieder entsprechen dem gesuchten Monat die entsprechenden Zeilen wieder nach unten zum Wert.
dh meine Formel macht genau das, was du willst.
Die Bedenken, die du bei Thorstens Formel hast, treffen bei meiner Formel nicht zu.
meine Formel kannst du ja auch einfach nach unten ziehen und musst sie nicht für jede Gruppe neu schreiben (so wie Thorsten es gemacht hat)
also schau dir bitte jede Antwort auch an, nicht immer sind die Lösungswege gleich, so dass nicht alle Formeln die gleichen Probleme haben.
Gruß Daniel
Anzeige
AW: Datenausgabe per VBA
10.09.2021 15:26:04
Yal
Hallo Georg,
die erste Schritt in VBA ist immer zu prüfen, ob VBA notwendig ist. Wenn nicht, dann lieber nicht.
In deinem Fall nicht: deine Daten sind nur nicht so aufgestellt, um einfach ausgewertet zu sein.
_ Eliminiere die Zellengruppierung von "Datenbasis" (Zelle A1)
_ in dem neuen A1 schreibt "Datum"
_ in B1 irgendwas (hauptsache nicht leer)
_ in C1 "Wert"
_ in D1 "Sachverhalt"
_ dann füge in D2 (Zellengruppierung auch weg) die Formel =WENN(ISTFEHLER(MONAT(A2));A2;D3)
_ erweitere diese Formel (kleine Quadrat am untere rechte Rand vom Zellenrahmen) bis Zelle D68
_ eventuell neuberechnen (Shift+F9)
_ irgendeine Zelle in dem gesamten Datenbereich markieren
_ im Menü "Einfügen", "Pivottabelle" auswählen. Der Datenbereich "Tabelle1!$A$1:$D$68" wird automatisch erkannt
_ im unteren Teil "Vorhandenes Arbeitsblatt" auswählen, im "Ziel" einklicken und Zelle F22 klicken. Dialog mit Ok verlassen.
_ in dem Pivottabellen-Gestalter rechts, Pivottabelle-Feld "Wert" im unteren Bereich "WERTE" verschieben (drag&drop)
_ auf diese "Anzahl von Wert" klicken und in "Wertfeldeinstellungen...", "Summe" auswählen (oder min, max, Durchschnitt, ...)
_ Feld "Sachverhalt" im Bereich "ZEILEN" verschieben. Jetzt hast Du schon einen Ergebnis.
_ Feld "Datum" im Bereich "FILTER" verschieben
_ Datum im Zelle G20 auswählen.
Fertig.
Keine Formel, kein VBA, kein Stress.
nächste Stufe wäre:
_ alle Werte in Spalte D kopieren (Strg +c) und durch Wert ersetzen (Alt, r, v, w)
_ Block A1:D68 nach Inhalt von Spalte A sortieren
_ ganz unten Zeilen 61:68 (Autos ... Tische) löschen (ganze Zeile!)
_ Pivottabelle aktualisieren: darauf rechtsklicken und "Aktualiseren"
_ Sachverhalt von "Zeilen" entfernen (im rechten Pivottabellen-Feldliste)
_ Datum als "Zeilen" verschieben
_ auf einem Datum gehen (z.B. F23) und mit Rechtsklick "gruppieren" klicken
_ Tage, Monate, Jahre auswählen
_ Dann Tage rausnehmen, Monat in "SPALTEN" verscheiben, Sachverhalt wieder in "ZEILEN" direkt unter "Jahre" verscheiben.
Und jetzt hast Du mehr BI-Wissen (=Business Intelligence) als jeden durchschnittlichen Excel-Anwender.
VG
Yal
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige