Avatar billede nph12 Nybegynder
02. juni 2008 - 15:47 Der er 8 kommentarer og
1 løsning

VBA - slet rækker i Excel

Hej
Jeg har to ark, hvor det ene ark indeholder data (sagsnummer) over hvilke rækker, som skal slette i det andet ark.

Hvordan laver jeg noget VBA-kode, så jeg kan få slettet rækkerne i mit Excel-ark?
Avatar billede nph12 Nybegynder
02. juni 2008 - 23:07 #1
Hvordan læser jeg fra to ark?

Hvordan igennemløber jeg en kolonne?

Hvordan sletter jeg en række?
Avatar billede excel123 Nybegynder
03. juni 2008 - 03:02 #2
Kan du forklare lidt mere?
I hvilke kolonne har du sagsnummer?
Hvilke rækker skal slettes i andet ark?
Avatar billede nph12 Nybegynder
03. juni 2008 - 08:24 #3
De to ark indeholder følgende:

Ark1 indeholder 4 kolonner:
A              B            C            D
Sags nr.    Adresse      Post nr.        Yderligere oplysninger

Ark2 indeholder 1 kolonne:
A
Sags nr.

Ud fra Ark2s sags nr. skal tilsvarende sags nr. slettes i Ark1 (hele rækken skal slettes).
Avatar billede jkrons Professor
03. juni 2008 - 09:34 #4
Prøv med

Sub SletRaekke()
    For Each c In Sheets(2).Range("a:a").Cells
        If c.Value = "" Then Exit Sub
            a = c.Value
            For Each x In Sheets(1).Range("a:a")
                If x.Value = a Then
                    x.EntireRow.Delete shift:=xlip
                End If
            Next x
    Next c
End Sub
Avatar billede jkrons Professor
03. juni 2008 - 09:35 #5
Sorry xlip skal være xlUp
Avatar billede nph12 Nybegynder
03. juni 2008 - 12:15 #6
Super. Det virker som det skal:-)

Er du sød lige at forklare, hvordan koden virker (gerne linie for linie)?
Avatar billede jkrons Professor
03. juni 2008 - 12:43 #7
Den første linie læser alle cellerne i Ark2, kolonne A en ad gangen.
Linie 2 sikrer, at makroen stopper, hvis cellen i ark2 er tom. Den går altså ud fra, at der ikke er tomme celler i listen over sager, der skal slettes.
Den tredje linie "husker" det, der står i cellen, hvis den ikke er tom.
Den næste linie tager så fat i cellerne i Ark1, kolonne A og gennemgår disse en ad gangrn.
De næste tre linier sammenligner hver celle i A-kolonnen i Ark1 med den "huskede" værdi. Hvis disse værdier er ens (værdien i ark1 findes også i ark2) slettes hele rækken.
Den næste linie fortsætter til den næste celle i Ark1, indtil alle celler er sammenlignet med den første værdi fra ark2. Den sidste linie spinger så til den næste celle i ark2, og hele processen gentages indtil der ikke er flere udfyldte linier i ark2.

Håber at det var forståeligt.
Avatar billede nph12 Nybegynder
03. juni 2008 - 14:39 #8
Endnu en gang mange tak for hjælpen:-)
Avatar billede jkrons Professor
03. juni 2008 - 19:02 #9
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

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