Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: UserForm Position, Code für alle Blätter

UserForm Position, Code für alle Blätter
18.10.2014 09:35:55
rieckmann
Hallo und guten Morgen,
dieser Code den ich gefunden habe, bestimmt die Position einer UserForm durch Eingabe der Spalte und Zeile in den Zellen A1 + A2.
O.K. die eingegebene Position stimmt nicht so ganz, aber zum feintunen finde ich die Lösung ganz toll.
Wie kann ich den Code anwenden, wenn ich die Einstellung im Blatt "Menü" vornehmen möchte, und die Anwendung in den Blättern 1 - 9 stattfinden sollen.
Also die Position im Blatt "Menü" einstellen so dass sich dann die UserForm in den Blättern 1 bis 9 dann in dieser eingestellten Position, beim öffnen des jeweiligen Blattes öffnet.
Oh Man, ich hoffe das ich es verständlich erklärt habe !
Gruß
Fred
Hier die Beispielmappe:
https://www.herber.de/bbs/user/93225.xls

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UserForm Position, Code für alle Blätter
18.10.2014 09:46:53
Crazy
Hallo Fred
wo ist das Problem?
die Userform öffnet sich doch in jedem Tabellenblatt an gleicher Stelle
MfG Tom

AW: UserForm Position, Code für alle Blätter
18.10.2014 13:27:41
rieckmann
Hallo Tom,
da diese Tabelle auf verschiedenen PC`s läuft, verschiebt sich schon mal die Ansicht der UserForm.
Zumindest wirkt es so, wenn die Monitore unterschiedliche Formate haben.
Deshalb möchte ich das beim öffnen eines der 11 Tabellenblätter die Position der UserForm so anpasst, wie es im Tabellenblatt "Menü" eingestellt wurde.
Oder gibt es eine einfachere Lösung, wie ich die UserForm in Zeile 1 links oben platzieren kann ?
Gruß
Fred

Anzeige
AW: UserForm Position, Code für alle Blätter
18.10.2014 13:50:28
Daniel
Hi
das Grundsätzliche Problem ist, dass du die Startposition der Userform immer bezogen auf den gesamten Bildschirm angibst.
die Koordinaten einer Zelle beziehen sich aber immer auf die Position innerhalb einer Tabelle.
wenn du jetzt eine Userform genau bei einer Zelle platzieren willst, musst du, um die Bildschirmkoordinaten für die Userform zu erhalten, folgende Werte berücksichtigen bzw zusammenaddieren:
- Position des Excelfensters auf dem Bildschirm
- Rahmenbreite des Excelfensters
- für die y-Koordinate Höhe der Menüleiste und Bearbeitungszeile
- Position des Mappenfensters innerhalb des Excelfensters
- Rahmenbreite des mappenfensters
- Breite und Höhe der Zeilen/Spaltenköpfe
- Position der Zelle im Blatt
also nicht so ganz einfach, google man "Userform an Zelle ausrichten", du solltest genügend finden.
Gruß Daniel

Anzeige
AW: UserForm Position, Code für alle Blätter
18.10.2014 14:01:30
rieckmann
Hallo Daniel,
danke für die Info.
UserForm an Zelle ausrichten ist ein guter Tipp.
Die andere Sache habe ich es hinbekommen.
Private Sub Worksheet_Activate()
Tabelle1.Cells.Interior.ColorIndex = xlNone
UserForm1.Show
End Sub
Gruß
Fred

Anzeige
AW: UserForm Position, Code für alle Blätter
20.10.2014 15:45:41
Ewald
Hallo Fred,
teste mal so
Private Sub UserForm_Initialize()
Dim zeile, spalte, mytop, myleft, x, y
On Error GoTo fehler
zeile = Tabelle1.Cells(1, 1)
spalte = Tabelle1.Cells(2, 1)
y = Application.Height - ActiveWindow.Height + 14
x = Application.Width - ActiveWindow.Width + 20
mytop = Tabelle1.Cells(zeile, spalte).Top + y
myleft = Tabelle1.Cells(zeile, spalte).Left + x
Tabelle1.Cells(zeile, spalte).Interior.ColorIndex = 3
UserForm1.StartUpPosition = 0
UserForm1.Left = myleft
UserForm1.Top = mytop
Exit Sub
fehler:
MsgBox "Programm kann nicht vollständig ausgeführt werden", , "Ein Fehler ist aufgetreten"
End Sub
Bedenke aber das die anderen Tabellen auch das gleiche Layout wie Tabelle1 haben muß,ansonsten mußt du außer der Zeilen. und Spaltenvorgabe in Tabelle1, "Tabelle1" durch "ActiveSheet" ersetzen.
Gruß Ewald

Anzeige
AW: UserForm Position, Code für alle Blätter
20.10.2014 17:45:58
rieckmann
Hallo Ewald,
danke für deine Mühe,
und die farbige Markierung in der Zelle wird im Tabellenblatt7 in richtiger Position angezeigt,
aber die Userform1 öffnet sich nicht !
Ich habe die Eingabe-Zellen auf dem Tabellenblatt7 in A1 und A2.
Der CommandButton2, der die UserForm auslösen soll, ist auf Tabellenblatt "Menü".
Private Sub CommandButton2_Click()
Dim zeile, spalte, mytop, myleft, x, y
On Error GoTo fehler
zeile = Tabelle7.Cells(1, 1)
spalte = Tabelle7.Cells(2, 1)
y = Application.Height - ActiveWindow.Height + 14
x = Application.Width - ActiveWindow.Width + 20
mytop = Tabelle7.Cells(zeile, spalte).Top + y
myleft = Tabelle7.Cells(zeile, spalte).Left + x
Tabelle7.Cells(zeile, spalte).Interior.ColorIndex = 3
UserForm1.StartUpPosition = 0
UserForm1.Left = myleft
UserForm1.Top = mytop
Exit Sub
fehler:
MsgBox "Programm kann nicht vollständig ausgeführt werden", , "Ein Fehler ist aufgetreten"
End Sub

Gruß
Fred

Anzeige
AW: UserForm Position, Code für alle Blätter
20.10.2014 18:27:05
rieckmann
Hallo Ewald,
danke für deine Mühe,
und die farbige Markierung in der Zelle wird im Tabellenblatt7 in richtiger Position angezeigt,
aber die Userform1 öffnet sich nicht !
Ich habe die Eingabe-Zellen auf dem Tabellenblatt7 in A1 und A2.
Der CommandButton2, der die UserForm auslösen soll, ist auf Tabellenblatt "Menü".
Private Sub CommandButton2_Click()
Dim zeile, spalte, mytop, myleft, x, y
On Error GoTo fehler
zeile = Tabelle7.Cells(1, 1)
spalte = Tabelle7.Cells(2, 1)
y = Application.Height - ActiveWindow.Height + 14
x = Application.Width - ActiveWindow.Width + 20
mytop = Tabelle7.Cells(zeile, spalte).Top + y
myleft = Tabelle7.Cells(zeile, spalte).Left + x
Tabelle7.Cells(zeile, spalte).Interior.ColorIndex = 3
UserForm1.StartUpPosition = 0
UserForm1.Left = myleft
UserForm1.Top = mytop
Exit Sub
fehler:
MsgBox "Programm kann nicht vollständig ausgeführt werden", , "Ein Fehler ist aufgetreten"
End Sub

Gruß
Fred

Anzeige
AW: UserForm Position, Code für alle Blätter
20.10.2014 19:08:39
rieckmann
Na super,
so klapps das ja sehr gut.
Danke und Gruß
Fred
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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