Avatar billede laurbjerg Nybegynder
17. august 2004 - 11:46 Der er 6 kommentarer og
2 løsninger

makro slet linier

Jeg har nedenstående makro og vil nu at det også skal virke på linierne 241 til 256:

Sub SkjulRækker()
Dim vStartRow As Long, vEndRow As Long
  Dim vCounter As Long
  vStartRow = 197 'Her sætter du værdien på startrækken
  vEndRow = 215 'Her sætter du værdien på slutrækken
 
    For vCounter = vStartRow To vEndRow
    If Cells(vCounter, 4).Value = "" Then '4 angiver fjerde kolonne (D)
        'slet indhold af A.
        Cells(vCounter, 1).Value = "" '1 angiver kolonne 1 (A)
    End If
    Next

Range("A12:A256").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End Sub

Hvordan gør man det ?
Avatar billede sjap Praktikant
17. august 2004 - 11:53 #1
Du kan f.eks. gøre rækkenumrene til en del af procedurekaldet:

Sub SkjulRækker(vStartRow As Long, vEndRow As Long)
  Dim vCounter As Long
 
    For vCounter = vStartRow To vEndRow
    If Cells(vCounter, 4).Value = "" Then '4 angiver fjerde kolonne (D)
        'slet indhold af A.
        Cells(vCounter, 1).Value = "" '1 angiver kolonne 1 (A)
    End If
    Next

Range("A12:A256").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End Sub

oG så kalder du funktione to gange fra en anden sub:

Sub SkjulRækker2()
    SkjulRækker(197, 215)
    SkjulRækker(241, 256)
EndSub
Avatar billede sjap Praktikant
17. august 2004 - 11:57 #2
Ups. Kaldet i den nye sub skrives vist som

Sub SkjulRækker2()
    SkjulRækker 197, 215
    SkjulRækker 241, 256
EndSub

Og så kan Range....Hidden=true evt. også flyttes til denne sub.
Avatar billede sjap Praktikant
17. august 2004 - 12:08 #3
Med alle foreslåede ændringer kan dine funktioner mere logisk ændres til

Sub SletIndholdiA(StartRow As Long, EndRow As Long)
Dim vCounter As Long
For vCounter = StartRow To EndRow
    If Cells(vCounter, 4).Value = "" Then '4 angiver fjerde kolonne (D)
        'slet indhold af A.
        Cells(vCounter, 1).Value = "" '1 angiver kolonne 1 (A)
    End If
Next
End Sub

Sub SkjulRækker2()
SletIndholdiA 197, 215
SletIndholdiA 241, 256
Range("A12:A256").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
EndSub
Avatar billede sjap Praktikant
17. august 2004 - 12:13 #4
Ups. Der havde selvfølgelig indsneget sig et par fejl. Brug nedenstående i stedet.

Sub SletIndholdiA(StartRow As Long, EndRow As Long)
Dim vCounter As Long
 
For vCounter = StartRow To EndRow
    If Cells(vCounter, 4).Value = "" Then '4 angiver fjerde kolonne (D)
        'slet indhold af A.
        Cells(vCounter, 1).Value = "" '1 angiver kolonne 1 (A)
    End If
Next

End Sub


Sub SkjulRækker()

SletIndholdiA 197, 215
SletIndholdiA 241, 256
Range("A12:A256").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True

End Sub
Avatar billede laurbjerg Nybegynder
17. august 2004 - 12:15 #5
Hvordan henviser jeg til de 2 Sub på engang ?
Avatar billede sjap Praktikant
17. august 2004 - 12:19 #6
Du skal kun henvise til SkjulRækker (den klarer selv kaldet til den anden).
Avatar billede laurbjerg Nybegynder
17. august 2004 - 12:25 #7
tak for hjælpen
Avatar billede sjap Praktikant
17. august 2004 - 12:26 #8
:0)
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