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

VBA: Userform auf Tabellenblatt positionieren

Forumthread: VBA: Userform auf Tabellenblatt positionieren

VBA: Userform auf Tabellenblatt positionieren
03.02.2026 16:31:05
Joschi Witchcraft
Hallo Spezialisten.

Ich habe eine Userform, bei der mit mehreren Klicks "etwas" zusammengestellt wird, was letztlich als Ergebnis zurückgegeben und weiterverarbeitet wird.

Meine Frage: gibt es eine Möglichkeit, die Userform an einer bestimmten Stelle in meinem Tabellenblatt zu positionieren, z. B. Zelle C7.

Während der Anzeige ist kein Zugriff zum Tabellenblatt erforderlich. Deshalb Anzeige nicht "modeless".

Gruß Joschi
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA: Userform auf Tabellenblatt positionieren
03.02.2026 18:05:17
Yal
Hallo Joschi,

Sub Userform_positionieren()


With ActiveSheet.Range("C7")
Userform1.Top = .Top
Userform1.Left = .Left
End With
End Sub


VG
Yal
AW: VBA: Userform auf Tabellenblatt positionieren
04.02.2026 09:36:04
Joschi Witchcraft
Hallo Yal.

Auch wenn ich schon gelesen hatte, was Volti geschrieben hat. wollte ich den Versuch trotzdem machen. Die Userform steht nicht an der erwarteten Stelle und reicht oben über das Tabellenblatt hinaus.

Gruß Joschi.
Anzeige
AW: VBA: Userform auf Tabellenblatt positionieren
03.02.2026 21:16:06
volti
Hallo Joschi,

ich glaube nicht, dass es so einfach geht, wie Yal es vorgeschlagen hat.

Eine Userform ist eine ganz normale Windows-Dialogbox, die auch entsprechend auf Bildschirmpixel positioniert werden muss und nicht auf Excelpoints.

Hier ein möglicher Beispielcode zum Positionieren der Userform.

Private Declare PtrSafe Function FindWindowA Lib "user32" ( _

ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Private Declare PtrSafe Function SetWindowPos Lib "user32" ( _
ByVal hWnd As LongPtr, ByVal hWndInsertAfter As LongPtr, _
ByVal x As Long, ByVal y As Long, _
ByVal cx As Long, ByVal cy As Long, _
ByVal wFlags As Long) As Long

Private Sub UserForm_Activate()
Dim oCell As Range, hWnd As LongPtr
Const SWP_NOSIZE As Long = &H1

hWnd = FindWindowA("ThunderDFrame", Me.Caption) ' Handle der Userform holen
Set oCell = ActiveSheet.Range("C7")
With ActiveWindow.ActivePane
SetWindowPos hWnd, 0&, .PointsToScreenPixelsX(oCell.Left - 5), _
.PointsToScreenPixelsY(oCell.Top), _
0&, 0&, SWP_NOSIZE
End With
End Sub


Gruß
Karl-Heinz
Anzeige
AW: VBA: Userform auf Tabellenblatt positionieren
04.02.2026 09:40:09
Joschi Witchcraft
Hallo Volti.

Super Code. Die Useform steht genau an der gewünschten Stelle, unabhängig davon, ob Excel den kompletten Bildschirm belegt, oder nur einen Teil.

Vielen Dank.

Gruß Joschi
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18