Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Frame
BildScreenshot zu Frame Frame-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Frage zu Frame


Betrifft: Frage zu Frame von: Frank H.
Geschrieben am: 03.01.2017 11:47:26

Hallo Zusammen und allen noch ein gesundes neues Jahr!

Seit ca. 2 Stunden grübel ich und komm nicht weiter. Mittels folgendem Code werden alle befindlichen Frames befüllt und ebenso die dazugehorigen Tesfelder. Auf jedem Frame befinden sich drei Textfelder.

Application.ScreenUpdating = False

For i = 1 To 70

Me("TextBox" & i) = ""
Me("TextBox" & i).ForeColor = &H80000008

Next i

For i = 1 To 35

Me("Frame" & i).ForeColor = &H80000008

Next i

i = cbMonat.ListIndex + 1

Frame1.Caption = DateSerial(CDbl(cbJahr), i, 1)

Frame2.Caption = CDate(Frame1.Caption) + 1

For i = 3 To 35
Me("Frame" & i).Caption = CDate(Me("Frame" & i - 1).Caption) + 1
Next i

For i = 1 To 35
Me("TextBox" & i) = Format(Me("Frame" & i).Caption, "ddd")
Next i

For lng = 1 To 176

For i = 36 To 70

If Sheets("Feiertage").Cells(lng, 6) = CDate(Me("Frame" & i - 35).Caption) Then

Me("TextBox" & i) = Sheets("Feiertage").Cells(lng, 7)

End If

Next i

Next lng

For i = 1 To 35

If Me("TextBox" & i) = "So" Then
Me("TextBox" & i).ForeColor = &HFF&
Me("Frame" & i).ForeColor = &HFF&
End If

Next

For i = 1 To 35

If Me("TextBox" & i) = "Sa" Then
Me("TextBox" & i).ForeColor = &HFF0000
Me("Frame" & i).ForeColor = &HFF0000
End If

Next

For i = 36 To 70

If Me("TextBox" & i) <> "" Then
Me("TextBox" & i - 35).ForeColor = &HFF&
Me("TextBox" & i).ForeColor = &HFF&
Me("Frame" & i - 35).ForeColor = &HFF&
End If

Next

For lng = 7 To 5850

For i = 71 To 105

If Sheets("DV").Cells(lng, 1) > CDate(Frame35.Caption) Then Exit Sub

If Sheets("DV").Cells(lng, 1) = CDate(Me("Frame" & i - 70).Caption) Then

Me("TextBox" & i) = Sheets("DV").Cells(lng, 4)

End If

Next i

Next lng

Application.ScreenUpdating = True

Nun versuche ich, das wenn ein Frame das heutige, also immer das am Tag aktuelle, Datum enthält dunkelgrau eingefärbt wird, so das immer gleich der aktuelle Tag sichtbar wird.

Meine Versuche führten nicht zum Erfolg. Kann mir von euch jemand weiterhelfen? Danke im Voraus!

Gruß Frank H.

  

Betrifft: AW: Frage zu Frame von: Gerd L
Geschrieben am: 03.01.2017 13:18:19

Hallo Frank!

Im Prinzip so:

For i = 1 To 35
If CDate(Me("Frame" & i).Caption) = Date Then
    Me("Frame" & i).BackColor = vbGreen
    Me("Frame" & i).ForeColor = vbRed
    Exit For
End If
Next
Gruß Gerd


  

Betrifft: AW: Frage zu Frame von: Frank H.
Geschrieben am: 03.01.2017 14:46:53

Hallo Gerd!

Dir ganz herzlichen Dank! Jetzt funzt es wie gewünscht. Irgendetwas war an meiner Formulierung in der ersten Zeile wohl falsch. Naja nun passt es, dank deiner Hilfe - Super Forum!

Gruß Frank H.