Farvelæg hel række, hvis markør står i den
Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Generelt
Forum beskrivelse: Hjælp til generel daglig brug af programmet Excel
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=3321
Udskrevet den: 25.Feb.2025 kl. 00:28
Emne: Farvelæg hel række, hvis markør står i den
Besked fra: Ib Hansen
Emne: Farvelæg hel række, hvis markør står i den
Posteringsdato: 12.Jan.2018 kl. 14:33
Hej Forum.
Betinget format Muligvis er dette forklaret i en anden tråd - Jeg ledte, men kunne ikke finde det.
Jeg kan skrive i cellerne C2:N2 + R2:T2. Hvis musen placeres i en af cellerne, vil jeg godt have de samme celler C2:N2 + R2:T2 til at vise f.eks. lysegult eller lysegrå.
Herefter har jeg 200 rækker ned af, men det er vel bare at kopiere formatet ned i de aktuelle rækker.
På forhånd tak
Ib
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Svar:
Besked fra: EXCELGAARD
Posteringsdato: 12.Jan.2018 kl. 15:52
Indsæt denne i Worksheet modulet:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Selection, Range("C2:N2")) Is Nothing And _ Intersect(Selection, Range("R2:T2")) Is Nothing Then Range("C2:N2,R2:T2").Interior.ColorIndex = xlNone Else Range("C2:N2,R2:T2").Interior.Color = rgbYellow End If
End Sub | Og, jo, du kan bare udvide med de række, du skal bruge 
------------- Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
Besked fra: EXCELGAARD
Posteringsdato: 12.Jan.2018 kl. 15:59
Denne her kan klare dine 200 rækker:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("C2:N200,R2:T200").Interior.ColorIndex = xlNone If Intersect(Selection, Range("C2:N200")) Is Nothing And _ Intersect(Selection, Range("R2:T200")) Is Nothing Then Exit Sub Range("C" & ActiveCell.Row & ":N" & ActiveCell.Row & ",R" & ActiveCell.Row & ":T" & ActiveCell.Row).Interior.Color = rgbYellow
End Sub |
------------- Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
Besked fra: EXCELGAARD
Posteringsdato: 12.Jan.2018 kl. 16:03
Og, her har du et regneark, med koden indbygget: www.excelgaard.dk/Files/Workbooks/DRF/MarkCellRows.XLSm www.excelgaard.dk/Files/Workbooks/DRF/MarkCellRows.XLSm
------------- Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
Besked fra: Ib Hansen
Posteringsdato: 12.Jan.2018 kl. 16:30
Mit ark er låst. Derfor skal det låses op, før koden køres. Og låses igen, når koden er kørt. Det virker fint 
uploads/1125/Vagtliste_test.xlsm" rel="nofollow - Test Ark
Men koden sletter eksisterende farver i skemaet. Det kunne undgås med en Betinget format, der bare ville farvelægge oven på eksisterenede farver. Farven gul er også meget skrap, men det kan nok løses med en RGB(kode) i stedet.
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: Ib Hansen
Posteringsdato: 12.Jan.2018 kl. 16:34
Koden konflikter også med udskriftskoden 
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: EXCELGAARD
Posteringsdato: 12.Jan.2018 kl. 19:14
Du kan, naturligvis, selv vælge hvilke(n) farve(r) som makroen skal 'defaulte' til - jeg valgte blot ingen farvelægning, da jeg ikke vidste bedre - men, du kan jo blot selv indlægge de(n) farve(r) som du ønsker.
Jeg valgte blot gul (rgbYellow) som markeringsfarve, fordi, det var den farve, som du selv nævnte i dit spørgsmål - igen, er du velkommen til selv at vælge din markeringsfarve.
Men, jeg forstår ikke, hvordan makroen kan konflikte med din udskriftskode?!? Min makro laver overhovedet ingen udskriftsindstillinger???
------------- Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
Besked fra: Ib Hansen
Posteringsdato: 12.Jan.2018 kl. 19:44
Jeg har farvelagt enkelte kolonner i arket.
Koden starter med Range("C2:N200,R2:T200").Interior.ColorIndex = xlNone, hvilket fjerne al farven fra Range, når koden køres.
Men det kan jeg løse ved at farvelægge kolonnerne vha. et Betinget Format i de rækker, koden ikke fjerner farven fra. -----------
Som markeringsfarve bruger jeg Interrior.Color = RGB(255, 255, 200) som er en svag gul farve. Interrior.Coler = rgbYellow er en meget stærk gul farve. Muligvis vælger jeg i stedet en meget lysegrå farve.
Så det er også løst. -----------
Mht. min printerkode i arket. Den udskriver kun de udfyldte rækker og undlader at udskrive alle tomme rækker ned til række 200.
Række-markerings-koden starter med at låse arket op. Herefter aktiveres koden, der farvelægger rækken. Og så låses arket igen.
Printerkoden er sat til Range("C2:C200"). Når printerkoden kører, søger den ned igennem rækkerne, hvorefter den skjuler alle tomme rækker.
I den første tomme række bliver arket låst igen af række-markerings-koden. Det får printerkoden til at lave en BUG.
Men med lidt vilje, skal jeg nok også få det løst  Når og hvis jeg får løst det sidste problem, markerer jeg tråden som "Løst" 
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: EXCELGAARD
Posteringsdato: 12.Jan.2018 kl. 19:56
Jeg vil anbefale dig, at benytte en af RGB konstanterne, fremfor RGB() funktionen, da dette både gør din kode hurtigere, mere fejlfri, og lettere, at læse.
Du kan finde dem alle sammen her: www.excelgaard.dk/Bib/rgbFarver/Tabel/ www.excelgaard.dk/Bib/rgbFarver/Tabel/
Den lysegule farve, som du efterspørger, hedder 'rgbLemonChiffon' (har RGB værdierne 255, 250, 205, hvilket er meget tæt på dine værdier)
------------- Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
Besked fra: Ib Hansen
Posteringsdato: 12.Jan.2018 kl. 20:04
Det vil jeg gøre, men bruger nok 'rgbGainsboro' 
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: EXCELGAARD
Posteringsdato: 12.Jan.2018 kl. 20:06
Kan du ikke blot lade printer koden gøre det samme: Låse arket op først, og derefter låse arket igen bagefter?
For du bruger vel forhåbentlig ikke '.Select', når du løber rækkerne igennem?!? Vel? VEL, ibbermand? 
PS: Og, hvis du gør, så kan du løse problemet, ved at lade...
Application.EnableEvents = False | ...være den første linje i din printer makro, og derefter lade...
Application.EnableEvents = True | ...være den sidste linje i din printer kode.
------------- Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
Besked fra: Ib Hansen
Posteringsdato: 12.Jan.2018 kl. 20:24
Jeg vedhæftede jo arket i mit svar nr. 1, så du kan selv se koden. Den står i Modulet - A06_Udskriv_Skema
Men - Printerkoden låser først arket op.- Næst søger den fra C2 til C213 og finder den første tomme række, der vælges med Select. - Næst skjuler den rækken. - Og det fortsætter den med til slut med Next. - Endelig låser den arket igen.
- Men når den første tomme række bliver 'Selected', aktiveres markerings-koden og så låser arket. - Derved kommer der BUG på 'Selection.EntireRow.Hidden = True' da den ikke kan skjule en række, der er låst.
Det er et spørgsmål om at finde en anden printerkode, men den skal jeg først lede efter på nettet.
'UnprotectAll myPassword = Sheets("Indstil").Range("B1").Value For Each sheet In ActiveWorkbook.Worksheets sheet.Unprotect Password:=myPassword Next sheet 'HideEmptyRows Dim s As String For i = 1 To Range("C2:C213").Count s = i & ":" & i If IsEmpty(Cells(i, 3).Value) Then Rows(s).Select Selection.EntireRow.Hidden = True End If Next 'ProtectAll myPassword = Sheets("Indstil").Range("B1").Value For Each sheet In ActiveWorkbook.Worksheets sheet.Protect Password:=myPassword, AllowFiltering:=True Next sheet |
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: Ib Hansen
Posteringsdato: 12.Jan.2018 kl. 20:34
Application.EnableEvents = False / True løste problemet
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: EXCELGAARD
Posteringsdato: 12.Jan.2018 kl. 21:51
Jeg vedhæftede jo arket i mit svar nr. 1, så du kan selv se koden | Det var derfor, jeg skrev, som jeg skrev - man må ALDRIG bruge '.Select' i sin kode - ALT koding kan klares uden '.Select' (med nogle få ret speciale undtagelser, som jeg er sikker på, at du aldrig kommer til at støde ind i )
Men, du fik løst problemet - så... ROCK ON, Ibbermand 
------------- Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
Besked fra: Ib Hansen
Posteringsdato: 12.Jan.2018 kl. 21:54
Ja, tak for hjælpen 
Nu mangler jeg bare en søgefunktion  Man bliver aldrig færdig og finder hele tiden på nye sjove funktioner, der tager en F****** tid at lave 
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: EXCELGAARD
Posteringsdato: 13.Jan.2018 kl. 07:04
Et regneark bliver aldrig færdig - man holder bare en pause fra at arbejde på det, mens man arbejder på et andet regneark - men, før eller siden vender man tilbage til det 
------------- Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
Besked fra: Bjarnehansen
Posteringsdato: 13.Jan.2018 kl. 07:07
Det kender jeg godt 
------------- Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag. Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK
|
Besked fra: Ib Hansen
Posteringsdato: 13.Jan.2018 kl. 10:01
Jeg har 5-6 projekter, jeg ikke kan blive færdig med, fordi jeg er kørt fast i VBA koderne  Når jeg vender tilbage, har jeg næsten glemt, hvor jeg var kommet til  De bliver nok aldrig færdige 
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: Ib Hansen
Posteringsdato: 13.Jan.2018 kl. 19:19
Jeg havde en fejl i mit ark, jeg ikke forstod.
Når jeg kører en kode, der kræver at arket skal være ubeskyttet, starter koden med at låse arket op. I slutningen af koden, beskytter den hele arket igen.
Jeg kunne ikke forstå, at hver gang jeg testede, om en celle, der burde være låst, nu også var det, var den ulåst.
Jeg stod derfor på fanen "Gennemse" og kunne se knappen "Beskyt ark" - Hver gang jeg klikkede inde i skrivefeltet, der markere en Row med farve, blev arket låst. - Hver gang jeg klikke udenfor skrivefeltet, blev arket låst op. - Jeg deaktiverede derfor farve-koden med REM og så virkede det hele igen.
Hvad er det, der sker med farve-koden, når man klikke udenfor 'Range("C2:N200, R2:T200")' ? Hvorfor låses arket op ?
Lidt ærgelig, da det var en god koden, men som den er nu, kan den ikke bruges 
Dim myPassword As String Dim sheet As Worksheet
'UnprotectAll myPassword = Sheets("Indstil").Range("B1").Value For Each sheet In ActiveWorkbook.Worksheets sheet.Unprotect Password:=myPassword Next sheet
Range("C2:N200,R2:T200").Interior.ColorIndex = xlNone
If Intersect(Selection, Range("C2:N200")) Is Nothing And _ Intersect(Selection, Range("R2:T200")) Is Nothing Then Exit Sub
Range("C" & ActiveCell.Row & ":N" & ActiveCell.Row & ",R" _ & ActiveCell.Row & ":T" & ActiveCell.Row).Interior.Color = rgbLemonChiffon Rem farvetabel - www.excelgaard.dk/Bib/rgbFarver/Tabel/" rel="nofollow">http://www.EXCELGAARD.dk/Bib/rgbFarver/Tabel/ Rem RGB(242, 242, 242) = Lysegrå Rem RGB(255, 255, 204) = Lysegul 'ProtectAll myPassword = Sheets("Indstil").Range("B1").Value For Each sheet In ActiveWorkbook.Worksheets sheet.Protect Password:=myPassword, AllowFiltering:=True Next sheet |
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: EXCELGAARD
Posteringsdato: 13.Jan.2018 kl. 20:19
Som du kan se i koden, så gør koden INTET ved '.Locked' egenskaben ved cellen - så det er ikke min kode, der er noget i vejen med - fejlen må ligge et andet sted...
En grum mistake dukker dog op i mit baghoved: Det er 'Fy, fy, skamme, skamme, a, a, niks, niks, slut, forbudt' at benytte VBA kodeord som variabel navne!
Så, at benytte variabel navne som 'sheet' er en dødssynd! Du risikere, at VBA ikke ved, hvad du hentyder til: Objektet eller din variabel.
Jeg havde faktisk problemet, så sent som i sidste uge, hvor jeg skulle fejl søge på en kode for en anden person, og, hvor det viste sig, at fejlen var noget så enkelt, som at han havde benyttet 'Name' som variabel navn! Vi rettede variabel navnet til 'MyName', der ikke er et VBA kodeord, og, vupti - koden virkede...
Enten er det, dette, der er fejlen, eller osse er det fordi, du undervejs gør noget andet i en anden makro (jeg mistænker dig, for at fortage noget kopiering i din kode?).
Men, under alle omstændigheder bør du ændre dit variabel navn til noget andet en 'sheet'. Jeg benytter altid variablen, 'WS', for 'Worksheet'.
------------- Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
Besked fra: Ib Hansen
Posteringsdato: 13.Jan.2018 kl. 20:36
Jamen nu har jeg ikke så frygteligt meget forstand på VBA og gør sikkert en masse forkert !!Men jeg var lige en tur i Bilka !! Og mellem Flæskestegen og Roastbeefen, gik der en prås op for mig. Man tænke VBA på de mærkeligste steder og tidspunkter - Hmmmm 
Selvfølgelig - Når man er udenfor området der farver rækkerne = Is Nothing Then Exit Sub Den har låst arket op først i koden, men her hopper helt ud af koden og når aldrig ned til låse koden.
I stedet for Then Exit Sub skal den hedde Then GoTo ud Og så skal ud: være lige over låse koden 
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim myPassword As String Dim sheet As Worksheet If Sheets("Indstil").Range("C19") = 1 Then Exit Sub Application.ScreenUpdating = False 'UnprotectAll myPassword = Sheets("Indstil").Range("B1").Value For Each sheet In ActiveWorkbook.Worksheets sheet.Unprotect Password:=myPassword Next sheet
Range("C2:N200,R2:T200").Interior.ColorIndex = xlNone If Intersect(Selection, Range("C2:N200")) Is Nothing And _ Intersect(Selection, Range("R2:T200")) Is Nothing Then GoTo ud Range("C" & ActiveCell.Row & ":N" & ActiveCell.Row & ",R" _ & ActiveCell.Row & ":T" & ActiveCell.Row).Interior.Color = rgbLemonChiffon Rem farver - http://www.EXCELGAARD.dk/Bib/rgbFarver/Tabel/ Rem RGB(242, 242, 242) = Lysegrå Rem RGB(255, 255, 200) = Lysegul ud: 'ProtectAll myPassword = Sheets("Indstil").Range("B1").Value For Each sheet In ActiveWorkbook.Worksheets sheet.Protect Password:=myPassword, AllowFiltering:=True Next sheet End Sub |
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: excelent
Posteringsdato: 13.Jan.2018 kl. 20:42
blærerøv :-)
------------- Jeg anvender Excel 2016 DK. Hvad anvender DU ? HUSK TILBAGEMELDING !!!
|
Besked fra: Ib Hansen
Posteringsdato: 13.Jan.2018 kl. 20:44
Tak Excelent - Ha ha ha. Det er faktisk dig, der har lært mig at bruge Then GoTo 
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: excelent
Posteringsdato: 13.Jan.2018 kl. 20:46
ja det ik så ringe med de der AHA oplevelser
------------- Jeg anvender Excel 2016 DK. Hvad anvender DU ? HUSK TILBAGEMELDING !!!
|
Besked fra: Ib Hansen
Posteringsdato: 13.Jan.2018 kl. 20:50
Næ.. Jeg tager mig selv i at tænke VBA på de mest mærkelige tidspunkter, men pludselig kan man alligevel se løsningen for sig eller dét, man tror er løsningen. Og så er det bare med at komme hjem og få det prøvet 
Dem har jeg rigtigt mange af 
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
|