Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
344to348
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
344to348
344to348
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Objekt formatieren mit Makro

Objekt formatieren mit Makro
03.12.2003 17:26:27
Steffan
Hallo liebe Spezialisten. Ich möchte in meiner Tabelle über ein Makro ein Diagramm erzeugen und als Objekt in ein Tabellenblatt einfügen. Das klappt soweit ganz gut. Jetzt mein Problem. Die Darstellung des Objekts ist mir zu klein. Ich brauch das Diagramm deutlich gestreckt (von Spalte C bis AE und Zeile 1 bis 20), weil ich sonst die Achsenbeschriftung und die Werte nicht erkennen kann. Ich habe schon versucht, das Diagramm nach der Erstellung durch mein Makro durch ein zweites Makro zu formatieren, bekomme aber dann die Fehlermeldung: Laufzeitfehler 1004: Die ChartObjects-Eigenschaft des Worksheet-Objektes kann nicht zugeordnet werden. Kann ich Excel dazu überreden mir mein Diagramm von vornherein in der gewünschten Größe darzustellen?
Gruß und Danke
Steffan

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Objekt formatieren mit Makro
03.12.2003 18:54:04
Jens Huthmann
Hallo Steffan,

ActiveSheet.Shapes(1).ScaleWidth 1.3, msoFalse, msoScaleFromTopLeft

hier für die 1,3-fache Breite. Leider ist es mir bisher nicht gelungen, das Diagramm als Activechart anzusprechen, sondern nur als "shape" mit der IndexNr. (Objekt Nr. x in dieser Tabelle)

Gruß
Jens Huthmann
EDV-Schulungen
www.jhuthmann.de
AW: Objekt formatieren mit Makro
03.12.2003 20:12:50
Steffan
Hallo Jens, bin leider nicht gut in VBA! Ich habe die Zeile, die du mir geschrieben hast eingefügt. Das Resultat war ein Absturz von Excel!! Ich hänge mein Diagramm erzeugendes Makro hier mal an. Vielleicht wirst du daraus schlau und kannst mir weiterhelfen.
Gruß
Steffan


Sub Diagramm_Bartels()
' Diagramm_Bartels Makro
Sheets("Leistungsprüfung").Select
Selection.AutoFilter Field:=2, Criteria1:="Bartels"
Range("A2:A100").Select
ActiveWindow.ScrollRow = 1
Range("A2:A100,K2:K100").Select
Range("K2").Activate
ActiveWindow.ScrollRow = 1
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Leistungsprüfung").Range( _
"A2:A100,K2:K100"), PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Auswertung"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Diagramm Bartels"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
With ActiveChart
.HasAxis(xlCategory, xlPrimary) = True
.HasAxis(xlValue, xlPrimary) = True
End With
ActiveChart.Axes(xlCategory, xlPrimary).CategoryType = xlCategoryScale
ActiveChart.HasLegend = False
ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowValue, LegendKey:=False
ActiveChart.HasDataTable = False
ActiveChart.Axes(xlValue).Select
With ActiveChart.Axes(xlValue)
.MinimumScaleIsAuto = True
.MaximumScale = 10
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
End With
ActiveChart.Axes(xlCategory).Select
With ActiveChart.Axes(xlCategory)
.CrossesAt = 1
.TickLabelSpacing = 3
.TickMarkSpacing = 1
.AxisBetweenCategories = True
.ReversePlotOrder = False
End With
With ActiveChart.Axes(xlCategory)
.CrossesAt = 1
.TickLabelSpacing = 1
.TickMarkSpacing = 1
.AxisBetweenCategories = True
.ReversePlotOrder = False
End With
ActiveChart.ChartArea.Select
ActiveSheet.Shapes("Diagramm 29").ScaleWidth 1.49, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("Diagramm 29").IncrementLeft -45#
ActiveSheet.Shapes("Diagramm 29").IncrementTop 0.75
ActiveSheet.Shapes("Diagramm 29").ScaleWidth 1.09, msoFalse, _
msoScaleFromTopLeft
ActiveChart.SeriesCollection(1).DataLabels.Select
Selection.AutoScaleFont = True
With Selection.Font
.Name = "Arial"
.FontStyle = "Standard"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
.Background = xlAutomatic
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Position = xlLabelPositionOutsideEnd
.Orientation = xlUpward
End With
ActiveChart.Axes(xlCategory).Select
Selection.TickLabels.AutoScaleFont = True
With Selection.TickLabels.Font
.Name = "Arial"
.FontStyle = "Standard"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
.Background = xlAutomatic
End With
Windows("Atemschutzleistungsprüfung.xls").ScrollColumn = 25
Windows("Atemschutzleistungsprüfung.xls").ScrollColumn = 10
ActiveChart.ChartArea.Select
ActiveSheet.Shapes("Diagramm 29").ScaleWidth 1.91, msoFalse, _
msoScaleFromTopLeft
Windows("Atemschutzleistungsprüfung.xls").ScrollColumn = 1
ActiveChart.Axes(xlCategory).Select
Selection.TickLabels.AutoScaleFont = True
With Selection.TickLabels.Font
.Name = "Arial"
.FontStyle = "Standard"
.Size = 6
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
.Background = xlAutomatic
End With
ActiveChart.Axes(xlValue).Select
With ActiveChart.Axes(xlValue)
.MinimumScaleIsAuto = True
.MaximumScale = 7
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
End With
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige