Avatar billede LS-Falster Juniormester
24. oktober 2011 - 09:01 Der er 4 kommentarer og
1 løsning

Afspille makro ved ændring i et andet ark

Hej
Jeg har lavet følgende makro, som jeg har placeret i ThisWorkbook:
Public Sub Skjul_tomme_linjer()
Dim r
For Each r In Range("c5:c59")
If r = "<Lag ikke berørt>" Then
    r.EntireRow.Hidden = True
End If
Next
End Sub

Jeg vil gerne have, at makroen skal afspilles i Ark1, så snart at der ændres i indholdet i Ark2 (Ark 2 er som udgangspunkt tomt, bortset fra en overskrift i celle A1).

Hvordan løses det?
Avatar billede iver_mo Nybegynder
24. oktober 2011 - 09:14 #1
Hvis makroen skal køres uanset hvilken celle der ændres i Ark2, så indsætter du understående kode i Ark2


Private Sub Worksheet_Change(ByVal Target As Range)
    Skjul_tomme_linjer
End Sub


Og din egen makro indsætter du i et modul og ændrer den til:


Public Sub Skjul_tomme_linjer()
Dim r
dim ws as worksheet
set ws = thisworkbook.worksheets("Ark1")
For Each r In ws.Range("c5:c59")
  If r = "<Lag ikke berørt>" Then
  r.EntireRow.Hidden = True
  End If
Next
End Sub
Avatar billede LS-Falster Juniormester
24. oktober 2011 - 10:22 #2
Jeg har fulgt din instruktion, men desværre bliver makroen ikke automatisk aktiveret, når jeg laver ændringer i ark2. Der kommer ingen fejlmeddelelse.
Jeg har fjernet makroen fra ThisWorkbook, så den kun står under Module1.
Jeg har omdøbt arknavnene, så koden kommer til at se således ud: 

I Module1 står der følgende:
Public Sub Skjul_tomme_linjer()
Dim r
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("SKRIV DIT HØRINGSSVAR HER")
For Each r In Range("c5:c63")
If r = "<Lag ikke berørt>" Then
    r.EntireRow.Hidden = True
End If
Next
End Sub


I arket "Indsæt konfliktsøgningsresultat"(Ark2) står der følgende:
Private Sub Worksheet_Change(ByVal Target As Range)
    Skjul_tomme_linjer
End Sub

REGNEARKET SKAL KUNNE FUNGERE SÅLEDES:

1) søgeresultat indsættes i arket "Indsæt konfliktsøgningsresultat"
2) resultatet kopieres til arket "SKRIV DIT HØRINGSSVAR HER"
3) Makro der fjerner linjer med indholdet <Lag ikke berørt> skjules fra arket "SKRIV DIT HØRINGSSVAR HER".
Avatar billede iver_mo Nybegynder
24. oktober 2011 - 11:04 #3
Min:
For Each r In ws.Range("c5:c63")


Din:
For Each r In Range("c5:c63")


Det manglende "ws" gør, at du kigger i Ark2 i stedet Ark1. Dvs. makroerne kører men du ser ingen effekt :-)
Avatar billede LS-Falster Juniormester
24. oktober 2011 - 16:27 #4
Ahh!!! Jeg skal jo bare lære at skrive det, som der står - så virker det.

Tak for hjælpen.
Smider du et svar?!!

:-) Lars
Avatar billede iver_mo Nybegynder
24. oktober 2011 - 16:32 #5
Velbekomme ;-)
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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