Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1684to1688
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ActiveSheet.Shapes("Diagramm 2").IncrementLeft

ActiveSheet.Shapes("Diagramm 2").IncrementLeft
11.04.2019 20:01:45
Adrian
Hallo,
erstmals muss ich gesetehen,dass ich bisher meine Makros nur mit dem Macrorecorder _ aufgezeichnet habe. Nun bekomme ich bei dem Code eine Fehlermeldung:

Sub Makro100()
' Makro100 Makro
'
Range("B13:N15").Select
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=Range( _
"'Organisatorisch Auswertung'!$B$13:$N$15")
ActiveSheet.Shapes("Diagramm 2").IncrementLeft -614.5454330709
ActiveSheet.Shapes("Diagramm 2").IncrementTop -165.4545669291
ActiveSheet.Shapes("Diagramm 2").ScaleWidth 3.9292928696, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("Diagramm 2").ScaleHeight 2.4886366288, msoFalse, _
msoScaleFromTopLeft
ActiveWindow.SmallScroll Down:=-6
ActiveChart.SetElement (msoElementChartTitleNone)
ActiveChart.SetElement (msoElementDataLabelOutSideEnd)
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
ActiveChart.Legend.Select
Selection.Position = xlTop
ActiveChart.Legend.IncludeInLayout = False
Application.CommandBars("Format Object").Visible = False
ActiveChart.PlotArea.Select
ActiveChart.ChartArea.Select
With ActiveSheet.Shapes("Diagramm 2").TextFrame2.TextRange.Font
.BaselineOffset = 0
.Size = 14
End With
End Sub

Ich vermute, dass es an der Bezeichnung "Diagramm 2" liegt. Wisst ihr, wie ich das Problem lösen kann? Ich wäre euch sehr dankbar.

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ActiveSheet.Shapes("Diagramm 2").IncrementLeft
11.04.2019 21:22:36
Rainer
Hallo Adrian,
beschreib doch wenigstens, was du eigentlich vorhast? Im besten Falle hast du auch eine Mappe dazu!
So anhand von einem Macro-Recorder-Code zu fachsimpeln ist ..., gerade wenn du nicht mal die Zeile nennst wo der Fehler auftritt!
Aber aus der Hüfte geschossen:
Das neue Diagramm (AddChart) hat natürlich einen anderen Namen. Lösung:
ActiveChart.Name = "Name of this Chart"
Der Befehl "IncrementLeft" verschiebt es X Pixel. Bei einem negativen Wert nehme ich an, dass das bereits bestehene "Diagramm 2" über das Ende der Welt geschoben werden soll. Analoges Problem bei "IncrementTop".
Gruß,
Rainer
Anzeige
AW: ActiveSheet.Shapes("Diagramm 2").IncrementLeft
11.04.2019 22:53:43
Adrian
Hallo Rainer,
vielen Dank für deine Hilfe.
Es tut mir Leid, dass ich das Problem nicht so ausführlich beschrieben habe.
Das Ziel der Makro ist es, dass durch das Klicken auf die Befehlsschaltfläche ein Balkendiagramm aufgeht.
Dabei ändere ich die Größe des Fensters bzw mache das Fenster größer. Am liebsten würde ich das in Vollbild haben wollen. Anschließend ändere ich ein paar Eigenschaften und mache die Schrift größer.
Das Problem tritt bei dieser Zeile auf:
ActiveSheet.Shapes("Diagramm 2").IncrementLeft -614.5454330709
Nochmals vielen Dank!
AW: ActiveSheet.Shapes("Diagramm 2").IncrementLeft
11.04.2019 23:27:43
Rainer
Hallo Adrian,
Probier mal so:

On Error Resume Next
ActiveSheet.Shapes("Balkendiagramm_neu").Delete
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Name = "Balkendiagramm_neu"
ActiveChart.SetSourceData Source:=Range( _
"'Organisatorisch Auswertung'!$B$13:$N$15")
ActiveSheet.Shapes("Balkendiagramm_neu").Left = Range("B13").Left
ActiveSheet.Shapes("Balkendiagramm_neu").Top = Range("B13").Top
Gruß,
Rainer
Anzeige
AW: ActiveSheet.Shapes("Diagramm 2").IncrementLeft
12.04.2019 09:05:52
Adrian
Hallo Rainer,
vielen Dank nochmals.
Leider bekomme ich es mit dem Code nicht hin. Kannst du mir sagen, wo genau ich es einfügen soll?
Es wäre sehr nett, wenn du mir den kompletten Code schicken könntest, sodass ich das nur noch einfügen muss.
Vielen Dank im Voraus.
Grüße
Adrian
AW: ActiveSheet.Shapes("Diagramm 2").IncrementLeft
12.04.2019 09:19:00
Rainer
Hallo Adrian,
bitte lade deine Mappe hoch. Bitte so, wie das Diagramm am Ende aussehen soll.
Dann mach ich dir den Code rein.
Gruß,
Rainer
AW: ActiveSheet.Shapes("Diagramm 2").IncrementLeft
12.04.2019 09:40:29
Adrian
im Anhang befindet sich die Mappe.
Es geht um das Register "Organisatorisch Auswertung". Dabei möchte ich auf die Kontrollfläche "Visualisieren" klicken damit das Balkendiagramm erscheint.
In dem Register "Mitarbeiter Auswertung" befinden sich ebenfalls zwei Schaltflächen "Visualisierung".
Könntest du bei den beiden Makros auch einstellen, dass sie in Vollbild erscheinen und die Schriftgröße auf 16 ist?
Ds wäre wirklich sehr nett von dir.
https://www.herber.de/bbs/user/129103.xlsm
Grüße
Adrian
Anzeige
AW: ActiveSheet.Shapes("Diagramm 2").IncrementLeft
12.04.2019 12:34:16
Rainer
Hallo Adrian,
schau mal hier: https://www.herber.de/bbs/user/129105.xlsm
Habe es alles entrümpelt. Es gibt jetzt 3 Subs, welche jeweils ein neues Diagramm erstellen. Aufgrund deiner Forderung "Vollbild" habe ich es jetzt so gemacht, dass die Diagramme nicht mehr im Tabellenblatt sind, sondern ein eigenes Sheet bekommen. Dieses wird jedes mal neu erstellt. Wenn es bereits besteht, dann kommt eine Abfrage "Löschen" oder "Abbrechen". Bei klick auf "Löschen" wird das Diagramm neu erstellt. Bei klick auf "Abbrechen" wird nur die alte Variante geöffnet.
Gruß,
Rainer
Anzeige
AW: ActiveSheet.Shapes("Diagramm 2").IncrementLeft
12.04.2019 15:48:35
Adrian
Hallo Rainer,
vielen Dank, dass du dir die Mühe gemacht hast und mir die Datei erstellt hast :-).
Ist es möglich, dass man die Meldung "Microsoft Excel löscht dieses Blatt endgültig. Möchten Sie den Vorgang fortsetzten?" nicht bekommt? Ich habe die Rückmeldung von meinen Kollegen bekommen, dass die Meldung sie verwirrt und sie davon ausgehen, dass das Datenblatt gelöscht wird.
Nochmals vielen Dank.
Gruß
Adrian
AW: ActiveSheet.Shapes("Diagramm 2").IncrementLeft
12.04.2019 15:55:06
Rainer
Ja man kann es unterdrücken und ohne Abfrage löschen.
Dann gibt es aber keine Warnung, dass ein gleichnamiges Diagramm verschwindet.
    For Each testChart In ThisWorkbook.Charts
If testChart.Name = "d_Org_Auswertung" Then
            Application.DisplayAlerts = False
testChart.Delete
            Application.DisplayAlerts = True
End If
Next
Diese beiden Zeilen muss du hinzufügen.
Die zweite Abfrage kannst du löschen:
    For Each testChart In ThisWorkbook.Charts
If testChart.Name = "d_Org_Auswertung" Then
testChart.Activate
Exit Sub     'Abbrechen
End If
Next
Es passiert aber auch nichts, wenn der Code drin bleibt.
Gruß,
Rainer
Anzeige
AW: ActiveSheet.Shapes("Diagramm 2").IncrementLeft
12.04.2019 16:01:18
Adrian
Hallo Rainer,
vielen vielen Dank du hast mir wirklich sehr weitergeholfen.
SChönes Wochenende dir.
Grüße
Adrian
AW: ActiveSheet.Shapes("Diagramm 2").IncrementLeft
12.04.2019 16:31:56
Rainer
Danke für deine Rückmeldung und dir auch ein schönes WE.
AW: ActiveSheet.Shapes("Diagramm 2").IncrementLeft
12.04.2019 12:47:00
Rainer
Hallo Adrian,
schau mal hier: https://www.herber.de/bbs/user/129105.xlsm
Habe es alles entrümpelt. Es gibt jetzt 3 Subs, welche jeweils ein neues Diagramm erstellen. Aufgrund deiner Forderung "Vollbild" habe ich es jetzt so gemacht, dass die Diagramme nicht mehr im Tabellenblatt sind, sondern ein eigenes Sheet bekommen. Dieses wird jedes mal neu erstellt. Wenn es bereits besteht, dann kommt eine Abfrage "Löschen" oder "Abbrechen". Bei klick auf "Löschen" wird das Diagramm neu erstellt. Bei klick auf "Abbrechen" wird nur die alte Variante geöffnet.
Gruß,
Rainer
Anzeige

90 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige