Avatar billede claus_luchow Nybegynder
04. juni 2003 - 14:27 Der er 6 kommentarer og
1 løsning

Makro. Slet tomme rækker

Hej kloge Excel-hoveder

Hvis det er muligt, hvordan skal makroen (i Excel 2000 DK) se ud ved følgende:

· Gennemgå hele projektmappen
· Hvis der er rækker (vilkårligt fra gang til gang), som er tomme, skal rækken slettes og data flyttes op.

Venlig hilsen

Claus Lüchow
Avatar billede janvogt Praktikant
04. juni 2003 - 14:42 #1
Du kan prøve denne:

Sub SletRækker()
'Alle rækker i første markerede kolonne der indeholder 0
'eller er tomme Slettes
Dim r As Range
Dim i As long
Set r = Selection.Columns(1)
For i = r.Rows.Count To 1 Step -1
If r.Cells(i).Value = 0 Then
r.Cells(i).EntireRow.Delete
End If
Next i
End Sub
Avatar billede overchord Nybegynder
04. juni 2003 - 14:48 #2
Det kommer lidt an paa: vil du loebe alle taenkelige raekker igennem i arket (alle ~ 65000) og slette blanke? Jeg antager i eksemplet at du loeber igennem den foerste 1000 raekker i hvert ark:

x = sheets.count 'Taeller antal ark i projektet

for i = 1 to x
sheets(i).select

for z = 1 to 1000 'antallet af raekker
if range("A" & z) <> "" then 'Antager at du altid har noget skrevet i kolonne A for de raekker der ikke er tomme
else
range("A" & z).EntireRow.Delete xlUp
z = z-1 'Da der kan vaere to tomme raekker i traek
end if
next z
next i
Avatar billede janvogt Praktikant
04. juni 2003 - 14:55 #3
Mit eksempel løber kun de rækker igennem du har markeret.
Avatar billede bak Seniormester
04. juni 2003 - 15:31 #4
Her slettes alle tomme linier i alle ark i projektmappen
de slettes kun hvis hele rækken er tom


Sub sletlinier()
Dim slut As Long
Dim ws As Worksheet
Dim x As Long
Dim rng1 As Range



For Each ws In ActiveWorkbook.Worksheets
slut = ws.UsedRange.Rows.Count
For x = slut To 1 Step -1
    Set rng1 = ws.Rows(x).EntireRow
    If Application.WorksheetFunction.CountA(rng1) < 1 Then ws.Rows(x).Delete
Next
Next
End Sub
Avatar billede claus_luchow Nybegynder
04. juni 2003 - 15:58 #5
Tak til jer alle 3 for gode bud på løsninger. Dog mener jeg, at kun Bak giver det korrekte svar, og bør tildeles point herfor. Ret mig gerne, hvis jeg tager fejl.

For de løsninger som Janvogt og Overchord kommer med gælder det, at makroen sletter alle rækker som i kolonne A ikke har noget indhold.
Dette er ikke aktuelt for opgaven, da sletningen ikke må være kolonnebetinget.

Ligeledes gælder det også for de 2 løsninger, at makroerne tilsyneladende kører uendeligt (også selvom der kun er markeret X-rækker), og dermed ikke returnerer et gyldigt resultat.

Hvis Bak kaster et svar ind, giver jeg point til dette.
Jeg vil dog også gerne honorere Janvogt og Overchord, i det tilfælde at jeg tager fejl i min vurdering af løsningsforslagene.

Venlig hilsen Claus Lüchow

NB Videre opfølgning fra min side, sker nu efter Pinse :-)
Avatar billede bak Seniormester
04. juni 2003 - 16:07 #6
ok, her er så svaret :-)
Avatar billede bak Seniormester
04. juni 2003 - 16:10 #7
nå, nu igen ......
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