Liebe Community
Ich möchte gerne ein VBA schreiben, welches Tabellen der folgenden Art, bearbeitet:
Zur Erklärung:
Die ID-Nummern sind eindeutige Identifikationsnummern, die Geräten zugeordnet werden. Das Inbetriebnahme-Datum stellt das Datum dar, an dem ein Gerät in Betrieb genommen wurde, und das Außerbetriebnahme-Datum, das, an dem es aus dem Umlauf gebracht wurde. Ich möchte nun eine Auflistung aller Geräte haben, welche zwischen 2005 und 2015 im Umlauf waren und das auf die Jahre hin aufgelistet. Somit, die Ergebnis-Tabelle, sollte in etwa so aussehen...:
Ich weiß leider nicht so recht wie ich das umsetzen könnte... Ich habe mal eine Grundidee gehabt... Dazu wäre mein Code der folgende...:
Ich weiß allerdings nicht wie ich generell nur, die als Ergebnis, gefilterten Einträge, mittels automatischer Start/End-Position, ermitteln kann. - Also, wenn man eine gefilterte Tabelle hat, dass man dann nur diese gefilterten Einträge markieren, bzw. , kopieren kann....
Und zum Zweiten müsste ich dann auch noch das so kopieren, dass Excel, in der darauffolgenden Zeile, dort fortsetzt, wo es letztens war, beim Kopieren und Einfügen in der Spalte K.
Kann mir jemand dabei helfen?
Vielen Dank!
VG Tim
Ich möchte gerne ein VBA schreiben, welches Tabellen der folgenden Art, bearbeitet:
ID-Nummer: | In-Betriebnahme - Datum: | Außer-Betriebnahme - Datum: |
1007631 | 01.01.1994 | 22.09.2006 |
1007632 | 01.01.1994 | 22.09.2006 |
1007633 | 01.01.1994 | 18.04.2012 |
1014628 | 29.11.1995 | 02.10.2009 |
1014766 | 29.11.1995 | 02.10.2009 |
1015254 | 29.11.1995 | 02.10.2009 |
1015416 | 04.06.1997 | 13.06.2007 |
1015417 | 04.06.1997 | 31.01.2008 |
1015418 | 04.06.1997 | 04.03.2010 |
Zur Erklärung:
Die ID-Nummern sind eindeutige Identifikationsnummern, die Geräten zugeordnet werden. Das Inbetriebnahme-Datum stellt das Datum dar, an dem ein Gerät in Betrieb genommen wurde, und das Außerbetriebnahme-Datum, das, an dem es aus dem Umlauf gebracht wurde. Ich möchte nun eine Auflistung aller Geräte haben, welche zwischen 2005 und 2015 im Umlauf waren und das auf die Jahre hin aufgelistet. Somit, die Ergebnis-Tabelle, sollte in etwa so aussehen...:
2005: | 2006: | 2007: |
1007631 | 1007633 | 1007633 |
1007632 | 1014628 | 1014628 |
1007633 | 1014766 | 1014766 |
1014628 | 1015254 | 1015254 |
1014766 | 1015416 | 1015417 |
1015254 | 1015417 | 1015418 |
1015416 | 1015418 | |
1015417 | ||
1015418 |
Ich weiß leider nicht so recht wie ich das umsetzen könnte... Ich habe mal eine Grundidee gehabt... Dazu wäre mein Code der folgende...:
Visual Basic-Quellcode
- Dim a As Long
- a = Tabelle1.Cells(Rows.Count, 1).End(xlUp).Row
- ' Geräte die vor 2005 in Betrieb genommen wurden und erst nach 2005 deaktiviert wurden:
- Tabelle1.Range(Cells(2, 1), Cells(a, 5)).AutoFilter Field:=2, Criteria1:= _
- "<01.01.2005", Operator:=xlAnd
- Tabelle1.Range(Cells(2, 1), Cells(a, 5)).AutoFilter Field:=3, Criteria1:= _
- ">31.12.2005", Operator:=xlAnd
- 'erneuter Rowcount von ID-Spalte um gefilterte Ergebnisse auswählen zu können...??
- 'kopiere/füge ein... ersten bis letzten Eintrag der gefilterten Ergebnisse in Spalte K....??
- ' Geräte die im Jahr 2005 in Betrieb genommen wurden und aber vor Ende 2005 wieder deaktiviert wurden:
- ' Schriftfarbe rot:
- Tabelle1.Range(Cells(2, 1), Cells(a, 5)).AutoFilter Field:=2, Criteria1:= _
- ">=01.01.2005", Operator:=xlAnd
- Tabelle1.Range(Cells(2, 1), Cells(a, 5)).AutoFilter Field:=3, Criteria1:= _
- "<=31.12.2005", Operator:=xlAnd
- ' wieder erneuter Rowcount den gefilterten Ergebnissen...
- ' kopiere wieder die gefilterten Einträge, aber starte mit dem Einfügen in der ersten freien Zelle, von Spalte K...??
- ' usw...
Ich weiß allerdings nicht wie ich generell nur, die als Ergebnis, gefilterten Einträge, mittels automatischer Start/End-Position, ermitteln kann. - Also, wenn man eine gefilterte Tabelle hat, dass man dann nur diese gefilterten Einträge markieren, bzw. , kopieren kann....
Und zum Zweiten müsste ich dann auch noch das so kopieren, dass Excel, in der darauffolgenden Zeile, dort fortsetzt, wo es letztens war, beim Kopieren und Einfügen in der Spalte K.
Kann mir jemand dabei helfen?
Vielen Dank!
VG Tim