Wie kann man in Excel Linien drehen?
Hi,ich habe z.B. zwei Holzbalken. Nun soll einer davon in einem bestimmten Winkel zu den anderen verlaufen. Nun möchte ich dies so haben, dass wenn ich den Winkel der in einer Zelle steht ändere, sich auch die Grafik dazu ändert.Wie geht das und geht es überhaupt?Danke
3 Antworten
Ich habe mal auf die Schnelle den Makro-Rekorder angeschmissen und den Wert für die Drehung durch den Wert in der Zelle A1 ersetzt. Wenn in A1 322 steht, für 322°, dann kommt es in etwa hin.
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 230.25, 83.25, 181.5, 17.25). _
Select
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 232.5, 56.25, 180.75, 15.75). _
Select
Selection.ShapeRange.IncrementRotation Range("A1").Value '332.1445666667
Selection.ShapeRange.IncrementLeft -17.25
Selection.ShapeRange.IncrementTop -14.9353543307
Range("A1").Select
EIN Problem wird sein, dass das Rechteck immer um den Mittelpunkt gedreht wird und man es dann verschieben muss.
Man müsste also irgendwie ausrechnen, um wieviel man Left und Top verschieben muss, damit es wieder passt.
Das alles macht natürlich nur Sinn, wenn Du Dich einigermaßen mit VBA auskennst.
P.S.: Ich habe noch versucht Left und Top des zweiten Balkens auf die gleichen Werte wie beim ersten zu setzten, aber das klappt auch nicht, da der zweite gedreht ist.
Um die Rechnerei wird man wohl nicht herum kommen und damit bin ich wahrscheinlich überfordert.
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 230.25, 83.25, 181.5, 17.25). _
Select
Selection.ShapeRange.Name = "Balken1"
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 232.5, 56.25, 180.75, 15.75). _
Select
Selection.ShapeRange.Name = "Balken2"
ActiveSheet.Shapes("Balken2").IncrementRotation Range("A1").Value
ActiveSheet.Shapes("Balken2").Left = ActiveSheet.Shapes("Balken1").Left
ActiveSheet.Shapes("Balken2").Top = ActiveSheet.Shapes("Balken1").Top
Range("A1").Select
Nur mit VBA
ein Balken ist in einer 2-D-Darstellung ein (langgezogenes) Rechteck.
als erstes musst Du definieren, um welchen Punkt gedreht werden soll. Da xl kein Zeichenprogramm ist, musst Du die zB Oberkante des Balkens um den linken oberen Punkt drehen und dann das Ende der Oberkante definieren (als x-y), die Fkt dazu sind Tangens()*Balkenlänge und Cot()*Balkenlänge jeweils zum Drehpunkt(Def. ebenfalls über x,y) addiert.
All das dann in VBA umsetzen. Man kann zwar mit definierten Variablen arbeiten, trotzdem nicht ganz einfach.
Die anderen Punkte errechnen sich dann analog, also recht kompliziert, das tu ich mir heute nicht mehr an.
VBA erfordert schon "ein wenig" Einarbeitung.
Ist das schwierig?
Ich mein ist ja nur ne Linie die auf einen Wert reagiert.
Hast du vielleicht ein Beispielcode?