Avatar billede MC3390 Juniormester
09. februar 2015 - 23:34 Der er 6 kommentarer

Ændre denne VBA kode, så den kan kaldes vha. makro

Der er en der har venlig at lave denne kode til mig

Det koden går er at highligt række man står imed en bjælke.

Dim adr As String
Dim farve

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If adr <> "" Then Rows(adr).Interior.ColorIndex = xlNone
farve = Target.Interior.ColorIndex
Rows(Target.Row).Interior.ColorIndex = 35
adr = Target.Row
End Sub

Den virker fint når jeg sætter den ind på et ark, men jeg kunne godt tænke mig at jeg kan vha. en makro kalde den frem til det aktive ark jeg står i

Mhv. Michael
Avatar billede MC3390 Juniormester
09. februar 2015 - 23:36 #1
Det koden gør, er at highligt den række man står i med en bjælke.
Avatar billede natkatten Mester
10. februar 2015 - 05:10 #2
Eventen Worksheet_SelectionChange virker kun i det aktuelle ark. Så enten skal du kopiere din kode til alle ark eller du skal benytte eventen Workbook_SheetSelectionChange, som virker på hele projektmappen (alle ark).

Koden skal så indsættes i Denne_projektmappe (dansk)/ThisWorkbook (engelsk).

Denne variation kan også benyttes her:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Cells.Interior.ColorIndex = xlNone
With ActiveCell
.EntireRow.Interior.ColorIndex = 35
End With
End Sub

Hvis du ønsker en markering af også den valgte kolonne, så kan den udvides på ganske enkel vis:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Cells.Interior.ColorIndex = xlNone
With ActiveCell
.EntireRow.Interior.ColorIndex = 35
.EntireColumn.Interior.ColorIndex = 35
End With
End Sub

Du kan lege med farverne ved at ændre en eller begge talværdier.
Avatar billede MC3390 Juniormester
10. februar 2015 - 20:39 #3
Hej Natkatten

Virker fint, men jeg ville gerne have den i min PERSONAL, så jeg kan kalde den vha. af en tastatur kombination ligesom en makro og bruge den når jeg har behov for markeringen.

Den skal altså ikke være bundet op på et specifik regneark, men bruges fleksibel.

Kan det lade sig gøre ?

Hilsen Michael
Avatar billede natkatten Mester
10. februar 2015 - 21:51 #4
Ja, du kan så lave den som en "normal" (public) sub procedure:

Public Sub MarkerRække()
Cells.Interior.ColorIndex = xlNone
With ActiveCell
.EntireRow.Interior.ColorIndex = 35
End With
End Sub

Gemmes i et modul. Du kan efterfølgende tildele den en genvejstast (f.eks. CTRL + M) under Makroindstillinger.

Det virker som om, at du har styr på, hvor den skal gemmes, for at den kan benyttes, hver gang Excel starter op. Ellers se f.eks. her:

http://chandoo.org/wp/2013/11/18/using-personal-macro-workbook/
Avatar billede MC3390 Juniormester
10. februar 2015 - 22:58 #5
Hej igen

Ja, jeg ved godt hvor jeg skal lægge det.

Det fungere også med en genvejstast,
men kan man få det til at fungere således at rækken bliver markeret når man flytter cursoren ned/op, således fungerede den anden kode.

Er det for meget ønsketænkning eller er det således at man må vælge en af de 2 løsninger.

Hilsen Michael

PS. jeg beskæftiger mig desværre for lidt med VBA, derfor manglende forståelse/rutine/erfaring
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB