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

Compile error bij runnen macro

Status
Niet open voor verdere reacties.

geep1980

Gebruiker
Lid geworden
7 apr 2009
Berichten
348
Ik ben voor mijn werk een overzicht aan het maken zodat mijn baas kan filteren per jaar/maand/persoon wie hoevaak een sms heeft ontvangen.

Als ik de macro('s) de eerste keer uitvoer loopt hij prima.
Als ik daarna een tweede keer uit wil voeren krijg ik de melding:

Compile error Expected end property

Ik kom er helaas niet uit waarom hij die melding geeft.
Het bestand is, zelfs gezipped, te groot om te uploaden. Ik heb het vermoeden dat het probleem in 1 van 3 macro's die je in bijgevoegd bestand kunt vinden ligt echter weet ik dit niet zeker.
 

Bijlagen

nog wat extra informatie:

de volgende macro wordt met succes afgerond:

Sub Create_Sheets2()

Application.ScreenUpdating = False

Dim iLoop As Integer
Dim rNa As Range
Dim i As Integer


which_years = 1

Sheets("Which_Years").Select

Do While which_years < Application.CountIf(Worksheets("Which_Years").Range("$A$2:$A$1000"), ">0") + 2
Set rNa = Range("A" & which_years)

Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = rNa & "_unique_persons"

Call Split_Up_Unique_Persons
Sheets("Which_Years").Select

which_years = which_years + 1

Loop

End Sub


Daarna wordt de volgende macro aangeroepen waarin hij fout gaat


Sub Make_Overview_Sheet()


Application.ScreenUpdating = False

Sheets("Graphs_Overview").Select
ActiveSheet.Cells.ClearContents

Range("V5").Select
ActiveCell.FormulaR1C1 = "'-----------"
Range("W5").Select
ActiveCell.FormulaR1C1 = "'-----------"

For Each chtObj In ActiveSheet.Shapes 'ChartObjects

chtObj.Delete

Next
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
If sh.Name Like "*_grafiek" Then
Sheets(sh.Name).Select
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.ChartArea.copy
Sheets("Graphs_Overview").Select

If ActiveSheet.Shapes.Count = 0 Then
Range("A2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
count_shapes1 = ActiveSheet.Shapes.Count
Range("$Z$10").Select
ActiveCell.FormulaR1C1 = ActiveSheet.Shapes(count_shapes2).BottomRightCell.Row + 2
Else
Call LastRowInOneColumn
where_text = "$A$" & Range("$Z$9")
Range(where_text).Select
Application.Wait Now + TimeValue("00:00:01")
ActiveSheet.Paste
count_shapes2 = ActiveSheet.Shapes.Count
Range("$Z$10").Select
ActiveCell.FormulaR1C1 = ActiveSheet.Shapes(count_shapes2).BottomRightCell.Row + 2
End If
Sheets(sh.Name).Select
Dim till_where As Range
Set till_where = Range("$O$2")
Range("A1:M" & till_where).Select
Selection.copy
Sheets("Graphs_Overview").Select
put_where = "$A$" & Range("$Z$10")
Application.Wait Now + TimeValue("00:00:01")
'MsgBox put_where
Range(put_where).Select
ActiveSheet.Paste

End If
Next sh

Worksheets("Graphs_Overview").Select

Range("B1").Select
ActiveCell.FormulaR1C1 = "1"
Range("C1").Select
ActiveCell.FormulaR1C1 = "2"
Range("D1").Select
ActiveCell.FormulaR1C1 = "3"
Range("E1").Select
ActiveCell.FormulaR1C1 = "4"
Range("F1").Select
ActiveCell.FormulaR1C1 = "5"
Range("G1").Select
ActiveCell.FormulaR1C1 = "6"
Range("H1").Select
ActiveCell.FormulaR1C1 = "7"
Range("I1").Select
ActiveCell.FormulaR1C1 = "8"
Range("J1").Select
ActiveCell.FormulaR1C1 = "9"
Range("K1").Select
ActiveCell.FormulaR1C1 = "10"
Range("L1").Select
ActiveCell.FormulaR1C1 = "11"
Range("M1").Select
ActiveCell.FormulaR1C1 = "12"

Columns("A:A").EntireColumn.AutoFit ' select all the cell in the active worksheet
Range("$A$1").Select


End Sub
 
je speelt hoog spel, je zit binnen VBA met het programma te spelen, nu weet ik niet wat er nog extra gebeurd in de rest, maar kan het niet zijn dat er de 2e keer hij probeert naar een macro te springen die ondertussen gewist is ? Of als je in een ander werkmap blad komt en is daar een bepaalde verwijziging in je VBA niet aangevinkt ??
 
Het verwijderen van de macro gebeurd helemaal in het begin van alle macro's.
Dit om te voorkomen dat als hij op het blad Graphs_Overview grafieken en de bij behorende getallen gaat plaatsen er gelijk een onclick event plaats vindt.


deze onclick moet er weer zijn nadat alle grafieken gecopieerd zijn

vandaar dat ik het op deze manier doe.

Weet niet of het mogelijk is om het stukje VBProj.VBComponents("Sheet74") aan te passen zodat je daar Graphs_Overview kan plaatsen.
Misschien dat het probleem wordt opgelost door eerst het hele blad weg te gooien en opnieuw aan te maken.
 
Persoonlijk vind ik het netter (en het is mogelijk ook stabieler) om gebruik te maken van een globale boolean variabele running_macro die je op true zet in plaats van je OnClick te verwijderen. In je OnClick controleer je vervolgens op die waarde, zodat je er uit kunt springen wanneer je macro nog bezig is.
 
nadat ik een nieuwe excel file begonnen ben en daar alle code in heb geplakt en de benodigde tabbladen heb aangemaakt werkt het allemaal
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan