Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Weergeven resultaten 1 tot 4 van 4

Onderwerp: Excel vba code simpler maken

  1. #1
    Senior Member Carloj's avatar
    Geregistreerd
    9 februari 2015
    Vraag is opgelost

    Excel vba code simpler maken

    Ik ben bezig met een vba code die de laatste rij kopieert en deze eronder plakt. Dit wordt gedaan ivm met het voorkomen dat de voorwaardelijke opmaak wordt gekopieerd. Ik heb de volgende werkende code:

    Code:
    Sub Knop1_Klikken()
    '
    ' Knop1_Klikken Macro
    '
    
    '
    Dim ws As Worksheet
    Dim FinalRow As Long
    Set ws = ActiveWorkbook.Sheets("Blad1")
    
    FinalCell = ws.Range("I" & ws.Rows.Count).End(xlUp).Row
    
    ws.Range("F" & FinalCell).Copy
    ws.Range("F" & FinalCell + 1).PasteSpecial xlPasteValues
    ws.Range("H" & FinalCell).Copy
    ws.Range("H" & FinalCell + 1).PasteSpecial xlPasteValues
    ws.Range("J" & FinalCell).Copy
    ws.Range("J" & FinalCell + 1).PasteSpecial xlPasteValues
    ws.Range("K" & FinalCell).Copy
    ws.Range("K" & FinalCell + 1).PasteSpecial xlPasteValues
    ws.Range("P" & FinalCell).Copy
    ws.Range("P" & FinalCell + 1).PasteSpecial xlPasteValues
    ws.Range("Q" & FinalCell).Copy
    ws.Range("Q" & FinalCell + 1).PasteSpecial xlPasteValues
    ws.Range("R" & FinalCell).Copy
    ws.Range("R" & FinalCell + 1).PasteSpecial xlPasteValues
    ws.Range("S" & FinalCell).Copy
    ws.Range("S" & FinalCell + 1).PasteSpecial xlPasteValues
    ws.Range("T" & FinalCell).Copy
    ws.Range("T" & FinalCell + 1).PasteSpecial xlPasteValues
    ws.Range("U" & FinalCell).Copy
    ws.Range("U" & FinalCell + 1).PasteSpecial xlPasteValues
    ws.Range("V" & FinalCell).Copy
    ws.Range("V" & FinalCell + 1).PasteSpecial xlPasteValues
    ws.Range("W" & FinalCell).Copy
    ws.Range("W" & FinalCell + 1).PasteSpecial xlPasteValues
    ws.Range("AF" & FinalCell).Copy
    ws.Range("AF" & FinalCell + 1).PasteSpecial xlPasteValues
        Range("A1:H2").Select
        Application.CutCopyMode = False
    End Sub
    Het probleem is dat deze code traag is en ik denk ook dat dit veel simpler kan. Maar hoe?

  2. #2
    Mega Senior
    Verenigingslid
    SjonR's avatar
    Geregistreerd
    10 november 2016
    Locatie
    Zaandam
    Afstand tot server
    ±116 km
    Probeer het zo eens:

    Code:
    Sub Knop1_Klikken()
    j = Range("I" & Rows.Count).End(xlUp).Row
    
    For Each kolom In Array(6, 8, 10, 11, 16, 17, 18, 19, 20, 21, 22, 23, 32)
        Cells(j + 1, kolom).Value = Cells(j, kolom).Value
    Next
    End Sub

  3. #3
    Als je niet zoveel kolommen steeds zou overslaan zou het een stuk sneller kunnen:
    Code:
    Range("F" & finalRow + 1 & ":AF" & finalRow + 1).Value = Range("F" & finalRow & ":AF" & finalRow).Value
    Groetjes,

    Jan Karel Pieterse
    Excel MVP jkp-ads.com

  4. #4
    Giga Honourable Senior Member
    Verenigingslid

    Geregistreerd
    12 juni 2008
    Waarvoor wil je dat ? 2* dezelfde gegevens ?
    VBA voor smarties
    VBA is een taal die je moet leren met een grammatica- en een woordenboek.

    http://www.helpmij.nl/forum/announcement.php?f=5
    Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen.

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren