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

Objektgröße definieren

Objektgröße definieren
27.11.2004 13:55:04
Helge
Hallo,
mein Problem heute ist, ein Objektdefinierung über eine Eingabezelle
stattfinden zu lassen. Wahrscheinlich lässt sich dieses Problem nur
über VBA lösen und meine Vorkenntnisse in diesen Bereich halten sich
leider in Grenzen. Vielleicht findet sich jemand unter euch, der eine
Lösung, Ansatz oder einen Link zu diesem Thema kennt.
In meinem Beispiel soll die Elipse über Eingabezelle B2 in ihrer größe
beeinflusst werden und die Position am linken Zellenrand von F4 gehalten
werden.
https://www.herber.de/bbs/user/14014.xls
Gruß
Helge

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Objektgröße definieren
Ulf
Was ist mit der Top-Position?
Ulf
AW: Objektgröße definieren
Sven
Was für eine Maßeinheit soll das in B2 sein?
mfg Sven
AW: Objektgröße definieren
27.11.2004 14:16:14
Helge
Hallo Ulf und Sven,
die Maßeinheit soll wie in der AutoForm(cm)sein!
Gruß
Helge
AW: Objektgröße definieren
Ulf
Das beantwortet noch nicht meine Frage nach der Top-Position.
Ulf
AW: Objektgröße definieren
27.11.2004 14:45:46
Helge
Hallo K.Rola,
da sag ich doch "Wow"!
Vielen Dank.
Allerdings hätte ich noch zwei bis drei weitere Fragen,
die ich nach einigen ausprobieren in diesem Thread stellen
möchte. Vielleicht findest du nocheinmal später zeit hier
hinein zu schauen?
Hi Ulf, die Top-Position hat K.Rola erst einmal mit F3 festgelegt(ist O.K).
Nochmals Danke für die sachnelle Hilfe
Helge
Anzeige
AW: Objektgröße definieren
27.11.2004 17:04:20
Helge
Hallo,
mit dem von K.Rola zur Verfügung gestellten Code,
läßt sich mein "Oval 5" durch Eingabe in B2 in seiner
Größe definieren.
Wie kann oder muß ich den Code ergänzen/ändern,wenn ich mehr als
ein Oval brauche?
Und, was ist = 28,35?
Private Sub Worksheet_Change(ByVal Target As Range) Const G As Single = 28.35 Dim ov As Shape Set ov = Me.Shapes("Oval 5") With ov .Width = [b2] * G .Height = .Width .Left = [g10].Left .Top = [g9].Top End With End Sub
Gruß
Helge
AW: Objektgröße definieren
27.11.2004 17:26:16
Josef
Hallo Hekge!
Für mehrere Shapes kann man das ganze auch als Funktion auslagern.
Shreib in ein allgemeines Modul.
Option Explicit
Const G As Single = 28.35

Function SizeShape(Form As String, Grösse As Variant)
Dim shp As Shape
Set shp = ActiveSheet.Shapes(Form)
shp.Width = Grösse * G
shp.LockAspectRatio = msoTrue
End Function

In eine unbenützte Zelle schreibst du dann
=SizeShape("Ellipse 1";B2)
so kannst du mehrere Forms mit einem Code ansprechen!
28,35 ist der faktor zur umrechnung von cm in Punkt.
Gruß Sepp
Anzeige
AW: Objektgröße definieren
Ulf
Da fehlen dann aber die Positionen!
Ulf
AW: Objektgröße definieren
27.11.2004 17:49:50
Josef
Hallo Ulf!
Die .Top bzw. .Left Eigenschaften bleiben unverändert!
Ausserdem wäre es kein Problem die Positionen in die Funktion einzubauen.
Gruß Sepp
Komplett
27.11.2004 18:10:21
Josef
Hallo nochmal!
Hier eine Funktion mit allen Parametern

Function SizeShape2(Form As String, Optional Breite As Variant, _
Optional Höhe As Variant, Optional Links As Variant, Optional Oben As Variant, _
Optional Rotation As Variant)

Dim shp As Shape
Set shp = ActiveSheet.Shapes(Form)
With shp
If IsMissing(Breite) Then
.LockAspectRatio = msoTrue
.Height = Höhe * G
ElseIf IsMissing(Höhe) Then
.LockAspectRatio = msoTrue
.Width = Breite * G
Else
.LockAspectRatio = msoFalse
.Height = Höhe * G
.Width = Breite * G
End If
If IsMissing(Links) Then
Links = .Left / G
End If
If IsMissing(Oben) Then
Oben = .Top / G
End If
If IsMissing(Rotation) Then
Rotation = .Rotation
End If
.Left = Links * G
.Top = Oben * G
.Rotation = Rotation
End With
End Function

Gruß Sepp
Anzeige
AW: Komplett
Ulf
Du hast die Konstante G vergessen.
Ulf
die steht ja schon im Modul ;-)
27.11.2004 18:23:14
Josef
Gruß Sepp
AW: Komplett (besser)
27.11.2004 18:22:12
Josef

Function SizeShape2(Form As String, Optional Breite As Variant, _
Optional Höhe As Variant, Optional Links As Variant, Optional Oben As Variant, _
Optional Rotation As Variant)

Dim shp As Shape
Set shp = ActiveSheet.Shapes(Form)
With shp
If IsMissing(Breite) And IsMissing(Höhe) Then
Else
If IsMissing(Breite) Then
.LockAspectRatio = msoTrue
.Height = Höhe * G
ElseIf IsMissing(Höhe) Then
.LockAspectRatio = msoTrue
.Width = Breite * G
Else
.LockAspectRatio = msoFalse
.Height = Höhe * G
.Width = Breite * G
End If
End If
If Not IsMissing(Links) Then .Left = Links * G
If Not IsMissing(Oben) Then .Top = Oben * G
If Not IsMissing(Rotation) Then .Rotation = Rotation
End With
End Function

Gruß Sepp
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige