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
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ß
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
machen, da du sonst das Urlaubs-(und evtl weitere)Sheet auch noch mit durchsuchst...
ich würde gleich
For blatt = 1 To 12machen, 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!
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.
Habe mir mit euren Anregungen ein Makro programmiert.

