Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Diagramm mit VBA erstellen

Diagramm mit VBA erstellen
13.04.2013 15:13:51
Martin
Hallo,
ich möchte mit VBA ein Diagramm im aktuellen Arbeitsblatt erstellen, und verwende dazu den folgenden Code:
Dim WS As Worksheet
Dim Diagram As ChartObject
Set WS = ActiveSheet
Set Diagram = WS.ChartObjects.Add(310, 180, 200, 200)
With Diagram
.Name = "DiagrammName"
With .Chart
.ChartType = xlXYScatterLinesNoMarkers
.SetSourceData Source:=Range("$B$16:$D$19")
End With
End With
Das funktioniert auch bei einem PC mit Windows XP, und bei einem anderen mit Windows 7. Bei einem 3.PC mit Windows 7 funktioniert es bei User A, aber nicht bei User B!
Da User A Administrator-Rechte hat, User B aber nicht, dachte ich zunächst, dass dies die Ursache für den Fehler ist. Aber nach temporärer Vergabe von Admin-Rechten auch an User B tritt der Fehler weiterhin nur bei diesem User B auf.
Excel gibt als Fehlernummer: -2080081728 (840478c0)
und als Fehlerbeschreibung: "Die angegebene Dimension ist ungültig für den aktuellen Diagrammtyp." an.
Bei der Suche im Internet konnte ich bisher keine Erklärung für dieses seltsame Verhalten von Excel 2010 finden können.
Wer kennt dieses Problem und wie kann ich diesen Fehler vermeiden?
Viele Grüße,
Martin

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm mit VBA erstellen
17.04.2013 08:54:36
Klaus
Hallo Martin,
wenn es auf PC-A läuft, aber auf PC-B nicht ... dann ist der Code warscheinlich ok. Zur Sicherheit nochmal nachgefragt: es haben aber beide PC's die gleiche Excel-Version?
Was ich dir anbieten kann, lad deine Datei mal hoch dann kann ich dir sagen ob sie bei mir läuft oder nicht. Und was ich machen würd: Bei User B einfach mal "auf Verdacht" Office komplett runter werfen und neu installieren.
Grüße,
Klaus M.vdT.

AW: Diagramm mit VBA erstellen
17.04.2013 23:42:53
Martin
Hallo Klaus,
vielen Dank für Deinen Beitrag.
Das Problem tritt beim selben (Windows 7)-PC auf, auf dem ich mehrere, gleichberechtigte User eingerichtet habe. Bei einem User läuft die VBA-Subroutine, bei einem anderen User nicht!
Es handelt sich also um die selbe Installation von Office 2010.
Ich habe zwar inzwischen eine andere Möglichkeit gefunden, ein Diagramm mit VBA anzulegen, aber diese ist weniger flexibel. Außerdem möchte ich gerne verstehen warum das Problem bei meiner ersten Lösung auftritt.
Zum beseren Verständnis füge ich ein Excelfile bei, das beide Versionen zum erstellen eines Diagramms per VBA demonstriert: https://www.herber.de/bbs/user/84922.xlsm
Ich hoffe, dass Du damit mein Problem besser verstehst und eine Lösung kennst.
Viele Grüße,
Martin

Anzeige
VBA-Diagramm-Experte - Beverly?
18.04.2013 11:14:31
Klaus
Hallo,
Bei einem User läuft die VBA-Subroutine, bei einem anderen User nicht!
das ist ja seltsam? Kann fast nur noch mit "Gremlins" erklärt werden ...
Bei mir laufen leider (?) beide Versionen korrekt, so dass ich den Fehler nicht nachvollziehen kann.
Aber das einzige, in dem "Dimensionen" vorkommen, ist wohl das hier:
With ActiveSheet.ChartObjects.Add(Left:=300, Width:=300, Top:=100, Height:=300)
Da kann ich nur raten: bei der einen Installation sind irgendwelche Einstellungen anders? Vielleicht ist in der Bibliothek des einen Users irgendein Verweis deaktiviert? Ich habe keine Ahnung ...
Noch ein Schuss ins Blaue:
.ChartType
wird ja in ProblemDiagramm angegeben, NACHDEM die Dimensionen des Diagramms festgelegt werden. Kommentiere ich ChartType aus, erhalte ich ein Balkendiagramm. Ganz wilde vermutung:
Die Standard-Einstellung für neue Diagramme ist "Balkendiagramm". Dein einer User hat als Standard-Einstellung eine andere Diagrammart (Blasen? Torten?), welche nicht mit 4 Dimensionen belegt werden darf - daher der Fehler.
Zum Austesten, lass mal beim Problem-User dieses Makro laufen (ChartType auskommentiert).
Sub DiagrammOK()    ' funktioniert immer!
Range("B8:C44").Select
ActiveSheet.Shapes.AddChart.Select
'ActiveChart.ChartType = xlXYScatterLinesNoMarkers
ActiveChart.SetSourceData Source:=Range("B8:C44")
ActiveChart.Parent.Name = "VBA_Diagramm1"
ActiveChart.Legend.Delete
End Sub

Wenn das so geänderte Makro bei OK und bei NOK Usern ein Balkendiagramm ergibt, weiss ich nicht weiter. Ergibt es unterschiedliche Diagramme, haben wir den schuldigen!
Hier im Herber Forum ist "Beverly" die Instanz für VBA-Diagramme. Ich hab mal ihren Namen in den Betreff geschrieben, vielleicht weiss sie rat!
Grüße,
Klaus M.vdT.

Anzeige
AW: VBA-Diagramm-Experte - Beverly?
20.04.2013 09:25:39
Martin
Hallo Klaus,
besten Dank. Das war ein sehr guter Hinweis. Bei allen Installationen, die ich testen konnte bekomme ich standardmäßig ebenfalls ein Balkendiagramm - nur bei dem Account, bei dem ich die Fehlermeldung erhalte wird ein "Oberflächendiagramm" erstellt!
Daraufhin habe ich bei diesem Account alle AddIns und Templates gelöscht, und das File "Normal.dotm" aus dem problemfreien Account des selben PCs übernommen.
Leider waren diese Maßnahmen ohne Erfolg. Bei dem User mit dem Diagrammfehler wird nach wie vor standardmäßig ein "Oberflächendiagramm" angelegt und das VBA Unterprogramm bricht mit Fehler ab.
Es muss also noch an anderer Stelle (im Userverzeichnis oder in der Registry) userspezifische Daten geben! Gibt es eine Stelle, wo ich noch suchen kann?
Viele Grüße,
Martin
Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige