• 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.

VBA Macro foute verwijzing

Status
Niet open voor verdere reacties.

Cmwdekorte

Gebruiker
Lid geworden
11 feb 2015
Berichten
21
Goedemiddag,

Ik wil graag wanneer ik wissel naar een specifiek tabblad (Chart1) dat er op tabblad 1 een macro wordt uitgevoerd.

Wat ik gedaan heb is bij het tabblad 'Chart1' als programmacode het volgende opggegeven:

Code:
Private Sub Chart_Activate()
GeheleBerekening
End Sub

GeheleBerekening = de betreffende Macro

Ik krijg daar nu het probleem dat er in de macro wordt verwezen naar een cel op tabblad 1 en dus wanneer ik naar Chart 1 ga hij de foutmelding geeft dat er een foutieve verwijzing is.

De macro ziet er zo uit:
Code:
Sub GeheleBerekening()
'
' GeheleBerekening Macro
'

'
    Sheets("Plan").Range("G6").Select
    Selection.Copy
    Range("G7:AH16,H6:AH6").Select
    Range("H6").Activate
    ActiveSheet.Paste
    Range("G7:G16").Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("H6:AH16").Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("G18").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("G19:AH20,H18:AH19").Select
    Range("H18").Activate
    ActiveSheet.Paste
    Range("G19:G20").Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("H18:AH20").Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("G22").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("G23:G35,H22:AH35").Select
    Range("H22").Activate
    ActiveSheet.Paste
    Range("G23:G34").Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("H22:AH34").Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveWindow.SmallScroll Down:=24
    Range("G54").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("G55:G61,H54:AH61").Select
    Range("H54").Activate
    ActiveSheet.Paste
    Range("G55:G61").Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("H54:AH61").Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("G63").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("G64:AH70,H63:AH64").Select
    Range("H63").Activate
    ActiveSheet.Paste
    Range("G64:G70").Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("H63:AH70").Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
End Sub

Hoe zorg ik er voor dat ik van een ander tabblad deze macro kan uitvoeren zodat de grafiek bijgewerkt wordt?

Met vriendelijke groet,

Cmwdekorte
 
Laatst bewerkt:
Wil je de code tussen code-tags zetten aub?
 
Kijk eens of de code nu correct loopt:
Code:
Sub GeheleBerekening()
 '
 ' GeheleBerekening Macro
 '

 '
 With Sheets("Plan")
        .Range("G6").Copy .Range("H6")
        .Range("G7:G16").Copy
        .Range("G7:G16").PasteSpecial Paste:=xlPasteValues
        .Range("H6:AH16").Copy
        .Range("H6:AH16").PasteSpecial Paste:=xlPasteValues
        .Range("G18").Copy Range("H18")
        .Range("G19:G20").Copy
        .Range("G19:G20").PasteSpecial Paste:=xlPasteValues
        .Range("H18:AH20").Copy
        .Range("H18:AH20").PasteSpecial Paste:=xlPasteValues
        .Range("G22").Copy Range("H22")
        .Range("G23:G34").Copy
        .Range("G23:G34").PasteSpecial Paste:=xlPasteValues
        .Range("H22:AH34").Copy
        .Range("H22:AH34").PasteSpecial Paste:=xlPasteValues
        .Range("G54").Copy Range("H54")
        .Range("G55:G61").Copy
        .Range("G55:G61").PasteSpecial Paste:=xlPasteValues
        .Range("H54:AH61").Copy
        .Range("H54:AH61").PasteSpecial Paste:=xlPasteValues
        .Range("G63").Copy .Range("H63")
        .Range("G64:G70").Copy
        .Range("G64:G70").PasteSpecial Paste:=xlPasteValues
        .Range("H63:AH70").Copy
        .Range("H63:AH70").PasteSpecial Paste:=xlPasteValues
 End With
 End Sub
 
Ik heb hem zo ingevoerd, maar wanneer ik dan het tabblad Chart1 open, schiet die steeds heen en weer naar sheet "plan" en terug, waarna die uiteindelijk de foutmelding geeft dat er onvoldoende stackruimte is.
 
Haal al die selects eens weg uit de code voor die Chartberekening net zoals ik ze gedaan heb in de code voor de geheleberekening.
 
Ik had hem al eens ingevoerd volgens jouw code, maar toen gaf die de foutmelding die ik net noemde.
 
Zet in de optie's eens de berekening op handmatig en kijk dan eens of het nog zo springt.
Wel de code gebruiken zonder selects
 
Hij schiet nog steeds heen en weer, daarnaast berekent die nu niet alle waardes voor de grafiek, omdat er niet juist geselecteerd wordt.

Het uiteindelijke probleem is dat ik een macro wil uitvoeren als ik naar het tabblad Chart1 ga, en Chart 1 haalt zijn waardes van het tabblad Plan (op dit tabblad moet de macro ook de berekeningen dan doen).
 
Als hij nog steeds van hot naar haar springt staat de code nog steeds vol met selects.
Er is geen enkele reden waarom uw scherm zou moeten heen en weer springen.
Wie heeft die code geschreven?
 
Ik heb zelf de code geschreven, hij springt van Chart1 naar Plan en terug, constant.
De code heb ik zelf geschreven, weet u dan hoe ik het anders kan oplossen of kan u het in het bestandje proberen?
 
Nee helaas, het werkt zo nog steeds niet. Maar goed, ik houd het dan voorlopig hierbij, laat het weten als er iets je te binnen zit. Dit bestand zit toch nog in de conceptfase.

In ieder geval hartelijk bedankt voor je pogingen !!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan