Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1084to1088
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

VBA Diagramme Position

VBA Diagramme Position
WolfgangN
Hallo,
ich habe ca. 25 Diagramme, die alle gleich groß sind. Ich möchte jetzt alle Diagramme exakt ausrichten.
Es sollen jeweils 3 nebeneinander und dann darunter wieder 3 Diagramme usw. dargestellt werden.
Von Tino habe ich ein Makro gefunden, welches alle untereinander anzeigt. Ich habe es zwar geschafft alle nebeneinander anzuordnen, aber nicht jeweils 3 nebeneinander und dann wieder 3.
Das Ausrichten per Hand mit "Alt" an einzelnen Zellen ist schlecht möglich, da die Zellen unterschiedliche Größe haben.
Vielen Dank für die Hilfe.
Grüße von Wolfgang
Hier das Makro, welches alle Diagramme nebeneinander darstellt:
Option Explicit
Sub Verschieben()
Dim objShape As ChartObject, MerkShape As ChartObject
For Each objShape In Sheets("Tabelle1").ChartObjects
With objShape
If MerkShape Is Nothing Then
.Left = 10: .Top = 750 'pos. für erstes Elemente
Else
'pos. für nachfolgende Elemente, abhängig vom vorhergehenden
.Top = MerkShape.Top
.Left = MerkShape.Left + MerkShape.Height + 140
End If
Set MerkShape = objShape
End With
Next objShape
End Sub

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

Betreff
Benutzer
Anzeige
AW: VBA Diagramme Position
09.07.2009 12:05:10
Tino
Hallo,
sind diese alle gleich groß, versuche es mal so.
Sub Verschieben()
Dim objShape As ChartObject, MerkShape As ChartObject
Dim iCount As Integer

iCount = 1
For Each objShape In Sheets("Tabelle3").ChartObjects
 With objShape
    If MerkShape Is Nothing Then
     .Left = 10: .Top = 750 'pos. für erstes Elemente 
    Else
     'pos. für nachfolgende Elemente, abhängig vom vorhergehenden 
      iCount = IIf(iCount = 3, 1, iCount + 1)
     
     If iCount > 1 Then
        .Top = MerkShape.Top
        .Left = MerkShape.Left + MerkShape.Width + 20
     Else
        .Left = 10
        .Top = MerkShape.Top + MerkShape.Height + 20
     End If
    End If
    
    Set MerkShape = objShape
 End With
Next objShape

End Sub

Gruß Tino
Anzeige
Danke
09.07.2009 12:18:11
WolfgangN
Hallo Tino,
vielen Dank, klappt perfekt.
Gruß
Wolfgang

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige