Na bepaalde datum de row een andere kleur geven in datagridview

Status
Niet open voor verdere reacties.

Schipperjte

Gebruiker
Lid geworden
24 jan 2006
Berichten
212
Hoi,

Ik probeer een row in datagridview een andere kleur tegeven.
Dat lukt wel.

Maar in de 1e row heb ik een datum staan , is het mogelijk om na een bepaalde datum die row een andere kleur tegeven.
Het zijn er natuurlijk meerdere.

Code:
If Date.Now >= 7 Then

DataGridView1.RowsDefaultCellStyle.BackColor = Color.Beige
 End If

Dit werkt niet , kent >= niet .

Iemand anders een idee ? Moet natuurlijk ook nog vertellen in welke row de datum zit.
Maar mijn kennis over datagridview is bijna niks.
 
Hi wel aanpassen voor je eigen code
Cells(8) is de kolom waar je datum instaat staat hij in kolom3 dan uiteraard Cells(3)
let op je grid telt van af 0

Code:
For Each NRow In Me.DataGridView1.Rows
            If NRow.Cells(8).Value IsNot DBNull.Value Then
                If CType(NRow.Cells(8).Value(), Integer) =  Then 'hier de naam textbox.text met je gegeven op het moment dat hij van kleur moet veranderen. 
                    NRow.DefaultCellStyle.ForeColor = Color.Red
                Else
                    NRow.DefaultCellStyle.ForeColor = Color.Black
                End If
            End If
        Next
 
Hoi old Hippy

heb het geprobeerd maar krijg steeds Expression expected

maakt niet uit wat ik invul bij

'hier de naam textbox.text met je gegeven op het moment dat hij van kleur moet veranderen.
 
HI in je datagrid moet een gegeven staan dus je datum.
Het verschil tusen je datum en de datum Now moet de regel in je kolom veranderen van kleur.
als die datum dus groter als 7 = kleur hem rood ( Date.Now >= 7)
Dus de de berekening van je datum op die plaats

If CType(NRow.Cells(8).Value(), Integer) = hier de berekening Then

Ps
om een data teberekenen
Code:
Try
          Dim date1
            date1 = TextBox2.Text
            TextBox2.Text = DateDiff(DateInterval.Day, date1, Now, FirstDayOfWeek.Monday) 
                            Catch ex As Exception
            MsgBox("Vul een datun in", MsgBoxStyle.Critical)
        End Try
 
Laatst bewerkt:
Pff
now ik hou het even voor gezien denk ik

kom er maar niet uit.

krijg nu weer een andere melding
Operator '=' is not defined for types 'Integer' and 'Date'

Code:
For Each NRow In Me.Tabel1DataGridView.Rows
            If NRow.Cells(1).Value IsNot DBNull.Value Then
                If CType(NRow.Cells().Value(), Integer) = Date.Now > 7 Then  
                    NRow.DefaultCellStyle.ForeColor = Color.Red
                Else
                    NRow.DefaultCellStyle.ForeColor = Color.Black
                End If
            End If
        Next
 
Geef eens wat meer info afbeelding zegt meer als Pff
je berekend nog steeds niets in de code

Zorg er voor dat je eerst een uitkomst heb van de twee datums.
In een getal dus het verschil tussen de datum in je grid en de datum nu.


Code:
 Try

            Dim date1, date2
            date1 = GridTextBox1.Text
            date2 = VandaagTextBox2.Text
            TextBox3.Text = DateDiff(DateInterval.Day, date1, date2) + 1 
       Catch ex As Exception
            'MsgBox("Vul een datum in", MsgBoxStyle.Critical)
        End Try
nu heb je een getal in dagen.

Code:
For Each NRow In Me.OmschrijvingartikelenDataGridView.Rows
            If NRow.Cells(6).Value IsNot DBNull.Value Then
                If CType(NRow.Cells(6).Value(), Integer) Textbox3.Text > 7 Then
                    NRow.DefaultCellStyle.ForeColor = Color.Red

                Else
                    NRow.DefaultCellStyle.ForeColor = Color.Black
                    
                End If
            Else
            End If
        Next
 
Getal uitrekenen is gelukt , maar deze foutmelding blijf ik houden
End of statement expexted

maakt niet uit wat ik doe , zal natuurlijk wel iets heel simpels zijn maarja
grid kleur.jpg
 
Sorry gaat niet goed
probeer dit

Code:
For Each NRow In Me.OmschrijvingartikelenDataGridView.Rows
            If NRow.Cells(6).Value IsNot DBNull.Value Then
                If TextBox6.Text > 7  Then
                    NRow.DefaultCellStyle.ForeColor = Color.Red

                Else
                    NRow.DefaultCellStyle.ForeColor = Color.Black
                    
                End If
            Else
            End If
        Next
 
Hij doet het .

Is alleen 1 maar , hij neemt alle rijen die er eerst komen ook mee.

Die worden rood, en als ik een nieuwe maak met een andere datum wordt alles weer zwart.

Het mooiste is als alleen die ene rij rood wordt.

het zit zeker in de regel ?
Code:
For Each NRow In Me
 
Zou niet mogen of ze moeten ook groter dan 7 zijn.
maak eens een afbeelding van je datagrid.
 
Laatst bewerkt:
Hi heb het even uitgeprobeerd maar dit werkt bij mij.
Kan je onder een button zetten en in je form load

Code:
Try
            For Each NRow In Me.DatumDataGridView.Rows
                Dim date1, date2
                date1 = CType(NRow.Cells(1).Value(), String) 'dit is de datum in je datagrid
                date2 = TextBox1.Text 'Dit is de datum vandaag 
                If NRow.Cells(1).Value IsNot DBNull.Value Then
                    If DateDiff(DateInterval.Day, date1, date2) + 1 >= 7 Then 'dit maakt hem rood als de datum 7 dagen oud is.
                        NRow.DefaultCellStyle.ForeColor = Color.Red
                    Else
                        NRow.DefaultCellStyle.ForeColor = Color.Black
                    End If
                Else
                End If
            Next
        Catch ex As Exception

        End Try
 

Bijlagen

  • Knipsel.JPG
    Knipsel.JPG
    21,2 KB · Weergaven: 41
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan