• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Laatst ingevulde rij, andere kleur geven

Status
Niet open voor verdere reacties.

ambie

Gebruiker
Lid geworden
14 apr 2008
Berichten
52
Ik gebruik volgende formule.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
Application.ScreenUpdating = False 
For Each c In Range("A3:A500") 

If c = leeg Then 
Range("A" & c.Row, "AJ" & c.Row).Interior.ColorIndex = 2 

ElseIf c > 0 Then 
Range("A" & c.Row, "AJ" & c.Row).Interior.ColorIndex = 15 

End If 
Next 
End Sub


Via een Userform worden gegevens ingevuld en overgebracht naar de eerste lege rij van een excel blad.
Ik had nu graag gehad dat deze laatst ingevulde rij een ander kleur kreeg. (lege rijen= wit, ingevulde rijen=grijs, nieuwe rij bv paars)

Wanneer het document wordt opgeslagen en men opent het document terug, zou deze laatste rij het kleur moeten krijgen van de andere ingevulde rijen.

Is dit mogelijk?
Bedankt.
 
Dan zal het zoiets worden:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
Dim lr1, lr2, lastrow As Range
For Each c In Range("A3:A500")

If c = leeg Then
Range("A" & c.Row, "AJ" & c.Row).Interior.ColorIndex = 2

ElseIf c > 0 Then
Range("A" & c.Row, "AJ" & c.Row).Interior.ColorIndex = 15

Set lr1 = Range("a65536").End(xlUp)
Set lr2 = Range("AJ" & lr1)
Set lastrow = Range(lr1, lr2)
lastrow.Interior.ColorIndex = 27

End If
Next
End Sub

Groeten,

M.
 
Bedankt voor de vlugge reactie.

Heb de code geprobeerd.

Ik krijg een foutmelding in :


Set lr2 = Range("AJ" & lr1)
 
Bij mij werkt ie goed. Zou het aan de excel versie liggen? Ik gebruik excel 2000.
Trouwens, wat is de foutmelding?

Groeten,

M.
 
M bedankt het werkt. Merci.

Ik gebruik 2003.

Zou ik dit ook kunnen automatiseren?

Ik bedoel, nu dien ik eerst in het tabblad te klikken.

en dan wordt de laatst toegevoegde rij geel, en de rij die voordien de laatste was (en die geel was) wordt nu grijs.

Of zou ik dit kunnen aanpassen in de formules van mijn userform.
Dat hij het tablad opent en de eerste cel van de laatste rij activeert.

Thanks M
 
Ehhh...ff 2 kleine opmerkingen....
Code:
If c = [COLOR="Blue"]leeg[/COLOR] Then
Deze regel zal altijd False zijn... Of het moet een VBA-versie zijn die nederlands begrijpt? :D
Ik mis ook nog aan het einde van de code de regel
Code:
Application.ScreenUpdating = [COLOR="blue"]True[/COLOR]

Groet, Leo
 
Dan zou de volgende code bij openen of activeren van het tabblad uitgevoerd moeten worden.

Code:
range(("a65536").end(xlup).select

Groeten,

M.
 
Ehhh...ff 2 kleine opmerkingen....
Code:
If c = [COLOR="Blue"]leeg[/COLOR] Then
Deze regel zal altijd False zijn... Of het moet een VBA-versie zijn die nederlands begrijpt? :D
Ik mis ook nog aan het einde van de code de regel
Code:
Application.ScreenUpdating = [COLOR="blue"]True[/COLOR]

Groet, Leo

Wat moet ber dan in de plaats van LEEG komen aub. Thanks.
 
Dan zou de volgende code bij openen of activeren van het tabblad uitgevoerd moeten worden.

Code:
range(("a65536").end(xlup).select

Groeten,

M.

Na het invullen van de userform klik ik op de knop Toevoegen.

De data wordt weggeschreven naar het tabblad Data.

Er komt een popup (Toevoegen91) waarop staat dat de persoon bedankt is om alles goed in te vullen. Men moet dan op de knop OK drukken.

Ik zou nu willen dat wanneer men op de knop OK klikt, het tabblad Data wordt getoond en de eerste cel (A kolom) van de ingevoegde rij wordt geactiveerd.

Dit is de code er van :

Code:
Private Sub CommandButton911_Click()
Application.Wait (Now + TimeValue("0:00:01"))

Toevoegen91.Hide
End Sub
 
Dit zou als code bijde OK-knop toegevoegd kunnen worden:

Code:
Sheets("Data").activate
Range("A65536").End(XLup).Select

Groeten,

M.
 
Weeral eerste klas M. Bedankt.
Dit is nu de code van mijn laatste formulier:



Code:
Private Sub CommandButton911_Click()
Application.Wait (Now + TimeValue("0:00:01"))

Toevoegen91.Hide

Sheets("Data").Activate
Range("A65536").End(xlUp).Select

End Sub

en deze is van het tabblad Data:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim lr1, lr2, lastrow As Range
For Each c In Range("A3:A500")

If c = Empty Then
Range("A" & c.Row, "AJ" & c.Row).Interior.ColorIndex = 2

ElseIf c > 0 Then
Range("A" & c.Row, "AJ" & c.Row).Interior.ColorIndex = 15

Set lr1 = Range("A65536").End(xlUp)
Set lr2 = Range("AJ" & lr1.Row)
Set lastrow = Range(lr1, lr2)
lastrow.Interior.ColorIndex = 27

Application.ScreenUpdating = False

End If
Next
End Sub

Alles werkt nu bijna perfect.

Maar,.... Het verkleuren van de laatste regel en het selecteren er van gebeurd pas nadat ik in het tabblad heb geklikt.
 
Leuk hoor al dat VBA, maar waarom niet "gewoon" via voorwaardelijke opmaak waarbij wordt gekeken naar rij() en aantalarg?
 
Bedankt Paul,

Ziet er goed uit.

Zal eens de VBA verwijderen en met VW opmaak proberen om de rijen te kleuren.
Tot straks.
 
Er zitten inderdaad lege cellen in sommige kolommen, zodat het niet de hele rij is die wordt gekleurd.

Zal het maar bij de VBA houden.
 
Er zitten inderdaad lege cellen in sommige kolommen, zodat het niet de hele rij is die wordt gekleurd.

Zal het maar bij de VBA houden.
Je kan de verwijzing van 1 kolom gebruiken voor meerdere kolommen.

zie voorbeeldje, hier kleuren A t/m D, afhankelijk van kolom A
 

Bijlagen

Kan er iemand mij nog helpen met het volgende probleem:

Het verkleuren van de laatste regel en het selecteren er van gebeurd pas nadat ik in het tabblad heb geklikt.
 
Kan er iemand mij nog helpen met het volgende probleem:

Het verkleuren van de laatste regel en het selecteren er van gebeurd pas nadat ik in het tabblad heb geklikt.

Dan heb je VBA nodig, een Worksheet_SelectionChange event meer bepaald.

Zoek eens op het forum, dit is al redelijk veel keren behandeld geweest in andere topics.

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan