Avatar billede schoesler Juniormester
24. februar 2019 - 20:32 Der er 6 kommentarer og
2 løsninger

VBA kode

Hej Eksperter

Jeg har brug for jeres hjælp.!

tænkte at lave en macro i VBA

har et beskyttet regneark som indeholder noget tidsregistrering. Jeg vil gerne tilføje nogle rækker i forlængelse af regnearket samt kopiere formlerne med.

Jan
24. februar 2019 - 21:42 #1
Her er lidt at lege videre med - god fornøjelse

Sub schoelser_954808()
    Dim ws As Worksheet, i As Integer, lNextRow As Long
    Const numberOfColumns = 7
   
    Set ws = ActiveSheet
    lNextRow = ws.Range("A1").End(xlDown).Row + 1
   
    With ws
        .Unprotect Password:=""
        For i = 1 To numberOfColumns 'checker sidste række for formler - en kolonne ad gangen
            If .Cells(lNextRow - 1, i).HasFormula Then
                .Cells(lNextRow, i).Formula = .Cells(lNextRow - 1, i).Formula 'kopierer formler
            End If
        Next i
        .Protect Password:=""
    End With
End Sub
Avatar billede schoesler Juniormester
24. februar 2019 - 23:00 #2
Hej smartoffice_dk

Det er netop løsningen. dog mangler jeg at kunne få kanterne med i kopieringen.

Jan
24. februar 2019 - 23:17 #3
Sub schoelser_954808()
    Dim ws As Worksheet, i As Integer, lNextRow As Long
    Const numberOfColumns = 7
   
    Set ws = ActiveSheet
    lNextRow = ws.Range("A1").End(xlDown).Row + 1
   
    With ws
        .Unprotect Password:=""
        For i = 1 To numberOfColumns 'checker sidste række for formler - en kolonne ad gangen
            If .Cells(lNextRow - 1, i).HasFormula Then
                .Cells(lNextRow, i).Formula = .Cells(lNextRow - 1, i).Formula 'kopierer formler
            End If
            .Cells(lNextRow - 1, i).Copy
            .Cells(lNextRow, i).PasteSpecial xlPasteFormats
        Next i
        .Protect Password:=""
    End With
End Sub
24. februar 2019 - 23:33 #4
Alle de gange koden ovenover kommer til at kopiere kan godt gøre koden lidt sløv, specielt ved mange kolonner, så copy/past nummer skal kun gøres én gang, som her...

<DIV>
Sub schoelser_954808()
    Dim ws As Worksheet, i As Integer, lNextRow As Long
    Const numberOfColumns = 7
   
    Set ws = ActiveSheet
    lNextRow = ws.Range("A1").End(xlDown).Row + 1
   
    With ws
        .Unprotect Password:=""
        For i = 1 To numberOfColumns 'checker sidste række for formler - en kolonne ad gangen
            If .Cells(lNextRow - 1, i).HasFormula Then
                .Cells(lNextRow, i).Formula = .Cells(lNextRow - 1, i).Formula 'kopierer formler
            End If
        Next i
        .Range(.Cells(lNextRow - 1, 1), .Cells(lNextRow - 1, numberOfColumns)).Copy
        .Range(.Cells(lNextRow, 1), .Cells(lNextRow, numberOfColumns)).PasteSpecial xlPasteFormats
        .Protect Password:=""
    End With
End Sub
</DIV>
24. februar 2019 - 23:33 #5
Glem <div></div>
Avatar billede schoesler Juniormester
25. februar 2019 - 08:07 #6
Hej Flemming

Det virker med undtagelse af formlerne. feks er en formel =HVIS(E3>=0;D3;" ") og når den bliver kopieret er den stadig =HVIS(E3>=0;D3;" ") men burde være =HVIS(E4>=0;D4;" ")

Jan
25. februar 2019 - 11:52 #7
Sub NyRaekke()
    With ActiveSheet
        .Unprotect Password:=""
        Range(.Range("B" & Rows.Count).End(xlUp), .Range("B" & Rows.Count).End(xlUp).Offset(0, 24)).Copy Destination:=.Range("B" & Rows.Count).End(xlUp).Offset(1, 0)
        .Protect Password:=""
    End With
End Sub
25. februar 2019 - 15:01 #8
Denne udgave sletter gamle værdier fra forrige linie

[div]Sub schoelser_954808()
    Dim ws As Worksheet, i As Integer, lNextRow As Long
    Const numberOfColumns = 7
   
    Set ws = ActiveSheet
    lNextRow = ws.Range("A1").End(xlDown).Row + 1
   
    With ws
        .Unprotect Password:=""
        .Range(.Cells(lNextRow - 1, 1), .Cells(lNextRow - 1, numberOfColumns)).Copy Destination:=.Range(.Cells(lNextRow, 1), .Cells(lNextRow, numberOfColumns))
        For i = 1 To numberOfColumns
            If Not .Cells(lNextRow - 1, i).HasFormula Then 'Ryd op
                .Cells(lNextRow, i).Value = ""
            End If
        Next i
        .Protect Password:=""
    End With
End Sub[<div]
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