Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
320to324
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
320to324
320to324
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige