04. april 2008 - 13:11Der er
8 kommentarer og 1 løsning
Betinget formatering vba
I kolonne K har jeg lavet en validering med en liste man skal vælge fra: I gang, Ordre, Afsluttet, Død, Tabt. Afhængigt af hvad man vælger, skal rækken udfyldes med et mønster. Det virker fint hvis man vælger fra listen, men hvis man skriver og trykker Enter, bliver rækken ikke udfyldt,hvorfor??? Jeg vil have det til at virke sådan at rækken bliver udfyldt uanset om man vælger fra listen eller skriver og trykker Enter, Tab eller Pil op/ned/hen. Kan det lade sig gøre?
Min kode:
Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveCell.Column = 11 Then With Worksheets("SYSTEMER") With Target Select Case ActiveCell.Value Case "Ordre" For Kol = 1 To 22 ActiveCell.EntireRow.Cells(1, Kol).Interior.Pattern = xlGray8 'lægger baggrundsfarve på rækken fra A til V Next Kol Case "Afsluttet" For Kol = 1 To 22 ActiveCell.EntireRow.Cells(1, Kol).Interior.Pattern = xlGray16 Next Kol Case "Død" For Kol = 1 To 22 ActiveCell.EntireRow.Cells(1, Kol).Interior.Pattern = xlGray25 Next Kol Case "Tabt" For Kol = 1 To 22 ActiveCell.EntireRow.Cells(1, Kol).Interior.Pattern = xlGray50 Next Kol Case Else For Kol = 1 To 22 ActiveCell.EntireRow.Cells(1, Kol).Interior.Pattern = xlNone Next Kol End Select End With End With End If End Sub
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Nej, jeg kan godt skrive i cellen, selvfølgelig kun noget der står på listen. Jeg kan ikke se en mulighed for at afskære folk fra at skrive, men kun vælge, kan man sætte den til det?
Jeg kan godt se hvorfor det ikke virker når man trykker Enter, for så er ActiveCell jo nedenunder hvor der ingenting står. For skriver jeg i cellen ovenover en celle med en tekst på listen, bliver rækken farven, altså den række man er hoppet ned på.
Hvordan pokker får jeg det til at fungere rigtigt?
Ja, det er jeg også kommet frem til i mellemtiden :-) og så fungerer det rigtigt når jeg vælger fra listen og når jeg skriver og trykker Enter, men jeg skal skrive første bogstav med stort, ellers virker det ikke. Og det virker ikke hvis jeg trykker Tab eller Pil op.
Jeg kan jo selvfølgelig lave flere Cases, hvor jeg også skriver teksten med småt, men kan jeg så få Excel til automatisk at ændre første bogstav til stort?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 11 Then With Worksheets("SYSTEMER") With Target Select Case UCase(Target.Value) ' laver det om til store bogstaver Case "ORDRE" For Kol = 1 To 22 Target.EntireRow.Cells(1, Kol).Interior.Pattern = xlGray8 'lægger baggrundsfarve på rækken fra A til V Next Kol Case "AFSLUTTET" For Kol = 1 To 22 Target.EntireRow.Cells(1, Kol).Interior.Pattern = xlGray16 Next Kol Case "DØD" For Kol = 1 To 22 Target.EntireRow.Cells(1, Kol).Interior.Pattern = xlGray25 Next Kol Case "TABT" For Kol = 1 To 22 Target.EntireRow.Cells(1, Kol).Interior.Pattern = xlGray50 Next Kol Case Else For Kol = 1 To 22 Target.EntireRow.Cells(1, Kol).Interior.Pattern = xlNone Next Kol End Select End With End With End If End Sub
kabbak - din kode virker perfekt! Ligegyldigt om brugeren vil vælge på listen, skrive teksten og trykke Enter, pil op/ned eller hvad de finder på - så fungerer det.
Tusind mange tak! Læg et svar så du kan få point...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.