• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

active selectie in macro

Status
Niet open voor verdere reacties.

W Bloemendal

Gebruiker
Lid geworden
28 jan 2001
Berichten
503
IK wil iets selecteren dan een macro uitvoeren waarbij andere cellen gebruikt worden. dan moet de macro de geselecteerde cellen weer gaan selecteren zodat hierweer mee gewerkt kan worden. de selectie waar het om gaat is altijd een hele regel

Dim a As String
a = Active.Selection

Range("A7").Select
Selection.Copy
Range("A8").Select
Selection.Insert Shift:=xlDown

Cells(a).Select

Wat is er aan bovenstaande verkeerd
 
W Bloemendal

Code:
Sub Kopie()
Dim a As Variant
    a = ActiveCell.Address
    Range("A7").Select
    Selection.Copy
    Range("A8").Insert Shift:=xlDown
    Application.CutCopyMode = False
    Range(a).Activate
End Sub

Nu wordt de aktieve cel onthouden en na de bewerking ergens anders wordt weer naar deze cel terug gegaan.


De code hieronder doet precies dezelfde bewerking zonder alle cellen te selecteren. En is dus veel korter, en sneller.

Code:
Sub Kopie2()
    Range("A7").Copy
    Range("A8").Insert Shift:=xlDown
    Application.CutCopyMode = False
End Sub

Koosl
 
IK had met de hand zomaar een macro op genomenen daarbijheb ik die eerste en laatste regel aan toegevoegd. daar gaat het juist om.

wim
 
Oh,

Ok.

Dan gaat het alleen om dit gedeelte

Dim a As Variant
a = ActiveCell.Address ' onthoud de aktieve cel
' doe hier van alles
Range(a).Activate ' maak de onthouden cel weer aktief.


Duidelijk?


Koosl
 
Je hebt dus ergens op je blad een hele regel geselecteerd en die selektie noem je dan a.
Dan ga je iets anders doen, in dit geval iets kopieren en inserten.

Vervolgens wil je a weer selekteren. (Hele regel of cel A?)


bedoel je het zo dan?

Koosl
 
ja zo bedoel ik het maar dan wort er tussen nog een andere macro uitgevoerd

wim

Volgens mij is het zo dan:

Code:
Dim a As Range
a = Selection ' onthoudt de aktieve selectie
' doe hier van alles
a.Activate ' maak de onthouden cel weer aktief.

Al zou ik de tussenliggende acties gewoon uitvoeren zonder iets te selecteren vooraf en nadien. Dat is zelfs het beste wat je kan doen en dus wat je moet proberen nastreven. Bij vragen horen we het wel.

Wigi
 
oplossing gaf een fout
Dit werkt wel

Dim rij
rij = ActiveCell.Row
MacroD
Rows(rij).Select


wim
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan