aanroepen macro (sheet 1) vanuit macro (sheet 2)

Status
Niet open voor verdere reacties.

Mark02

Gebruiker
Lid geworden
10 dec 2012
Berichten
6
Hi folks,

Ik heb hetvolgende doel:
Ik heb een macro in sheet 1 welke ik wil aanroepen na een verandering in sheet 2.

Dit doe ik door een sub in sheet 2:

Private Sub Worksheet_Change(ByVal Target As Range)
Call Markmacro
End Sub


Die verwijst naar:

Sub Markmacro()

Range("D3:E3").Select
Selection.Copy
lMaxRows = Cells(Rows.Count, "G").End(xlUp).Row
Range("G" & lMaxRows + 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

End Sub


Als ik sub markmacro in een module plaats werkt dit, maar wordt de module uitgevoerd op sheet 2 ipv sheet 1.

Als ik op google zoek vindt ik meerder forumtopics over dit onderwerk en overal wordt de volgende oplossing aangeleverd.

Private Sub Worksheet_Change(ByVal Target As Range)
Call Sheet1.Markmacro
End Sub


Maar dit werkt bij bij om de een of andere reden niet. (run-time error 1004, application defined or object defined error).

Ik weet dat het stom is wat ik doe, en dit frustreerd me enorm!


Wie o wie helpt me?
 
Waarom 2 macro's als je de bewerkingen in Sheet1 perfect kunt laten uitvoeren in de Worksheet_Change van Sheet2 ?????
 
Marko02,

De denkfout die je maakt is dat je er vanuit gaat dat als een macro in een sheet is opgenomen dat dan ook de macro in
de betreffende sheet wordt uitgevoerd. Dit is niet correct. Een macro wordt altijd uitgevoerd op het tabblad wat op dat
moment actief is.
Wil je in een andere sheet werken moet je gewoon een verwijzing opnemen.
Dus niet "
lMaxRows = Cells(Rows.Count, "G").End(xlUp).Row maar lMaxRows = Sheet("Sheet1").Cells(Rows.Count, "G").End(xlUp).Row
en
Sheet("Sheet1").Range("G" & lMaxRows + 1).PasteSpecial Paste:=xlPasteValues

Veel Succes.
 
Hee mannen,

Zoals verteld ben ik op dit gebied een absolute amateur.
Probleem solved, topic closed.

Thanks!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan