Hallo,
mal wieder ein neues Problem. Anbei die Datei.
Die leeren Zeilen sich numerisch anzeigen zu lassen klappt, ich möchte aber, dass mir (am besten als Makro per Buttonclick) die Namen der Mitarbeiter angezeigt werden, die an einem Tag anwesend sind (also die Mitarbeiter mit leeren Zeilen !). Ich stelle mir das so vor, das ich unter jedem Datum ein Button erstelle und dieser per Makro an den jeweiligen Tag anzeigt.
Beispiel am 01.12. also Egon und Balder
am 02.12 Hugo und Balder usw usw
Kann mir da jemand helfen ?
Danke und Gruß
Thorsten
Hi Thorsten,
(07.12.2015, 11:02)Thorsten78 schrieb: [ -> ]Ich stelle mir das so vor, das ich unter jedem Datum ein Button erstelle und dieser per Makro an den jeweiligen Tag anzeigt.
da ist es mMn sinnvoller, zu schauen, bei welchem Datum der Cursor steht und dann dementsprechend die anwesenden Kollegen/Mitarbeiter anzuzeigen.
Sonst hast Du ja Unmengen von Buttons.
Hallo,
ja das klingt auch interessant, bei mir werden aber bisher nur die leeren Zeilen angezeigt und nicht die entsprechenden Namen dazu.
Gruß
Thorsten
So finde ich schonmal die leere Zeile, aber jeweils nur eine und es erfolgt die Ausgabe in der MsgBox
Aber leider eben nur ein mal ...
Code:
Sub FIND_EMPTY_CELL()
Dim zeil As Integer, spalt As Integer
Dim z As Integer, s As Integer
zeil = ActiveSheet.UsedRange.Rows.Count 'letzte ausgefüllte Zeile
spalt = ActiveSheet.UsedRange.Columns.Count 'letzte ausgefüllte Spalte
For z = 3 To ActiveSheet.UsedRange.Rows.Count 'mit Zeilen anfangen
'Spalte für Spalte der obigen Zeile durchsuchen
For s = 3 To ActiveSheet.UsedRange.Columns.Count
If IsEmpty(Range(Cells(z, s), Cells(z, s)).Value) = True Then
'leere Zelle gefunden
MsgBox "Die Zeile ist" & z & s
MsgBox "Und anwesend ist" & ActiveSheet.Cells(z, 1).Value
'Makro verlassen
Exit Sub
End If
Next s
Next z
End Sub
Niemand ne Idee für die Schleife ? Gruß Thorsten
Hallo Thorsten,
mein Vorschlag mit Autofilter per Doppelklick in die Zeile 2:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row = 2 Then
If IsDate(Target.Offset(-1).Value) Then
If Me.FilterMode Then
If Me.AutoFilter.Filters(Target.Column - Me.AutoFilter.Range.Column + 1).On Then
Me.ShowAllData
Else
Me.ShowAllData
Me.AutoFilter.Range.AutoFilter Field:=Target.Column - Me.AutoFilter.Range.Column + 1, Criteria1:="X"
End If
Else
Me.AutoFilter.Range.AutoFilter Field:=Target.Column - Me.AutoFilter.Range.Column + 1, Criteria1:="X"
End If
End If
End If
End Sub
[
attachment=3501]
Gruß Uwe
Hi Uwe,
wenn ich die Ausgangsfrage richtig verstanden habe, müßte das Kriterium eher " " sein.
Code:
...
Me.AutoFilter.Range.AutoFilter Field:=Target.Column - Me.AutoFilter.Range.Column + 1, Criteria1:=" "
End If
Else
Me.AutoFilter.Range.AutoFilter Field:=Target.Column - Me.AutoFilter.Range.Column + 1, Criteria1:=" "
...
Hi Ralf,
vielleicht, vielleicht auch nicht ...
Aber was genau gefiltert werden soll, ist ja Conchita. :)
Gruß Uwe