Anzeige
Archiv - Navigation
912to916
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
912to916
912to916
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

shape per VBA immer in der Mitte einfügen

shape per VBA immer in der Mitte einfügen
08.10.2007 20:28:13
Alex
Guten Abend liebe Excelfreunde!
Ich schlage mich da mit einem Problem herum, wo ich einen Rat von euch benötige! Ich füge über per VBA geladene benutzerdefinierte Symbolleisten Shapes ein. Wie kann ich Excel dazu veranlassen, diese Shapes immer in der Bildschirmmitte einzufügen. Das herkömmlich Einfügen stellt kein Problem dar, lediglich wenn das dargestellte Tabellenblatt über die Bildlaufleisten verschoben wird, wird das eingefügt Objekt sonst nicht mehr wahrgenommen.
Danke für eure Tipps.
lg alex

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: shape per VBA immer in der Mitte einfügen
08.10.2007 21:02:54
Daniel
Hi
ein Shape in der Bildschirmmitte des Monitors einzufügen wird sehr aufwendig, da sich das Bezugsssystem für die Shape-Koordinaten das Excelfenster ist, d.h. der Punkt (0 / 0) ist immer linke obere Ecke der Zelle A1.
Um jetzt den Shape in der Bildschirmmitte zu positioneren, müsstest du erst die Bildschirmposition der Applikation, die Postiion des Aktiven Fensters innerhalb der Applikation sowie den Scrollzustand des Aktiven Fensters ermitteln, um daraus irgendwie die Koordinaten der Bildschirmmitte zu bekommen.
Wesentlich einfacher sieht die Sache aus, wenn du deine Anforderung auf "in die Mitte des aktiven Excel-Fensters" beschränkst.
du kannst mit den Funktionen:

ActiveWindow.VisibleRange.top
ActiveWindow.VisibleRange.left


die Koordinaten der Linken oberen Ecke des sichtbaren bereiches abfragen, und mit


ActiveWindow.VisibleRange.Width
ActiveWindow.VisibleRange.Height


die Höhe und die Breite des sichtbaren Bereichs abfragen.
damit solltest du in der Lage sein, die erforderlichen Koordinaten zu berechnen, um dein Shape in der Mitte des sichtbaren Bereichs zu plazieren.
(Berechnungsformel für die X-Position wäre:


Links sichtbarer Bereich + (Breite sichtbarerer Bereich  - Breite Shape) /2


die Höhe dann ähnlich.
Allerdings gilt das dann nur für den aktuellen Scrollzustand.
Wenn du jetzt im Tabellenblatt herumscrollst, verschiebt sich natürlich auch das Shape, weil das Bezugssysstem ja die Zellen sind
Soll das Shape wie eine Symbolleiste oder eine Userform immer sichtbar bleiben, müsstest du ein Eventgesteuertes Makro schreiben, das das Shape immer wieder neu positioniert.
Da meines Wissen nach für das Scrollen noch kein Event gibt, musst du hier wahrscheinlich auf SelectionChange zurürckgreifen.
Gruß, Daniel

Anzeige
AW: shape per VBA immer in der Mitte einfügen
09.10.2007 09:30:00
alex
Hallo Daniel!
Mir würde reichen das Shape in der jeweils linken oberen Ecke einzufügen (auch nach dem Scrollvorgang) ich habe da zwar einiges in der Recherche gefunden komme damit aber nicht ganz klar.
Ich möchte lediglich über einen Commandbutton das Shape von Tabelle 1 nach Tabelle 2 kopieren - in der oben beschriebenen Form!
lg alex

AW: shape per VBA immer in der Mitte einfügen
09.10.2007 09:31:00
alex
Hallo Daniel!
Mir würde reichen das Shape in der jeweils linken oberen Ecke einzufügen (auch nach dem Scrollvorgang) ich habe da zwar einiges in der Recherche gefunden komme damit aber nicht ganz klar.
Ich möchte lediglich über einen Commandbutton das Shape von Tabelle 1 nach Tabelle 2 kopieren - in der oben beschriebenen Form!
lg alex

Anzeige
AW: shape per VBA immer in der Mitte einfügen
09.10.2007 09:58:49
ChrisL
Hallo alex
Etwas zum starten...

Sub Macro1()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim obDeinShape As Object
Set WS1 = Worksheets("Tabelle1")
Set WS2 = Worksheets("Tabelle2")
Set obDeinShape = WS1.Shapes("Rectangle 1")
obDeinShape.Copy
WS2.Select
ActiveWindow.VisibleRange.Select
WS2.Paste
End Sub


Gruss
Chris

AW: shape per VBA immer in der Mitte einfügen
09.10.2007 12:13:50
alex
Hallo Chris!
Mit dem bin ich schon hoch zufrieden - mehr muss es gar nicht sein. Vielen lieben Dank. Wusste, dass hier im Forum auf die Leute verlass ist.
schönen Tag noch
lg alex

169 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige