Avatar billede 1977_a Nybegynder
04. maj 2011 - 21:42 Der er 1 kommentar

Hjælp til forenkling af VBA kode

Hej,

Jeg har nedenstående kode i et ark - men det tager en krig (ca 20 sek) at køre den. Nogen der kan hjælpe med at forenkle den?

Kort fortalt har jeg 12 linjer med en dropdown, hvor man kan vælge "ja" eller "nej".

Hvis man vælger "ja", skal en vis mængde rækker vises, afhængigt af i hvilken række (af 1-12) valget foretages.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Range("c2").Value <> "Ja" Then
        Rows("18:35").EntireRow.Hidden = True
    Else
        Rows("18:35").EntireRow.Hidden = False
  End If
   
    If Range("c3").Value <> "Ja" Then
        Rows("36:53").EntireRow.Hidden = True
    Else
        Rows("36:53").EntireRow.Hidden = False
  End If

    If Range("c4").Value <> "Ja" Then
        Rows("54:80").EntireRow.Hidden = True
    Else
        Rows("54:80").EntireRow.Hidden = False
  End If
   
    If Range("c5").Value <> "Ja" Then
        Rows("81:107").EntireRow.Hidden = True
    Else
        Rows("81:107").EntireRow.Hidden = False
  End If
   
    If Range("c6").Value <> "Ja" Then
        Rows("108:118").EntireRow.Hidden = True
    Else
        Rows("108:118").EntireRow.Hidden = False
  End If
 
    If Range("c7").Value <> "Ja" Then
        Rows("119:150").EntireRow.Hidden = True
    Else
        Rows("119:150").EntireRow.Hidden = False
  End If
     
    If Range("c8").Value <> "Ja" Then
        Rows("151:177").EntireRow.Hidden = True
    Else
        Rows("151:177").EntireRow.Hidden = False
    End If
     
    If Range("c9").Value <> "Ja" Then
        Rows("178:188").EntireRow.Hidden = True
    Else
        Rows("178:188").EntireRow.Hidden = False
    End If

    If Range("c10").Value <> "Ja" Then
        Rows("189:196").EntireRow.Hidden = True
    Else
        Rows("189:196").EntireRow.Hidden = False
    End If

    If Range("c11").Value <> "Ja" Then
        Rows("197:208").EntireRow.Hidden = True
    Else
        Rows("197:208").EntireRow.Hidden = False
    End If
   
    If Range("c12").Value <> "Ja" Then
        Rows("209:358").EntireRow.Hidden = True
    Else
        Rows("209:358").EntireRow.Hidden = False
    End If

    If Range("c13").Value <> "Ja" Then
        Rows("359:444").EntireRow.Hidden = True
    Else
        Rows("359:444").EntireRow.Hidden = False
    End If
   
End Sub
Avatar billede supertekst Ekspert
04. maj 2011 - 23:27 #1
I første omgang kunne du prøve at tilføje *):

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.ScreenUpdating = False  '<-------- *)
   
    If Range("c2").Value <> "Ja" Then
        Rows("18:35").EntireRow.Hidden = True
    Else
        Rows("18:35").EntireRow.Hidden = False
  End If
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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