Thema Datum  Von Nutzer Rating
Antwort
Rot VBA Code zu Auslesen vom aktuellen Status aus Tabelle - Anzeige auf UserForm
11.03.2025 23:07:28 MV16
NotSolved
12.03.2025 14:22:59 Gast60515
NotSolved
12.03.2025 14:29:47 Gast3196
NotSolved
12.03.2025 15:18:02 Gast88470
NotSolved
12.03.2025 16:05:18 Gast89795
NotSolved
12.03.2025 16:23:23 Gast89795
NotSolved
12.03.2025 17:29:08 Gast33630
NotSolved
13.03.2025 10:57:12 Gast83516
NotSolved

Ansicht des Beitrags:
Von:
MV16
Datum:
11.03.2025 23:07:28
Views:
389
Rating: Antwort:
  Ja
Thema:
VBA Code zu Auslesen vom aktuellen Status aus Tabelle - Anzeige auf UserForm

Hallo Zusammen,

habe kaum Ahnung von VBA. Habe mich von Gemini beraten wink lassen hat soweit zu 50% geklappt. Den Rest bekommt Gemini nicht hin, oder ich schaffe das nicht. 

Zur Aufgabenstellung:

Möchte aus einer Excel Tabele den tagesaktuellen Status von Mitarbeitern auslesen und in einer UserForm Darstellen. Als eine Übersicht.

Habe mit Erfolg die UserForm erstellt die dann auf Konpfdruck angezeigt wird, aber ohne den Status.

Folgende Daten sollen gefunden und ausgegeben werden. K=Krank=rot, 1=Urlaub=Grün,M=Überstunden=Magenta, o=Anwesend=Weiß. Es soll dann der Name des Mitarbeiters in der dementsprechenden Farbe als Hintergrund auf einer Karte in der UserForm dargestellt werden.

Die Daten (K,1,M,o) befinden sich in AW2:OX31

Datumszeile: AW2:OX2 für den aktuellen Tag

Die Mitarbeiter stehen inD7:D31

Die UserForm (Dachboard enthält Frames die MA1-MA25 heißen. In den Frames sollen dann jeweils zwei Label (Beschriftungsfeld) mit lblName und lblStatus sein. Aktuell nur in MA1 zum testen. Soweit hat das mit Gemini geklappt. Nur die Daten werden nicht gezogen und angezeigt.

Hier der Code in UserForm (Dashboard)

 

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

 


 

Mit dem Code soll dann das Dashboard gestartet werden, was auch funktioniert.


 

Sub DashboardAnzeigen()

    Dim Dashboard As Dashboard
    Set Dashboard = New Dashboard

    Dashboard.Show
    Dashboard.Top = Application.Top + (Application.Height - Dashboard.Height) / 2
    Dashboard.Left = Application.Left + (Application.Width - Dashboard.Width) / 2
    Dashboard.InitializeDashboard

End Sub

 


so, jetzt an die Experten, was ist hier falsch oder sollte anderst gemacht werden. Ist der Code richtig, den mir Gemini erstellt hat??

Könntet Ihr bitte mal drüber schauen.

Schon mal vielen Dank im Voraus


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot VBA Code zu Auslesen vom aktuellen Status aus Tabelle - Anzeige auf UserForm
11.03.2025 23:07:28 MV16
NotSolved
12.03.2025 14:22:59 Gast60515
NotSolved
12.03.2025 14:29:47 Gast3196
NotSolved
12.03.2025 15:18:02 Gast88470
NotSolved
12.03.2025 16:05:18 Gast89795
NotSolved
12.03.2025 16:23:23 Gast89795
NotSolved
12.03.2025 17:29:08 Gast33630
NotSolved
13.03.2025 10:57:12 Gast83516
NotSolved