Excel VBA rijen wisselen

Status
Niet open voor verdere reacties.

willema

Gebruiker
Lid geworden
26 aug 2005
Berichten
308
Dag allemaal,

in een sjabloon probeer ik twee subroutines te schrijven die...
1. na een druk op de knop CmdRijOmlaag de gegevens van de actieve rij wisselt met de gegevens van de rij er onder.
2. en na een druk op de knop CmdRijOmhoog de gegevens van de actieve rij wisselt met de gegevens van de rij er boven.

Hoe pak ik dit het best aan ?
Ik heb momenteel de volgende variabelen gedeclareerd (en correct geretourneerd gekregen in een MsgBox).
AcR As Integer is de actieve rij (CmdRijOmhoog wordt niet uitgevoerd als AcR = 1).
LaatsteRij As Integer (CmdRijOmlaag wordt niet uitgevoerd als AcR = LaatsteRij).
LaatsteKolomBlad As integer (niet alle rijen hebben evenveel ingevulde kolommen - deze variabele is het maximum aantal kolommen)

Het zou goed zijn als ook de opmaak (kleur cel en kleur lettertype, lettertype, Bold, Italic, ...) volgt.

Ik heb geprobeerd om de gegevens van beide rijen in twee aparte arrays te steken en de rijen te wissen. Om vervolgens de rijen weer te vullen met de omgewisselde inhoud van de arrays.
Ook al werkt dit nog niet foutloos, ik weet nu al dat zo de opmaak niet zal volgen.

Ik heb ook geprobeerd om te werken via Selection.Copy. Maar ik vind niet meteen hoe je twee selecties (twee rijen) kan kopieren en op het klembord plaatsen met VBA.

Zit ik op het juiste spoor of er helemaal naast ? :)

Groeten en dank bij voorbaat voor alle tips,
Marnik
 
gewoon een gedachtegang zonder foutcontrole


Code:
Sub naarbeneden()
Selection.Rows.Cut
Selection.Offset(2).Insert Shift:=xlDown
End Sub

Sub omhoog()
Selection.Rows.Cut
Selection.Offset(-1).Insert Shift:=xlDown
End Sub

Niels
 
Wat is hiervan het hogere doel ?
 
Dag Niels28,
tja, knippen en plakken. Daar had ik nog niet aan gedacht. Ik heb nog nooit geknipt met VBA omdat ik vrees dan allerhande problemen te krijgen met formules in de cellen en met variabelen laatste rij. Maar, ik probeer het.

Hey snb,
ik dacht dat mijn vraag duidelijk was. Heb ook al wat gegoogeld onder "VBA Excel swap rows" en heb daar ook al heel wat gevonden.

Groeten,
Marnik
 
Ik knip normaal ook niet en heb het liefst dat ze die functie ook uit excel slopen :p
het was ook maar een gedachtegang en misschien dat het gaat met je formules

Niels
 
Jouw vraag was mij wel duidelijk, mijn vraag jou blijkbaar niet.
 
Dag Niels,

Gelukt! Met de nodige ScreenUpdating en EnableEvents op False, wordt dit zeer proper en snel uitgevoerd.

Merci en groetjes,
Marnik
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan