|
Danke, das erste hat geklappt.
Das zweite, es soll ja nach diesen Werten geschaut und dann ausgeben werden:
K,1,M,o befinden sich in AW7:OX31
Datumszeile: AW2:OX2 für den aktuellen Tag
Die Mitarbeiter stehen inD7:D31
es soll dann der aktuelle Wert für diesen Tag ermittelt werden für alle MItarbeiter. Dieser soll dann Farbig mit Namen in einer UserForm dargestellt werden, so wie ich es in meiner Anfrage geschrieben habe
Wenn ich mit F8 anschaue wie der Code verläuft, bleibt er in einer Schleife von Zeile 16 bis Zeile 20.
Public Sub InitializeDashboard()
Dim aktuellesDatum As Date
Dim spaltenIndex As Long
Dim mitarbeiterName As String
Dim mitarbeiterStatus As String
Dim lblName As MSForms.Label
Dim lblStatus As MSForms.Label
aktuellesDatum = Date
spaltenIndex = 0
'Spaltenindex finden
For i = 1 To Worksheets("2025").Range("AW2:OX2").Columns.Count
If Worksheets("2025").Cells(2, 48 + i - 1).Value = aktuellesDatum Then
spaltenIndex = i
Exit For
End If
Next i
If spaltenIndex = 0 Then
MsgBox "Keine Daten für das aktuelle Datum gefunden."
Exit Sub
End If
'Mitarbeitername und -status auslesen (für MA1)
mitarbeiterName = Worksheets("2025").Cells(7, 4).Value 'Name Mitarbeiter
Debug.Print "Spaltenindex: " & spaltenIndex
Debug.Print "Mitarbeiterstatus: " & mitarbeiterStatus
mitarbeiterStatus = Worksheets("2025").Cells(7, 47 + spaltenIndex).Value
'Labels in Frame MA1 zuweisen
Set lblName = Me.Controls("MA1").Controls("lblName") 'Annahme: lblName für Name
Debug.Print "lblName: " & lblName.Name
Debug.Print "lblStatus: " & lblStatus.Name
Debug.Print "Mitarbeitername: " & mitarbeiterName
lblName.Caption = mitarbeiterName
Set lblStatus = Me.Controls("MA1").Controls("lblStatus") 'Annahme: lblStatus für Status
Debug.Print "lblName: " & lblName.Name
Debug.Print "lblStatus: " & lblStatus.Name
lblStatus.Caption = mitarbeiterStatus
'Farbcode für Status
Select Case mitarbeiterStatus
Case "K"
lblStatus.BackColor = vbRed
Case "O"
lblStatus.BackColor = vbWhite
Case "M"
lblStatus.BackColor = vbMagenta
Case "1"
lblStatus.BackColor = vbGreen
End Select
End Sub
Private Sub UserForm_Click()
End Sub
Aber wie gesagt, das ist das erste VBA Projekt das ich angehe und ich dachte mit Gemini wäre das einfacher.
|