01.12.2016, 14:46 (Dieser Beitrag wurde zuletzt bearbeitet: 01.12.2016, 14:48 von Salo.)
Hallo liebe Forenmitglieder, ich habe ein Excel-Defizit und hoffe auf eine Hilfestellung. Ausgangssituation: Ich plane (zum zweiten Mal) für das Jahr 2017 eine Preis-Beobachtung des Gebrauchtfahrzeugmarkts für Wohnmobile. Dieses Mal möchte ich aber die Erfassung der Daten noch weiter vereinfachen. Im Tabellenblatt "Beobachtung" werden die Grobdaten der Fahrzeuge erfasst. Die Preise sollen in einem weiteren Tabellenblatt (Womo<35TEUR und Womo>35TEUR) nach Baujahr geordnet (Zeile) fortlaufend automatisch übernommen werden. Ich habe schon einige Versuche angestellt und die Formeln sind noch drin. Problem ist halt, dass ich nicht weiß wann welches Baujahr mit welchem Preis in der Beobachtungsliste eingetragen wird und auch nicht wieviele Angebote es im Beobachtungszeitraum geben wird. Daher ist es notwendig, in den Tabellenblättern Womo<35TEUR und Womo>35TEUR die Zeilen nach rechts nahezu unbegrenzt zu füllen, wenn ein Fahrzeug dem Kriterium Baujahr entspricht. In meiner letzten Beobachtung habe ich noch alles per Hand übertragen, was aber sehr aufwändig und begrenzt war. Siehe Screenshot Ich hoffe, ihr könnt mit meiner Beschreibung etwas anfangen und freue mich auf eure Tipps! LG Salo (Excel 2010)
05.12.2016, 08:32 (Dieser Beitrag wurde zuletzt bearbeitet: 05.12.2016, 08:33 von Salo.)
Hallo André, ne, ne, WENNFEHLER ist für mich nur "Kosmetik" und ich kenne die Funktion. Ich habe die Formeln gelassen, um euch meinen Denkansatz zu zeigen. Es funktioniert eben nicht so, wie ich es gerne hätte.
ich glaube, für eine Formellösung muss ich erst mal pausieren. Ich weiß nun nicht, warum die Daten auf dem Zielblatt genau so angeordnet werden sollen. Wäre denn nicht eventuell eine Pivottabelle eine Variante? Da ist die Anordnung allerdings nicht so ...
Per VBA würde ich einfach filtern, die gefilterten Daten kopieren und transponiert einfügen. Wäre denn VBA eine Variante?
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Hallo André, Die Anordnung auf dem Zielblatt ist nicht bindend. Ich habe mich für waagerecht entschieden, weil es für mich übersichtlicher ist. Pivot-Tabelle fällt aus, da die Daten aus dem Zielblatt für laufende statistische Auswertungen, wie Diagramme, Wertfortschreibungen oder Vergleiche etc. dienen sollen. Aber VBA wäre eine Option. Ich habe mich da auch schon reingelesen... aber ehrlich gesagt habe ich da keinen Plan. :(
Wenn du mir da einen Code schreiben könntest, wäre ich echt happy!
hier wäre mal ein erster Ansatz für die Zahlen <= 35000. Den Code fügst Du in ein Modul ein und startest ihn erst mal automatisch. Der hat programmtechnisch noch ein paar Reserven, dazu morgen mehr. Neben dem Stil geht es z.B. auch um die flexible Gestaltung von Anfangs- und Endjahr usw. Für >35000 muss nur die Bedingung und der Blattname geändert werden. Dazu könnte man noch eine zweite Schleife um die jetzige bauen .... Schaue Dir mal an, ob das in die richtige Richtung geht, morgen Abend geht's dann weiter.
Code:
Sub Makro1() 'Variablendeklaration Dim iCnt% 'Blatt Beobachtung auswaehlen Sheets("Beobachtung").Select 'Zeile 1 auswaehlen Rows(1).Select 'erst mal alle Daten anzeigen If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData 'Autofilter aktivieren / deaktivieren Selection.AutoFilter 'Schleife ueber alle Jahre ab 2016 absteigend For iCnt = 2016 To 2000 Step -1 'Kriterium Jahr in Spalte C setzen ActiveSheet.Range("$A$1:$J$300").AutoFilter Field:=3, Criteria1:=iCnt 'Kriterium <= 35000 in Spalte D setzen ActiveSheet.Range("$A$1:$J$300").AutoFilter Field:=4, Criteria1:="<=35000" _ , Operator:=xlAnd 'Bereich D2:D300 auswaehlen, ausgewaehlt werden nur sichtbare Zellen If Range("D1:D300").SpecialCells(xlCellTypeVisible).Rows.Count > 1 Then Range("D2:D300").SpecialCells(xlCellTypeVisible).Select 'Auswahl kopieren Selection.Copy 'Blatt Womo<35TEUR auswaehlen Sheets("Womo<35TEUR").Select 'Jahreszelle auswaehlen. Startzeile bei erstem Schleifendurchlauf 2018-2016 = 2 'dann 2018 - 2015 = 3 usw. Range("C" & 2018 - iCnt).Select 'Daten einfuegen Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True 'Blatt Beobachtung auswaehlen Sheets("Beobachtung").Select End If 'Ende Schleife ueber alle Jahre ab 2016 absteigend Next If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData 'Autofilter deaktivieren Selection.AutoFilter End If End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Hallo André, vielen, vielen Dank für deine Bemühungen. Das Makro funktioniert grundsätzlich. Aber leider nur für´s Baujahr 2016. :( Die anderen Baujahre werden ignoriert. Du hast im Code was mit "2018" zu stehen, das kann ich nicht nachvollziehen. Liegt da vielleicht ein Fehler?
07.12.2016, 17:47 (Dieser Beitrag wurde zuletzt bearbeitet: 07.12.2016, 17:47 von schauan.)
Hallo Salo,
also, in dem Beispiel von Dir klappt es ordentlich. Ich habe allerdings vorher von Hand mal alles raus gelöscht, was da schon ab Spalte C nach rechts drin stand. Das Ergebnis sah dann so aus: Tabellenblattname: Womo<35TEUR
Hallo Edgar und André, vielen Dank für die Vorschläge. Jetzt habe ich ein wenig die Übersicht verloren, m.a.W. ich stehe momentan auf dem Schlauch.
@Edgar: Die Formel habe ich übernommen. Allerdings sind die Werte in den Zeilen für die Baujahre immer gleich (Tab "Womo<35TEUR) Welcher Teil der Formel muss in den anderen Zellen (C1, D1, E1, ff) geändert werden, damit es so funktioniert, wie ihr es getestet habt. Denn scheinbar hat auch André das gleiche (richtige) Ergebnis.
@André: Die ZÄHLENWENN Formel steht nicht zur Diskussion, denn die funktionierte ja bereits. ;) oder hast du dich da vertan?