Autor
|
Thema: Makro dynamisch gestalten (1268 mal gelesen)
|
Shor-ty Ehrenmitglied V.I.P. h.c.
Beiträge: 2463 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2112
|
erstellt am: 16. Mai. 2013 11:21 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich hätte nochmals eine Frage bezüglich Makros. Im Anhang ist ein Vortestdatenblatt zu sehen. Mit dem Button auf der rechten Seite kann man eine Grafik einfügen. Diese wird dann für den ersten Button in B3 eingefügt. Zuletzt habe ich damals immer neue Makros gemacht, in dem ich die Positionen der Zellen neu eingetippt habe. Frage hierbei wäre, ob es möglich ist, ein dynamisches Makro zu erstellen, das die Position der einzufügenden Bilder immer auf die Position des Buttons (Spalte|Zeile) - x Spalten bezieht.
------------------ Grüße Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nepumuk Mitglied Entwicklungsleiter
Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 16. Mai. 2013 12:26 <-- editieren / zitieren --> Unities abgeben: Nur für Shor-ty
Hallo, ein Beispiel wie du an die Zeile / Spalte der Zelle kommst in welcher die linke obere Ecke des Buttons liegt: Code: Public Sub Klick() Dim objShape As Shape Dim objCell As Range Set objShape = Tabelle1.Shapes(Application.Caller) 'Tabellenname anpassen (Objektname) Set objCell = objShape.TopLeftCell MsgBox objCell.Row MsgBox objCell.Column Set objCell = Nothing Set objShape = Nothing End Sub
Ausgehend von diesen Koordinaten kannst du ja die Position des Bildes ganz einfach berechnen.------------------ Gruß Nepumuk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Ehrenmitglied V.I.P. h.c.
Beiträge: 2463 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2112
|
erstellt am: 17. Mai. 2013 11:40 <-- editieren / zitieren --> Unities abgeben:
|
Shor-ty Ehrenmitglied V.I.P. h.c.
Beiträge: 2463 Registriert: 27.08.2010
|
erstellt am: 21. Mai. 2013 12:05 <-- editieren / zitieren --> Unities abgeben:
Hallo, mit diesen zwei Variablen:
Code:
objCell.Row objCell.Column
habe ich ja jetzt die Position meines Buttons. Leider schaffe ich es jetzt nicht eine Zelle zu selektieren. Über Select.Range("A3"); kann ich ja eine Zelle auswählen. Allerdings ist mir aufgefallen, dass ich dort keine Dynamik reinbringe: Code:
Select.Range("objCell.Row;objCell.Column")
Das dies nicht funktioniert ist mir bewusst. Allerdings sollte ich doch so in dieser Richtung zu meinem Ziel gelangen oder? Grüße Tobi
------------------ Grüße Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 21. Mai. 2013 12:49 <-- editieren / zitieren --> Unities abgeben: Nur für Shor-ty
|
Nepumuk Mitglied Entwicklungsleiter
Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 21. Mai. 2013 16:04 <-- editieren / zitieren --> Unities abgeben: Nur für Shor-ty
Hallo, mal ein Beispiel für 3 Spalten links vom Button: Code: Public Sub Klick() Dim objShape As Shape Set objShape = Tabelle1.Shapes(Application.Caller) Call objShape.TopLeftCell.Offset(0, -3).Select Set objShape = Nothing End Sub
------------------ Gruß Nepumuk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |