Avatar billede zx-12r Nybegynder
17. februar 2011 - 10:29 Der er 6 kommentarer og
1 løsning

slette rækker

 
Hej,
 
jeg leder efter en simpel makro.
 
Jeg har en masse rækker hvor i Kolonne A står styk antal, og kolonne B står en beskrivelse.
 
Hvis A > 0 så skal den ikke slette rækken.
Hvis A < eller = 0 så skal den slette rækken og rykke rækkerne op.
 
Jeg har brugt.:
 
Sub Sletlinier()
 
x = Sheets.Count 'Tæller antal ark i projektet
 
For i = 1 To x
Sheets(i).Select
 
For z = 1 To 5 'Antallet af rækker
If Range("A" & z) <> "" Then 'Antager at du altid har noget skrevet i kolonne A for de rækker der ikke er tomme
Else
Range("A" & z).EntireRow.Delete xlUp
z = z - 1 'Da der kan vaere to tomme rækker i træk
End If
Next z
Next i
 
End Sub
 
Men den er forkert.
For det første sletter den ikke hvis der står 0 i kolonne A.
For det andet gør (de 2 tomme rækker i træk) at den bare bliver ved og ved da den hele tiden henter endnu tom række op.
Den skal kun gøre det med første ark, behøver ikke de andre ark igennem
 
 
Med venlig hilsen

Thomas
Avatar billede finb Ekspert
17. februar 2011 - 12:59 #1
Brug evt. autofilter,
markér de fundne rækker og tryk:
ctrl og minus-tegnet.

mvh finb
Avatar billede zx-12r Nybegynder
17. februar 2011 - 13:46 #2
Skal gerne bruge en makro til at gøre det.
Avatar billede kabbak Professor
17. februar 2011 - 19:22 #3
du skal lave din tæller om, så den tæller baglæns

For z = 1 To 5 'Antallet af rækker

skal være
For z = 5 To 1 step -1 'Antallet af rækker


Sub Sletlinier()

x = Sheets.Count 'Tæller antal ark i projektet

For i = 1 To x
Sheets(i).Select

For z = 5 To 1 step -1 'Antallet af rækker
If Range("A" & z) <= 0 Then
Range("A" & z).EntireRow.Delete xlUp

Next z
Next i

End Sub
Avatar billede zx-12r Nybegynder
18. februar 2011 - 09:15 #4
Hvis jeg bruger den ovenstående makro så skriver den.:
Compile error:
next without For
Avatar billede zx-12r Nybegynder
18. februar 2011 - 09:19 #5
Jeg fik den til at fungere ved at bruge dennne.

Dog er der en fejl.

Den sletter også de felter hvor der står en overskrift tekst.

F.eks. A1,B1,C1 er overskrifter etc.


Sub Sletlinier()

x = Sheets.Count 'Tæller antal ark i projektet

For i = 1 To x
Sheets(i).Select

For z = 15 To 1 Step -1 'Antallet af rækker
If Range("A" & z) <= 0 Then 'Antager at du altid har noget skrevet i kolonne A for de rækker der ikke er tomme
Else
Range("A" & z).EntireRow.Delete xlUp

End If
Next z
Next i

End Sub
Avatar billede zx-12r Nybegynder
18. februar 2011 - 09:21 #6
Ok, den virker med:

Sub Sletlinier()

x = Sheets.Count 'Tæller antal ark i projektet

For i = 1 To x
Sheets(i).Select

For z = 15 To 1 Step -1 'Antallet af rækker
If Range("A" & z) <= 0 Then 'Antager at du altid har noget skrevet i kolonne A for de rækker der ikke er tomme

Range("A" & z).EntireRow.Delete xlUp

End If
Next z
Next i

End Sub


havde smidt en else forkert ind.


Kabak gider du smide et svar. :)
Avatar billede kabbak Professor
18. februar 2011 - 16:46 #7
Godt at du fil det til at virke ;-))

husk altid at gå baglæns, når der slettes rækker
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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