Hallo,
ich habe derzeit ein ganz spezielles Excel-Problem:
Ich hab ein Excel-Dokument mit mehreren Blättern. Das erste Blatt enthält viele Zeilen mit mehreren Spalten. Alle anderen Blätter enthalten exakt das selbe, der Unterschied ist nur, dass sich der Inhalt vom ersten Blatt auf alle anderen Blätter aufteilt (je nachdem, welcher Kategorie eine Zeile zugeordnet ist). Hierzu ein kleines Beispiel:
1. Blatt („Gesamt“):
Kategorie Datum Bezeichnung Kosten
KFZ 01.12.2010 Diesel 60
Büro 02.12.2010 Papier 25
KFZ 02.12.2010 Reparatur 249
2. Blatt („KFZ“):
Datum Bezeichnung Kosten
01.12.2010 Diesel 60
02.12.2010 Reparatur 249
3. Blatt („Büro“):
Datum Bezeichnung Kosten
02.12.2010 Papier 25
Jetzt soll, sobald ich eine neue Zeile in Blatt 1 erstelle, im entsprechenden 2. oder 3. Blatt ebenfalls die zugehörige Zeile erstellt werden. Ich gebe also z.B. in Blatt 1 eine neue Zeile ein mit der Kategorie „Büro“, der Bezeichnung „Druckerpatrone“ den Kosten von 15 mit Datum 03.12.2010. Dann sollen automatisch im 3. Blatt die Daten (Datum, Bezeichnung und Kosten) eingefügt werden. Gibt es da eine Möglichkeit, das zu realisieren?
Danke und LG
Daniel
Jetzt soll, sobald ich eine neue Zeile in Blatt 1 erstelle, im
entsprechenden 2. oder 3. Blatt ebenfalls die zugehörige Zeile
erstellt werden. Ich gebe also z.B. in Blatt 1 eine neue Zeile
ein mit der Kategorie „Büro“, der Bezeichnung „Druckerpatrone“
den Kosten von 15 mit Datum 03.12.2010. Dann sollen
automatisch im 3. Blatt die Daten (Datum, Bezeichnung und
Kosten) eingefügt werden. Gibt es da eine Möglichkeit, das zu
realisieren?
Hallo Daniel,
klicke unten mit Rechts auf den Blattnamen „Gesamt“, dort den Code reinkopieren. Editor schließen, der Code läuft automatisch und reagiert auf Eingaben in Spalte A.
Wenn du nun manuell löschen mußt in Spalte A oder ähnlich funkt der Code dazwischen. Nachfolgend steht wie du ihn ein- und ausschalten kannst.
Private Sub Worksheet\_Change(ByVal Target As Range)
Dim Zelle As Range, Zei As Long
Set Target = Intersect(Target, Columns(1))
If Target Is Nothing Then Exit Sub
On Error GoTo hell
For Each Zelle In Target
Zei = Worksheets(Zelle.Value).Cells(Rows.Count, 1).End(xlUp).Row + 1
Zelle.Offset(0, 1).Resize(1, 3).Copy Destination:=Worksheets(Zelle.Value).Cells(Zei, 1)
Next Zelle
hell:
If Err.Number 0 Then
MsgBox "Evtl. gibt es das Blatt nicht: " & Zelle.Value
Zelle.Select
End If
End Sub
zum Ein- und Ausschalten, mußt du einmalig Alt+F11 drücken, dann Einfügen—Modul, dort die zwei kurzen Codes reinkopieren. Danach wieder VB-Editor schließen.
Ein- bzw. ausschalten geht dann mit Alt+F8 und das jeweilge makro ausführen lassen.
Sub UeberwachungEIN()
Application.EnableEvents = True
End Sub
’
Sub UeberwachungAUS()
Application.EnableEvents = False
End Sub
Gruß
Reinhard
Grüezi Daniel
Ich hab ein Excel-Dokument mit mehreren Blättern. Das erste
Blatt enthält viele Zeilen mit mehreren Spalten. Alle anderen
Blätter enthalten exakt das selbe, der Unterschied ist nur,
dass sich der Inhalt vom ersten Blatt auf alle anderen Blätter
aufteilt (je nachdem, welcher Kategorie eine Zeile zugeordnet
ist).
Jetzt soll, sobald ich eine neue Zeile in Blatt 1 erstelle, im
entsprechenden 2. oder 3. Blatt ebenfalls die zugehörige Zeile
erstellt werden. Ich gebe also z.B. in Blatt 1 eine neue Zeile
ein mit der Kategorie „Büro“, der Bezeichnung „Druckerpatrone“
den Kosten von 15 mit Datum 03.12.2010. Dann sollen
automatisch im 3. Blatt die Daten (Datum, Bezeichnung und
Kosten) eingefügt werden. Gibt es da eine Möglichkeit, das zu
realisieren?
Du kannst dazu auch die folgende Demo-Mappe verwenden und nach den darin enthaltenen Hinweisen deine Daten einpflegen und die Kriterien pro Tabellenblatt vorgeben, dann hast Du das Ganze bereits komplett automatisiert:
http://users.quick-line.ch/ramel/Files/spezialfilter…
Mit freundlichen Grüssen
Thomas Ramel
Du kannst dazu auch die folgende Demo-Mappe verwenden und nach
den darin enthaltenen Hinweisen deine Daten einpflegen und die
Kriterien pro Tabellenblatt vorgeben, dann hast Du das Ganze
bereits komplett automatisiert:
http://users.quick-line.ch/ramel/Files/spezialfilter…
Grüezi Thomas,
bezogen auf die Anfrage von Daniel, meinst du wirklich er könne sich selbst den Code umschreiben so daß er für das was er will passt?
Ich bezeifel das, der Code ist nicht so einfach eher tricky.
Gruß
Reinhard
Grüezi Reinhard
http://users.quick-line.ch/ramel/Files/spezialfilter…
bezogen auf die Anfrage von Daniel, meinst du wirklich er
könne sich selbst den Code umschreiben so daß er für das was
er will passt?
Ich bezeifel das, der Code ist nicht so einfach eher tricky.
Danke für das Kompliment - es hat auch ein bisschen graue Zellen gekostet, das Ganze so aufzubauen, dass es allgemein gültig ist.
Daniel soll sich nicht den Code anpassen sondern nur seine Quelldaten, die er im ersten Blatt drin hat ins erste Blatt der Mappe kopieren.
Dann alle Blätter bis auf 2 löschen, ins zweite Blatt die Spaltenüberschriften übertragen und in der ersten Spalte, Zeile 2 das Filter-Kriterium eintragen.
Dann noch das zweite Blatt beliebig oft kopieren und das Filter-Kriterium anpassen.
Am Code selbst muss/soll nichts gemacht werden, der soll so bleiben wie er ist.
Mit freundlichen Grüssen
Thomas Ramel
Danke euch beiden für die ausführlichen Beispiele.
Leider habe ich das Beispiel von Reinhard nicht zum Laufen gebracht. Code habe ich eingefügt, aber es tut sich nichts wenn man irgendwas im ersten Blatt eingibt. Weiß leider auch nicht warum…
Die bereits fertige Mappe von Thomas funktioniert aber einwandfrei - genau so habe ich mir sowas vorgestellt. Auch die Filterkriterien sind denkbar einfach festzulegen.
Danke nochmal an beide!
LG
Daniel
Hallo Daniel,
Leider habe ich das Beispiel von Reinhard nicht zum Laufen
gebracht. Code habe ich eingefügt, aber es tut sich nichts
wenn man irgendwas im ersten Blatt eingibt. Weiß leider auch
nicht warum…
ich auch nicht
, er war getestet.
Die bereits fertige Mappe von Thomas funktioniert aber
einwandfrei - genau so habe ich mir sowas vorgestellt. Auch
die Filterkriterien sind denkbar einfach festzulegen.
Dann isses ja gut, nimm diese Lösung.
Wenn du damit sofort problemlos klarkommst heißt das gut codiert. Anscheinend hab ich mich da den Wald vor lauter Bäumen nicht gesehen *gg*
Gruß
Reinhard