Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Tabellenzeilen farblich Markieren
#1
moin 

Hallo alle miteinander

Ich habe mal wieder ein Problem wo ich nicht weiter weiß
Ich möchte in eine int. Tabelle eine neu dazukommend Zeile farblich markieren 

'Private Sub cmb_bestellung_eintragen_Click()
'
'Dim lstObjCem As ListObject
'
'Set lstObjCem = sh_Zement_Füller.ListObjects("tbl_Zement_Füller").DataBodyRange.Interior.ColorIndex = 8
'
'
'
''Me.Controls("TextBox" & i).Value
'
'Dim i As Long
'
'Application.ScreenUpdating = False
'
'With lstObjCem
'
'For i = 1 To 5
'
'        If UF_Zement.Controls("Opb_" & i & "CemIII") = True Or _
'        UF_Zement.Controls("Opb_" & i & "CemI") = True Or _
'        UF_Zement.Controls("Füller" & i) = True Then
'
'        lstObjCem.ListRows.Add 'soll farbig markiert sein so vileicht .DataBodyRange.Interior.ColorIndex = 8
'
'
'        .ListColumns("Wer hat Bestellt").DataBodyRange(lstObjCem.DataBodyRange.Rows.Count) = UF_Zement.txt_name_besteller.Value
'        .ListColumns("Bestellt bei Firma").DataBodyRange(lstObjCem.DataBodyRange.Rows.Count) = UF_Zement.txt_Bestellt_bei_Firma.Value
'        .ListColumns("Datum").DataBodyRange(lstObjCem.DataBodyRange.Rows.Count) = UF_Zement.txt_Bestelldatum.Value
'        .ListColumns("Zeit").DataBodyRange(lstObjCem.DataBodyRange.Rows.Count) = UF_Zement.txt_Bestellzeit
'        .ListColumns("KW").DataBodyRange(lstObjCem.DataBodyRange.Rows.Count) = UF_Zement.txt_Kalenderwoche
'        .ListColumns("Liefertag(Datum)").DataBodyRange(lstObjCem.DataBodyRange.Rows.Count) = UF_Zement.txt_lieferterminZm
'
'
'        'Zeitfenster 1 speichern
'
'            If UF_Zement.Controls("Opb_" & i & "CemIII") = True Then
'                .ListColumns("Zeitfenster von").DataBodyRange(lstObjCem.DataBodyRange.Rows.Count) = UF_Zement.Controls("cbo_von" & i)
'                .ListColumns("Zeitfenster bis").DataBodyRange(lstObjCem.DataBodyRange.Rows.Count) = UF_Zement.Controls("cbo_bis" & i)
'                .ListColumns("Cem III 42,5 N(na)").DataBodyRange(lstObjCem.DataBodyRange.Rows.Count) = "Cem III A 42,5 N(na)"
'
'                ElseIf UF_Zement.Controls("Opb_" & i & "CemI") = True Then
'                .ListColumns("Zeitfenster von").DataBodyRange(lstObjCem.DataBodyRange.Rows.Count) = UF_Zement.Controls("cbo_von" & i)
'                .ListColumns("Zeitfenster bis").DataBodyRange(lstObjCem.DataBodyRange.Rows.Count) = UF_Zement.Controls("cbo_bis" & i)
'                .ListColumns("Cem I 42,5 R(na)").DataBodyRange(lstObjCem.DataBodyRange.Rows.Count) = "Cem I 42,5 R(na)"
'
'                ElseIf UF_Zement.Controls("Füller" & i) = True Then
'                .ListColumns("Zeitfenster von").DataBodyRange(lstObjCem.DataBodyRange.Rows.Count) = UF_Zement.Controls("cbo_von" & i)
'                .ListColumns("Zeitfenster bis").DataBodyRange(lstObjCem.DataBodyRange.Rows.Count) = UF_Zement.Controls("cbo_bis" & i)
'                .ListColumns("Flugasche").DataBodyRange(lstObjCem.DataBodyRange.Rows.Count) = "Füller"
'        End If
'
'        End If
'Next i
'
'
'End With
'
'Application.ScreenUpdating = True
'
'
'
'End Sub


Das ist mein code der auch so weit gut funktioniert 
hat jemand eine idee außer mit einer bed. Formatierung und wenn ja warum diese

Ich wünsche euch schon mal eine schöne Weinachtszeit

LG Ronny
Antworten Top
#2
Hi,

(11.12.2022, 21:14)RonnyHerbert schrieb: ' lstObjCem.ListRows.Add 'soll farbig markiert sein so vileicht .DataBodyRange.Interior.ColorIndex = 8

Du hast es fast schon richtig:
Code:
lstObjCem.ListRows.Add.Range.Interior.ColorIndex = 8

Wobei ich anmerken möchte, dass man .ColorIndex = x nicht verwenden sollte, da man nicht sicher sein kann, welche Farbe dies wirklich ist. Besser .Color = RGB(r, g, b) verwenden.

Außerdem möchte ich bezweifeln, dass
(11.12.2022, 21:14)RonnyHerbert schrieb: Set lstObjCem = sh_Zement_Füller.ListObjects("tbl_Zement_Füller").DataBodyRange.Interior.ColorIndex = 8
funktioniert. Das müsste wohl eher
Code:
Set lstObjCem = sh_Zement_Füller.ListObjects("tbl_Zement_Füller")
lstObjCem.DataBodyRange.Interior.ColorIndex = 8
heißen.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
[-] Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:
  • RonnyHerbert
Antworten Top
#3
moin Helmut

Hm wie immer die einfachen Sachen sehe ich wieder mal nicht !

Noch mal danke

LG Ronny
Antworten Top
#4
Versuchs mal damit. wenn du die Listrow bereits hast. macht es Sinn diese auch zu nutzen.
Vielleicht kann man auch die Indizes der Spalten vor der Schleife ermitteln und sie dann etwas übersichtlicher nutzen.


Code:
Private Sub cmb_bestellung_eintragen_Click()

    Dim i      As Long

    Application.ScreenUpdating = False
                   
        For i = 1 To 5
           
            If UF_Zement.Controls("Opb_" & i & "CemIII") = True Or _
               UF_Zement.Controls("Opb_" & i & "CemI") = True Or _
               UF_Zement.Controls("Füller" & i) = True Then
               
                With sh_Zement_Füller.ListObjects("tbl_Zement_Füller").ListRows.Add
               
                    .Range.Interior.ColorIndex = 8
                    .Range.Cells(.Parent.ListColumns("Wer hat Bestellt").Index) = UF_Zement.txt_name_besteller.Value
                    .Range.Cells(.Parent.ListColumns("Bestellt bei Firma").Index) = UF_Zement.txt_Bestellt_bei_Firma.Value
                    .Range.Cells(.Parent.ListColumns("Datum").Index) = UF_Zement.txt_Bestelldatum.Value
                    .Range.Cells(.Parent.ListColumns("Zeit").Index) = UF_Zement.txt_Bestellzeit
                    .Range.Cells(.Parent.ListColumns("KW").Index) = UF_Zement.txt_Kalenderwoche
                    .Range.Cells(.Parent.ListColumns("Liefertag(Datum)").Index) = UF_Zement.txt_lieferterminZm
                                       
                    'Zeitfenster 1 speichern
                   
               
                    .Range.Cells(.Parent.ListColumns("Zeitfenster von").Index) = _
                               UF_Zement.Controls("cbo_von" & i)
                    .Range.Cells(.Parent.ListColumns("Zeitfenster bis").Index) = _
                               UF_Zement.Controls("cbo_bis" & i)
                   
                    .Range.Cells(.Parent.ListColumns("Cem III 42,5 N(na)").Index) = _
                              IIf(UF_Zement.Controls("Opb_" & i & "CemIII") = True, "Cem III A 42,5 N(na)", "")
                    .Range.Cells(.Parent.ListColumns("Cem I 42,5 R(na)").Index) = _
                              IIf(UF_Zement.Controls("Opb_" & i & "CemI") = True, "Cem I 42,5 R(na)", "")
                    .Range.Cells(.Parent.ListColumns("Flugasche").Index) = _
                              IIf(UF_Zement.Controls("Füller" & i) = True, "Füller", "")
              End With
          End If
        Next i
           
        Application.ScreenUpdating = True
       
End Sub
Antworten Top
#5
ja moin

danke Ralf für den tipp ist eine gute Idee 
die ich auch schon Umgesetzt habe 

Ich wünsche Dir ein frohes und gesegnetes Fest

lg Ronny
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste