Avatar billede h_s Forsker
09. november 2008 - 12:05 Der er 5 kommentarer og
1 løsning

Kopier bestemte rækker over i nyt ark

I et ark med ca. 13.000 rækker, har jeg i kollonne E et tal, der er differencen mellem kolonne D og C.

Når differencen er <> 0 vil jeg gerne have kopierret hele rækken over i et nyt ark.

Hvordan gør jeg det?
Avatar billede kabbak Professor
09. november 2008 - 12:36 #1
Sub Copy_differencen()
    Dim RW As Long, Data1 As Variant, Uddata() As Variant
    Dim intI As Long, intJ As Long, Synlig As Boolean
    Dim FraArk As String, TilArk As String
    Synlig = False    '
    FraArk = "Ark1" ' arket der kopieres fra
    TilArk = "Ark2" ' arket der kopieres til
    If Application.DisplayStatusBar Then
        Synlig = True
    Else
        Synlig = False
        Application.DisplayStatusBar = True
    End If

    ThisWorkbook.Sheets(TilArk).Rows("2:65536").ClearContents
    Application.ScreenUpdating = False
    Application.Calculation = xlManual

    RW = ThisWorkbook.Worksheets(FraArk).Range("E65536").End(xlUp).Row
    Data1 = ThisWorkbook.Sheets(FraArk).Range("E1:E" & RW)

    For intI = 1 To UBound(Data1)
        If Data1(intI, 1) <> 0 Then
            intJ = ThisWorkbook.Sheets(TilArk).Range("E65536").End(xlUp).Row + 1
            ThisWorkbook.Sheets(FraArk).Range("A" & intI).EntireRow.Copy ThisWorkbook.Sheets(TilArk).Range("A" & intJ)
        End If
        Application.StatusBar = " Kikker på række " & intI & " af " & RW & " heraf kopieret " & intJ - 3
    Next
    Application.StatusBar = ""
    MsgBox "Færdig"
    If Not Synlig Then Application.DisplayStatusBar = False
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
End Sub
Avatar billede kabbak Professor
09. november 2008 - 12:38 #2
Application.StatusBar = " Kikker på række " & intI & " af " & RW & " heraf kopieret " & intJ - 3

skal være

Application.StatusBar = " Kikker på række " & intI & " af " & RW & " heraf kopieret " & intJ - 1
Avatar billede h_s Forsker
09. november 2008 - 12:44 #3
Kabbak> Den virker næsten fint - Jeg har ændret så den skal være forskellig fra "" (tom). Hvordan får jeg får jeg markoen til at starte i række 1 i stedet for række 2? Jeg har ændret ThisWorkbook.Sheets(TilArk).Rows("2:65536").ClearContents
til ThisWorkbook.Sheets(TilArk).Rows("1:65536").ClearContents - Det virker ikke!
Avatar billede kabbak Professor
09. november 2008 - 12:47 #4
Sub Copy_differencen()
    Dim RW As Long, Data1 As Variant, Uddata() As Variant
    Dim intI As Long, intJ As Long, Synlig As Boolean
    Dim FraArk As String, TilArk As String
    Synlig = False    '
    FraArk = "Ark1" ' arket der kopieres fra
    TilArk = "Ark2" ' arket der kopieres til
    If Application.DisplayStatusBar Then
        Synlig = True
    Else
        Synlig = False
        Application.DisplayStatusBar = True
    End If

    ThisWorkbook.Sheets(TilArk).Rows("1:65536").ClearContents
    Application.ScreenUpdating = False
    Application.Calculation = xlManual

    RW = ThisWorkbook.Worksheets(FraArk).Range("E65536").End(xlUp).Row
    Data1 = ThisWorkbook.Sheets(FraArk).Range("E1:E" & RW)

    For intI = 1 To UBound(Data1)
        If Data1(intI, 1) <> 0 Then
            intJ = ThisWorkbook.Sheets(TilArk).Range("E65536").End(xlUp).Row + 1
            If ThisWorkbook.Sheets(TilArk).Range("E1") = "" Then intJ = 1
            ThisWorkbook.Sheets(FraArk).Range("A" & intI).EntireRow.Copy ThisWorkbook.Sheets(TilArk).Range("A" & intJ)
        End If
       
        Application.StatusBar = " Kikker på række " & intI & " af " & RW & " heraf kopieret " & intJ
    Next
    Application.StatusBar = ""
    MsgBox "Færdig"
    If Not Synlig Then Application.DisplayStatusBar = False
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
End Sub
Avatar billede h_s Forsker
09. november 2008 - 13:14 #5
Det virker - Tak!
Smid et svar!
Avatar billede kabbak Professor
09. november 2008 - 14:56 #6
et svar ;-))
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