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

Error 1004 VBA

Status
Niet open voor verdere reacties.

fulco25

Gebruiker
Lid geworden
23 mei 2015
Berichten
7
Hallo allemaal

Bij het pogrammeren in vba in excel krijg ik een foutmelding 1004 op de regel die dik gedrukt is:
Op blad2 staan de gegevens voor de grafiek
De grafiek staat op blad "Grafiek Analyse"
Sadres = de laatste regel met de waarde groter dan 0

[TABLE="width: 694"]
[TR]
[TD="class: xl66, width: 64"][/TD]
[TD="class: xl66, width: 64"] A[/TD]
[TD="class: xl63, width: 227"] B[/TD]
[TD="class: xl63, width: 126"] C[/TD]
[TD="class: xl63, width: 93"] D[/TD]
[TD="class: xl64, width: 184"] E[/TD]
[TD="class: xl64, width: 184"][/TD]
[/TR]
[TR]
[TD="class: xl66, width: 64"] 1[/TD]
[TD="class: xl66, width: 64"]Nummer[/TD]
[TD="class: xl63, width: 227"]Leverancier[/TD]
[TD="class: xl63, width: 126"]Aantal opdrachten[/TD]
[TD="class: xl63, width: 93"]Afkeur aantal[/TD]
[TD="class: xl64, width: 184"]Gemiddelde overschrijding[/TD]
[TD="class: xl64, width: 184"][/TD]
[/TR]
[TR]
[TD="class: xl66, width: 64"][/TD]
[TD="class: xl66, width: 64"]12345[/TD]
[TD="class: xl63, width: 227"]Lev[/TD]
[TD="class: xl63, width: 126"]125[/TD]
[TD="class: xl63, width: 93"]5[/TD]
[TD="class: xl64, width: 184"]0%[/TD]
[TD="class: xl64, width: 184"][/TD]
[/TR]
[/TABLE]


Code:
    Range("A1").Activate
    Sheets("Grafiek Analyse").Select
    
    BereikC = "B2:E" & Sadres
    BereikD = "$B$2:$B$" & Sadres
    ActiveSheet.ChartObjects("Grafiek").Delete
    
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlColumnClustered
    ActiveChart.SetSourceData Source:=Range(BereikC)
    ActiveChart.Legend.Select
    ActiveChart.Axes(xlCategory).Select
    [B]ActiveChart.SeriesCollection(1).Name = "=Blad2!$C$1"[/B]
    ActiveChart.SeriesCollection(2).Name = "=Blad2!$D$1"
    ActiveChart.SeriesCollection(3).Name = "=Blad2!$E$1"
    ActiveChart.SeriesCollection(4).Delete
    ActiveChart.SeriesCollection(4).Delete
    ActiveChart.SeriesCollection(3).XValues = Range(BereikD)
    ActiveChart.ChartArea.Select
    ActiveChart.Parent.Name = "Grafiek"
   
    Sheets("Blad2").Select
    Range("A1").Activate



Al vast bedank voor de hulp
 
Laatst bewerkt:
Maak er eens dit van:
ActiveChart.SeriesCollection(1).Name = "=Blad2!C1"
 
Het blad met de naam Blad2 bestaat wel? Zijn daar de cellen C1 t/m D1 ook gevuld met juiste waarden?

Bij fout 1004 wordt vaak ook een omschrijving gegeven.
Laat die hier ook even weten.
 
Laatst bewerkt:
minder elegante manier

Edmoor:

Ik krijg de volgende fout:
Fout 1004 tijdens uitvoering:
Door de toepassing of door object gedefineerde fout.
De genoemde tabbladen (Sheets) bestaan

Ik zat al aan een minder elegante manier te denken voor het probleem echter komt het andere probleem de hoek om.
De grafiek knippen en op de tabblad Grafiek Analyse plakken. - > Geen Probleem
De oude grafiek verwijderen met de code
Code:
 Sheets("Grafiek Analyse").ChartObjects("Grafiek").Delete
Roept weer een andere fout op : fout 9 subscript valt buiten bereik, terwijl de sheets wel bestaan.
 
Je kan dan beter even je document hier plaatsen.
 
Misschien dat je hem kan anonimiseren?
 
Misschien dat je hem kan anonimiseren?

De fout is gevonden:
de volgorde van de argumenten was verkeerd.
De juiste volgorde is :
Code:
    With ActiveChart
        .ChartType = xlColumnClustered
        .SetSourceData Source:=Range(BereikC)
        .Axes(xlCategory).Select
        .Legend.Select
        .SeriesCollection(1).Name = "=Blad2!$C$1"
        .SeriesCollection(2).Name = "=Blad2!$D$1"
        .SeriesCollection(3).Name = "=Blad2!$E$1"
        .SeriesCollection(3).XValues = Range(BereikD)
    End With
De .seriescollection valt onder de .legend en niet onder de .axes,
kwam er met toeval achter met het aanpassen van de grafiek.

De grafiek verwijderen op een chart blad gaat met
Code:
    ActiveChart.ChartArea.ClearContents
 
Laatst bewerkt:
Ok dan :thumb:
 
Vermijd darraom altijd 'select' en 'activate:

Code:
With ActiveChart
        .ChartType = xlColumnClustered
        .SetSourceData Source:=Range(BereikC)
        .SeriesCollection(1).Name = "=Blad2!$C$1"
        .SeriesCollection(2).Name = "=Blad2!$D$1"
        .SeriesCollection(3).Name = "=Blad2!$E$1"
        .SeriesCollection(3).XValues = Range(BereikD)
End With
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan