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

VBA - Autoform in Diagramm formatieren

VBA - Autoform in Diagramm formatieren
Markus
Hallo zusammen,
ich habe in einer Arbeitsmappe ca. 30 Diagramme die zusätzlich eingefügte Autoformen enthalten.
Nun möchte ich per VBA diese Autoformen verschieben und die Größe ändern.
Lieder liefert mir der Markorecorder keine Ergebnisse da er beim markieren der Formen nichts aufzeichnet. Muss ich vorher alle Formen mit Namen belegen oder passiert dies automatisch durch Excel.
Danke

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA - Autoform in Diagramm formatieren
08.07.2009 10:40:24
Tino
Hallo,
hier mal ein Beispiel für die höhe und die linke position.
Sub Verschieben()
Dim objShape As Shape, MerkShape As Shape

For Each objShape In Sheets("Diagramm1").Shapes
 
 With objShape
    
    If MerkShape Is Nothing Then
     .Left = 10: .Top = 10 'pos. für erstes Elemente 
    Else
     'pos. für nachfolgende Elemente, abhängig vom vorhergehenden 
     .Left = MerkShape.Left
     .Top = MerkShape.Top + MerkShape.Height + 5
    End If
   
    Set MerkShape = objShape
 End With
Next objShape

End Sub


Gruß Tino

Anzeige
AW: VBA - Autoform in Diagramm formatieren
08.07.2009 10:45:44
Markus
Danke für die Hilfe, Problem ist jedoch dass nur bestimmte Shapes verschoben werden sollen.
Bei dem VBA werden ja alle verschoben. Zudem würde ich gerne noch die Größe der Shapes anpassen.
AW: VBA - Autoform in Diagramm formatieren
08.07.2009 11:01:41
Tino
Hallo,
z. Bsp. so nur für Button.
Sub Verschieben()
Dim objShape As Shape, MerkShape As Shape

For Each objShape In Sheets("Diagramm1").Shapes
 
 With objShape
   If .FormControlType = xlButtonControl Then 'nur Button 
     
     If MerkShape Is Nothing Then
      .Left = 10: .Top = 10: .Width = 70: .Height = 20 'pos. für erstes Elemente 
     Else
      'pos. für nachfolgende Elemente, abhängig vom vorhergehenden 
      .Left = MerkShape.Left
      .Top = MerkShape.Top + MerkShape.Height + 5
      .Width = 50 'breide 
      .Height = 20 'höhe 
     End If
    
     Set MerkShape = objShape
   
   End If
 End With
Next objShape

End Sub


Gruß Tino

Anzeige

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige