• 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 code Office 2003 werkt niet in Office 2010 : ActiveChart.ChartArea.Select

Status
Niet open voor verdere reacties.

mschrijver

Gebruiker
Lid geworden
1 apr 2011
Berichten
40
Goedemiddag heren,

Wij maken nu al een jaar of 6 gebruik van een Excelblad (Office 2003)wat gebruik wordt om grafieken te genereren aan de hand van uitgerekende data.
Zodra de gebruiker de benodigde data in heeft gevuld, heeft hij de mogelijkheid om op een knop te drukken, die vervolgens er voor zorgt dat een stukje VBA code gestart wordt, die uiteindelijk de grafiek maakt.

Nu hebben wij vorige week een nieuwe laptop aan moeten schaffen, met daarbij een Office licentie. Vandaag de dag kan je enkel nog Office 2010 licenties kopen. Prima, vooruitgang is altijd goed. Echter lopen we nu tegen het probleem aan dat die knop (om de grafiek te maken) het niet meer doet.

Ik ben nu al zeker 3 dagen bezig om de code in 2010 werkend te krijgen, zonder resultaat.
Ik sta op het punt om de code te verwijderen en hem weer opnieuw op te bouwen, maar ik dacht wellicht ziet iemand in een oogopslag wat er aangepast zou moeten worden zodat hij in 2010 weer functioneert.
Vandaar mijn vraag; Is er hier iemand die enig idee heeft wat er precies gewijzigd is in in Office 2010, en hoe ik de huidige code het makkelijkst weer werkend kan krijgen?

De code ziet er als volgt uit; en hij loopt fout op het dikgedrukte regel.

Code:
Sub grafiekbijstellen()
If Sheets("Invoer").Range("T26").Value < 4 Then

  Fout2.Show

Else
  ' 2010-03-03 Unprotect this Sheet for data actions
  Sheets("Selecteren").Select
  ActiveWorkbook.ActiveSheet.Unprotect "wachtwoord"

  Sheets("Invoer").Select
  Range("S16:T25").Select
  Selection.Copy
  Sheets("Selecteren").Select
  Range("A2").Select
  Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
  Application.CutCopyMode = False
  Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
  Selection.Copy
  Sheets("Invoer").Select
  Range("AE16").Select
  ActiveSheet.Paste
  Sheets("Selecteren").Select
  Range("B2:B11").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("Invoer").Select
  Range("AD16").Select
  ActiveSheet.Paste
  Range("AD16:AF25").Select
    
  On Error Resume Next
  Selection.Font.ColorIndex = 2
  On Error GoTo 0
    
  Sheets("Grafiek").Select
  ActiveSheet.ChartObjects(1).Activate
 [B] ActiveChart.ChartArea.Select[/B]    
Select Case Sheets("Invoer").Range("T26")
Case 4
    ActiveChart.SeriesCollection(1).XValues = "=Invoer!R16C31:R19C31"
    ActiveChart.SeriesCollection(1).Values = "=Invoer!R16C30:R19C30"
Case 5
    ActiveChart.SeriesCollection(1).XValues = "=Invoer!R16C31:R20C31"
    ActiveChart.SeriesCollection(1).Values = "=Invoer!R16C30:R20C30"
Case 6
    ActiveChart.SeriesCollection(1).XValues = "=Invoer!R16C31:R21C31"
    ActiveChart.SeriesCollection(1).Values = "=Invoer!R16C30:R21C30"
Case 7
    ActiveChart.SeriesCollection(1).XValues = "=Invoer!R16C31:R22C31"
    ActiveChart.SeriesCollection(1).Values = "=Invoer!R16C30:R22C30"
Case 8
    ActiveChart.SeriesCollection(1).XValues = "=Invoer!R16C31:R23C31"
    ActiveChart.SeriesCollection(1).Values = "=Invoer!R16C30:R23C30"
Case 9
    ActiveChart.SeriesCollection(1).XValues = "=Invoer!R16C31:R24C31"
    ActiveChart.SeriesCollection(1).Values = "=Invoer!R16C30:R24C30"
Case 10
    ActiveChart.SeriesCollection(1).XValues = "=Invoer!R16C31:R25C31"
    ActiveChart.SeriesCollection(1).Values = "=Invoer!R16C30:R25C30"
End Select
    
Sheets("Invoer").Select
Range("AA16:AC26").Select
    Selection.ClearContents
Range("E3").Select
      
Sheets("Grafiek").Select
    ActiveSheet.ChartObjects(1).Activate
    
With ActiveChart.Axes(xlCategory)
        .MinimumScale = Sheets("Invoer").Range("V16")
        .MaximumScale = Sheets("Invoer").Range("V17")
        .MajorUnit = 1
        .CrossesAt = Sheets("Invoer").Range("V18")
    End With
    ActiveChart.Axes(xlValue).Select
    With ActiveChart.Axes(xlValue)
        .MinimumScale = Sheets("Invoer").Range("V21")
        .MaximumScale = Sheets("Invoer").Range("V22")
        .MajorUnit = 10
    End With
    
ActiveSheet.ChartObjects(1).Activate
    ActiveChart.Axes(xlValue).Select
    Selection.TickLabels.NumberFormat = "0"

ActiveSheet.ChartObjects(1).Activate
    ActiveChart.SeriesCollection(1).Select
    With Selection.Border
        .ColorIndex = 1
        .Weight = xlThin
        .LineStyle = xlContinuous
    End With
    With Selection
        .MarkerBackgroundColorIndex = 1
        .MarkerForegroundColorIndex = 1
        .MarkerStyle = xlDiamond
        .Smooth = True
        .MarkerSize = 5
        .Shadow = False
    End With
    
Range("A1").Select
    
End If

End Sub
 
staat ook op OfficeForum
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan