Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

"Select" verschiedener Zeilen aus mehreren Tabellenblättern





Frage

Hallo, ich benötige Hilfe! [b]Ausgangssituation[/b] Ich habe eine Tabelle zur Arbeitszeiterfassung mit 12 Tabellenblättern (für jeden Monat eins :-p). In diesen Blättern existiert jeweils eine Spalte, in der das Datum steht, und eine Spalte, in welcher mit "x" markiert wird, falls an diesem Tag Urlaub genommen wurde. [b]Ziel:[/b] Nun möchte ich einen "automatischen" Urlaubsreport in einem separaten Tabellenblatt erstellen. Sprich: Alle Daten der Tage, welche in den Monatsblättern mit "x" (Urlaub) gekennzeichnet werden, sollen in korrekter zeitlicher Abfolge untereinander (ein Datum pro Zeile) aufgelistet werden. [b]Frage:[/b] Wie kann ich Excel dazu überreden, mir eine solche Ansicht zu generieren?

Antwort 1 von JoeKe

Hallo difusa,

das kann man mit VBA realisieren.
Folgender Code durchsucht auf jedem Monatsblatt die Spalte B nach einem - x - , wird eins gefunden wird das Datum aus Spalte A auf das Blatt "Urlaub" kopiert.

Option Explicit

Sub urlaub()
Dim blatt As Integer, zelle As Range
Sheets("Urlaub").Range("A:A").ClearContents
For blatt = 1 To Worksheets.Count
For Each zelle In Sheets(blatt).Range("B1:B31")
If zelle = "x" Then
Sheets(blatt).Cells(zelle.Row, 1).Copy Destination:=Sheets("Urlaub").Cells(Rows.Count, 1). _
End(xlUp).Offset(1, 0)
End If
Next zelle
Next blatt
End Sub


MfG

JöKe

Antwort 2 von fürLau

Hallo

Wie heißen Deine Tabellenblätter für die Monate 1-12?
In welcher Spalte steht jeweils das Urlaubs "X"?

Gruß

Antwort 3 von JBond

@Jöke

ich würde gleich
For blatt = 1 To 12

machen, da du sonst das Urlaubs-(und evtl weitere)Sheet auch noch mit durchsuchst...

Antwort 4 von JoeKe

@JBond,

das setzt dann aber voraus, dass die Blätter in der nötigen Reihenfolge sind!

Antwort 5 von difusa

Danke für Eure Hilfe.
Habe mir mit euren Anregungen ein Makro programmiert.