Code vereenvoudigen: nu te zwaar...

Status
Niet open voor verdere reacties.

sandra1978

Gebruiker
Lid geworden
21 feb 2011
Berichten
64
Hallo,

Ik laat in een loop voor alle gefilterde rijen van een bestand, specifieke cellen (van bepaalde kolommen), naar specifieke cellen op een ander bestand kopiëren. Dit gebeurt cel per cel. ER wordt dus constant geswitched van het ene naar het andere bestand, waardoor de code zwaar wordt, en Excel wat lijkt te crashen.
Is er een methode om onderstaande code efficiënter te maken?

Code:
...'rest van de code
For k = firstrow To LastRow2
           
        Cells(k, 137).Copy  'semester
        doelmap.Sheets("rooster").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
        Cells(k, 138).Copy  'klascode
        doelmap.Sheets("rooster").Cells(Rows.Count, "A").End(xlUp).Offset(0, 1).PasteSpecial xlPasteValues
        Cells(k, 161).Copy 'lesgever
        doelmap.Sheets("rooster").Cells(Rows.Count, "A").End(xlUp).Offset(0, 2).PasteSpecial xlPasteValues
        Cells(k, 141).Copy  'deel a/b
        doelmap.Sheets("rooster").Cells(Rows.Count, "A").End(xlUp).Offset(0, 3).PasteSpecial xlPasteValues
        Cells(k, 142).Copy  'groep
        doelmap.Sheets("rooster").Cells(Rows.Count, "A").End(xlUp).Offset(0, 4).PasteSpecial xlPasteValues
        Cells(k, 144).Copy  'module
        doelmap.Sheets("rooster").Cells(Rows.Count, "A").End(xlUp).Offset(0, 5).PasteSpecial xlPasteValues
        Cells(k, 185).Copy  'dag1
        doelmap.Sheets("rooster").Cells(Rows.Count, "A").End(xlUp).Offset(0, 6).PasteSpecial xlPasteValues
        Cells(k, 186).Copy 'van uur
        doelmap.Sheets("rooster").Cells(Rows.Count, "A").End(xlUp).Offset(0, 7).PasteSpecial xlPasteValuesAndNumberFormats
        Cells(k, 187).Copy 'tot uur
        doelmap.Sheets("rooster").Cells(Rows.Count, "A").End(xlUp).Offset(0, 8).PasteSpecial xlPasteValuesAndNumberFormats
        Cells(k, 174).Copy 'van datum
        doelmap.Sheets("rooster").Cells(Rows.Count, "A").End(xlUp).Offset(0, 15).PasteSpecial xlPasteValuesAndNumberFormats
        Cells(k, 175).Copy 'tot datum
        doelmap.Sheets("rooster").Cells(Rows.Count, "A").End(xlUp).Offset(0, 16).PasteSpecial xlPasteValuesAndNumberFormats
        Cells(k, 191).Copy 'lesplaats 1
        doelmap.Sheets("rooster").Cells(Rows.Count, "A").End(xlUp).Offset(0, 17).PasteSpecial xlPasteValues
        Cells(k, 192).Copy 'lokaal 1
        doelmap.Sheets("rooster").Cells(Rows.Count, "A").End(xlUp).Offset(0, 18).PasteSpecial xlPasteValues
        Cells(k, 281).Copy 'is geld
...'vervolg van de code

Ik heb nu geen voorbeeldbestand toegevoegd, omdat ik denk dat dit wel duidelijk is zonder bestand?

Alvast bedankt,
 
Definieer variabelen voor elk van de velden
Stockeer de waarden vanuit bronmap voor een record in elk van die velden
Switch dan 1x naar de doelmap en paste al die waarden in de overeenkomstige cellen
 
zo heb je al de 1e 8 te pakken en vrij analoog kan je de rest doen.
Code:
For k = firstrow To LastRow2
   doelmap.Sheets("rooster").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Resize(, 8).Value = Array(Cells(k, 137).Value, Cells(k, 161).Value, Cells(k, 141).Value, Cells(k, 142).Value, Cells(k, 144).Value, Cells(k, 185).Value, Cells(k, 186).Value, Cells(k, 187).Value)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan