24.10.2016, 11:03
Hallo Leute,
ich möchte mittels eines Makros Steuerelemente (konkret: eine DropDown-Liste und eine ScrollBar) in einer bestimmten Formatierung einfügen. Ich scheitere jedoch schon beim einfachen Einfügen der Elemente. Da ich mich nicht besonders gut mit Makros auskenne, habe ich die Aufzeichnungsfunktion genutzt. Diese ergab für die ScrollBar folgenden Code:
ActiveSheet.ScrollBars.Add(139.5, 67.5, 56.25, 18.75).Select
Range("D6").Select
ActiveSheet.Shapes.Range(Array("Scroll Bar 1")).Select
With Selection
.Value = 0
.Min = 80
.Max = 120
.SmallChange = 1
.LargeChange = 10
.LinkedCell = "$F$6"
.Display3DShading = True
End With
Range("D6").Select
ActiveSheet.Shapes.Range(Array("Scroll Bar 1")).Select
ActiveSheet.Shapes("Scroll Bar 1").ScaleWidth 1.1333333333, msoFalse, _
msoScaleFromBottomRight
ActiveSheet.Shapes("Scroll Bar 1").ScaleHeight 1.4, msoFalse, _
msoScaleFromBottomRight
ActiveSheet.Shapes("Scroll Bar 1").ScaleWidth 1.0352941176, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("Scroll Bar 1").ScaleHeight 0.5714285714, msoFalse, _
msoScaleFromTopLeft
Range("D6").Select
So wie ich es verstehe, passiert nun folgendes:
1. ScrollBar wird erstellt (ich weiß nicht was die nummern in der Klammer bedeuten)
2. Die ScrollBar mit dem Namen "Scroll Bar 1" wird editiert
3. Die Größe und Position wird angepasst (das habe ich gemacht, indem ich die ScrollBar ausgewählt habe und sie mit gedrückter Alt-Taste einer Zelle angepasst habe)
Mein Problem ist jetzt aber, wenn ich die ScrollBar lösche und das Makro erneut ausführe, hängt es bei der Editierung. Meine Vermutung ist, dass die neu erstellte ScrollBar nicht den Namen "Scroll Bar 1" hat und somit auch nicht zum Bearbeiten ausgewählt werden kann.
Deshalb habe ich folgende Fragen:
Wie funktioniert die Syntax bei der Erzeugung von Steuerelementen?
Wie erstelle ich Steuerelemente mit von mir festgelegten Namen?
Wie kann man Steuerelemente mittels Makro an die Größe einer Zelle anpassen und auf dem Blatt anordenen (z.B. genau auf einer Zelle)?
Vielen Dank für Eure Antworten
Gruß Max
ich möchte mittels eines Makros Steuerelemente (konkret: eine DropDown-Liste und eine ScrollBar) in einer bestimmten Formatierung einfügen. Ich scheitere jedoch schon beim einfachen Einfügen der Elemente. Da ich mich nicht besonders gut mit Makros auskenne, habe ich die Aufzeichnungsfunktion genutzt. Diese ergab für die ScrollBar folgenden Code:
ActiveSheet.ScrollBars.Add(139.5, 67.5, 56.25, 18.75).Select
Range("D6").Select
ActiveSheet.Shapes.Range(Array("Scroll Bar 1")).Select
With Selection
.Value = 0
.Min = 80
.Max = 120
.SmallChange = 1
.LargeChange = 10
.LinkedCell = "$F$6"
.Display3DShading = True
End With
Range("D6").Select
ActiveSheet.Shapes.Range(Array("Scroll Bar 1")).Select
ActiveSheet.Shapes("Scroll Bar 1").ScaleWidth 1.1333333333, msoFalse, _
msoScaleFromBottomRight
ActiveSheet.Shapes("Scroll Bar 1").ScaleHeight 1.4, msoFalse, _
msoScaleFromBottomRight
ActiveSheet.Shapes("Scroll Bar 1").ScaleWidth 1.0352941176, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("Scroll Bar 1").ScaleHeight 0.5714285714, msoFalse, _
msoScaleFromTopLeft
Range("D6").Select
So wie ich es verstehe, passiert nun folgendes:
1. ScrollBar wird erstellt (ich weiß nicht was die nummern in der Klammer bedeuten)
2. Die ScrollBar mit dem Namen "Scroll Bar 1" wird editiert
3. Die Größe und Position wird angepasst (das habe ich gemacht, indem ich die ScrollBar ausgewählt habe und sie mit gedrückter Alt-Taste einer Zelle angepasst habe)
Mein Problem ist jetzt aber, wenn ich die ScrollBar lösche und das Makro erneut ausführe, hängt es bei der Editierung. Meine Vermutung ist, dass die neu erstellte ScrollBar nicht den Namen "Scroll Bar 1" hat und somit auch nicht zum Bearbeiten ausgewählt werden kann.
Deshalb habe ich folgende Fragen:
Wie funktioniert die Syntax bei der Erzeugung von Steuerelementen?
Wie erstelle ich Steuerelemente mit von mir festgelegten Namen?
Wie kann man Steuerelemente mittels Makro an die Größe einer Zelle anpassen und auf dem Blatt anordenen (z.B. genau auf einer Zelle)?
Vielen Dank für Eure Antworten
Gruß Max