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

Hernoemen Grafiek werkblad

  • Onderwerp starter Onderwerp starter Gum2
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Gum2

Gebruiker
Lid geworden
30 mrt 2007
Berichten
80
Ik heb een stukje code gemaakt om een grafiek aan een werkboek toe te voegen.
De code moet kunnen werken in excel 2007/2010.

Code:
Sub GrafiekInvoegen()
    
    Charts.Add
    ActiveChart.ChartType = xlColumnClustered
    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(1).Name = "=Result!$A$1"
    ActiveChart.SeriesCollection(1).Values = "=Result!$B$2:$B$20"
    ActiveChart.SeriesCollection(1).XValues = "=Result!$A$2:$A$20"
    ActiveChart.Axes(xlCategory).Select
    ActiveChart.Legend.Delete
    ActiveChart.Name = "TEST"
    ActiveChart.Axes(xlCategory).TickLabels.Orientation = 45
        
      
End Sub

Deze code werkt op zich goed.
Indien ik nu de programmacode weergeef van sheet 'TEST' dan zie ik dat het grafiekblad de naam 'Grafiek2("TEST") heeft gekregen.
Indien ik het grafiekblad zou willen selecteren dan kan ik gebruik maken van :

Code:
Grafiek2.Select 
of
Sheets("TEST").Select

In beide gevallen zal het grafiekblad geselecteerd worden.
Wat ik nu niet voor elkaar krijg is om de naam 'Grafiek2', die blijkbaar automatisch door excel gekozen word, via vba te wijzigen.
Indien ik de macro nogmaals zou draaien dan wordt automatisch 'Grafiek3' aangemaakt.
Iemand die weet hoe ik dit moet doen? (zie bijlage)
 

Bijlagen

Hallo

De CodeName eigenschap is read-only, en kan je dus niet wijzigen.
Waarom zou je ze willen wijzigen?
 
Het bijgevoegde bestand is slechts een voorbeeld.
In het project waarvoor het bedoeld is wil ik in bepaalde situaties de limieten wijzigen. Afhankelijk van de gekozen limieten wordt dan de colorindex van de grafiek aangepast m.b.v. de code":

Code:
With Grafiek2.SeriesCollection(1)
  
      vValues = .Values
      For iPoint = 1 To UBound(vValues)
        For iPattern = 1 To UBound(vPatterns)
          If vValues(iPoint) >= vPatterns(iPattern, 1) Then
            .Points(iPoint).Interior.ColorIndex = _
                rPatterns.Cells(iPattern, 1).Interior.ColorIndex
            Exit For
          End If
        Next
      Next

Aangezien excel zelf de naam 'Grafiek'+nummer kiest is het voor mij van belang dat ik dit zelf kan beinvloeden en de grafiek (niet de sheet) dus zelf een naam kan geven. Het is nl. wel mogelijk om de naam handmatig te wijzigen in visual basic editor. Waarom gaat het dan niet via vba? (zie afbeeldingen van handmatige wijziging van 'Grafiek2' naar 'GewijzigdeNaam')
 

Bijlagen

  • GewijzigdeNaam.JPG
    GewijzigdeNaam.JPG
    49,3 KB · Weergaven: 58
  • Grafiek2.JPG
    Grafiek2.JPG
    47 KB · Weergaven: 67
Zorg dat het grafiekblad het actieve blad is.
Code:
Sub test()
    With ActiveSheet
        ThisWorkbook.VBProject.VBComponents(.CodeName).Name = "NieuweNaam"
    End With
End Sub
 
Zorg dat het grafiekblad het actieve blad is.
Code:
Sub test()
    With ActiveSheet
        ThisWorkbook.VBProject.VBComponents(.CodeName).Name = "NieuweNaam"
    End With
End Sub

Bedankt voor het meedenken !

ik heb de code getest op Excel 2010 NL en dan werkt het prima.
Ik heb de code ook op mijn werk getests op 'Excel 2007 engels' en krijg dan een runtime-error 1004 : programmatic acces to visual basic project is not trusted.
Kan ik hier nog iets aan instellen?
 
Ga in het startmenu naar Opties voor Excel >> Vertrouwenscentrum >> Instellingen voor het Vertouwenscentrum >> Macro-instellingen voor ontwikkelaars >> Toegang tot het objectmodel ..... aanvinken.
 
@Warme bakkertje : Ik heb het gevonden ! Bedankt !
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan