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

Ausdruck.AddShape / Zellpositionsbezug

Forumthread: Ausdruck.AddShape / Zellpositionsbezug

Ausdruck.AddShape / Zellpositionsbezug
13.10.2003 11:43:57
Guido
Hallo,

wie kann man den absoluten Bezug des VBA-Befehl: "Ausdruck.AddShape(Type, Left, Top, Width, Height)" in einen Zellpositionsbezug bringen?
Also, statt den absoluten Bezug ab der linken, oberen Tabellenecke (z.B. mit 0,0) den Bezug zur derzeit aktiven (bzw. markierten) Zelle (z.B. C9).

mfG
Guido
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ausdruck.AddShape / Zellpositionsbezug
13.10.2003 14:22:17
ANdreas
Hallo Guido,

diese Option gibt es direkt nicht, man kommt vielleicht über Umwege an eine entsprechnde Lösung.

Hier mal ein Vorschlag, leider nur mit Select.


Sub Makro3()
Dim sh As Shape
Set sh = ActiveSheet.Shapes.AddShape(msoShapeOvalCallout, 0, 0, 80#, 40#)
sh.Select
With Selection
.Characters.Text = "Kommentar"
.VerticalAlignment = xlCenter
.Cut
End With
Range("C10").Select
ActiveSheet.Paste
'Beispiel-Korrekturverschiebung
Selection.Left = Selection.Left + Columns(3).Width
Selection.Top = Selection.Top - Rows(10).Height
End Sub


Man könnte eventuell auch auf das Ausschneiden/Kopieren verzichten, wenn man die Spaltenbreiten/Zeilenhöhen aller Zellen (also alle die links bzw. drüber sind) berechnet und das Shape entsprechend verschiebt.

Hoffe das hilft weiter,
Andreas
Anzeige
AW: Ausdruck.AddShape / Zellpositionsbezug
13.10.2003 15:04:32
Guido
Hi Andreas,

zuerst einmal vielen Dank, für die Hilfe !!! :-)
Da ich nicht der versierte VBA-Nutzer bin, stolper ich auch direkt über Deine Korrekturverschiebung. Wie kommt diese zum Einsatz?

Gibt es vielleicht auch die Möglichkeit mit eine Definition einer Variablen der aktiven Zelle, die dann als Koordinaten verwendet werden können?

Vielleicht ja über der "ActiveCell-Eigenschaft" und mit Hilfe der "Activate-Methode" ?

Wie auch immer, trotzdem vielen, vielen Dank für dein reply :-)

Gruß Guido
Anzeige
AW: Ausdruck.AddShape / Zellpositionsbezug
13.10.2003 15:45:55
ANdreas
Hallo Guido,

hier noch mal ein etwas kommentiertes Beispiel, auch übersichtlicher weil ohne Select ;)


Sub Beispiel()
Dim sh As Shape
Dim i%, j%, iSum%, jSum%
i = ActiveCell.Width: j = ActiveCell.Height
iSum = 0: jSum = 0
'Doppelt so groß wie aktive Zelle
Set sh = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0, 0, 2 * i, 2 * j)
With sh
.Fill.Solid
.Fill.Transparency = 0.5
.Fill.ForeColor.SchemeColor = 44
.TextFrame.Characters.Text = "Hier der Text"
.TextFrame.VerticalAlignment = xlVAlignCenter
.TextFrame.HorizontalAlignment = xlHAlignCenter
.TextFrame.Characters.Font.Bold = True
'Hier erfolgt Berechnung der Position
'Kumulieren der Spaltenbreiten/Zeilenhoehen bis einschl.
'der aktiven Zelle
For i = 1 To ActiveCell.Column
iSum = iSum + Columns(i).Width
Next i
For j = 1 To ActiveCell.Row
jSum = jSum + Rows(j).Height
Next j
'Setzen der berechneten Position
.Left = iSum
.Top = jSum
Application.Wait Now + TimeValue("00:00:02") 'kurz warten
'weitere Verschiebung
.Left = .Left - ActiveCell.Width
.Top = .Top - ActiveCell.Height
MsgBox "weiter"
End With
End Sub


Hierbei wird ein neues Rechteck eingefügt (mit fettem, zentriertem Text, und Farbänderung).
Danach werden die Spaltenbreiten bzw. Zeilenhöhen aller Spalten/Zeilen aufsummiert, die sich über/vor einschließlich der aktiven Zelle befinden. Das Rechteck wird dann an diese Position verschoben. Es befindet sich also rechts unter der aktiven Zelle.
Die zweite Verschiebung sollte das Rechteck genau über die Zelle verschieben.

Hoffe das hilft weiter,

Gruß
Andreas
Anzeige
AW: Ausdruck.AddShape / Zellpositionsbezug
13.10.2003 16:04:45
Guido
Hi, ich bin's noch mal...

Das jetzige Ergebnis haut mich glatt um !!! Genau nach meinen Vorstellungen !!!
Find ich echt prima !!! Vielen Dank noch einmal. :-)

Gruß Guido

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige