Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Userform auf Position

Forumthread: Userform auf Position

Userform auf Position
02.05.2003 21:22:38
Eugen
Hallo Forum
In einem Tabellenblatt möchte ich über einer Zahlenreihe eine Userform positionieren.
Höhe und Breite der Userform ist mit Height, Width festgelegt.
Wie kann ich die Userform auf einen bestimmten Platz positionieren?
Mit StartUpPosition erscheit mir eine genaue Positionierung der Form, auf dem Tabellenblatt nicht möglich.

Ach ja die Userform ist ungebunden.

Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, ByVal _
lpWindowName As String) As Long

Private Declare Function EnableWindow Lib "user32" (ByVal _
hwnd As Long, ByVal fEnable As Long) As Long

Private Sub UserForm_Activate()
Me.Caption = "Ungebundene Userform"
Label1.Caption = "Klicken Sie innerhalb der Tabelle"
Label2.Caption = ""
EnableWindow FindWindow("XLMAIN", vbNullString), True
End Sub

Private Sub cmdBeenden_Click()
Unload Me
End
End Sub

Danke für Eure Hilfe
Eugen


Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Userform auf Position
02.05.2003 21:33:41
Harry_W

Hallo Eugen

In Eigenschaften deiner UserForm steht
left für Pos von links
Top für Pos von oben
und StartupPpsition = manuell

mfg

Harry_W

Re: Userform auf Position
02.05.2003 21:36:01
dkli

Hallo Eugen,

Hinter StartUpPosition versteckt sich die Antwort. Bei Einstellung StartUpPosition=0 (manual) lässt sich die Position über top und left exakt definieren.

Gruß

Dieter

Anzeige
Re: Danke eine Frage noch
03.05.2003 00:05:06
Eugen

Das klappt super.
Aber gibt es eine möglichkeit die Form an eine Tabelle zu binden?

Da die Form die Werte left=0 , top=0 als absolute Position vom Bildschirm annimmt.
Die Tabelle egal in welcher Größe mit Range("A1").top ebenfalls 0 ausgibt.
Wenn jetzt Excel eine Menüleiste mehr oder eine andere Größe hat stimmt die Platzierung der Form nicht mehr.

Danke für eure Geduld mit mir
Eugen

Anzeige
Re: Danke eine Frage noch
03.05.2003 21:33:15
dkli

Hallo Eugen,

ich weiß ja nicht wie dein Formular aussieht, aber wenn du Eingabefelder unbedingt binden willst, dann füge sie doch direkt in deine Tabelle ein.

Lass' dir die Symbolleiste "Steuerelement-Toolbox" anzeigen und dann füge die entsprechenden Felder bei gedrückter ALT-Taste (Verankerung in Zellen!) direkt oberhalt deiner Daten ein.

Viel Spaß

Dieter

Anzeige
Danke, ist gelöst
05.05.2003 09:00:59
Eugen

Danke für eure Hilfe
Das Proplem wurde gelöst mit:

Range("A1").RowHeight = UserForm1.Height - 3
UserForm1.StartUpPosition = 0
UserForm1.Left = ActiveWindow.Left + 2
UserForm1.Top = ActiveWindow.Top + 82
Schönen Tag noch
Eugen

;
Anzeige

Infobox / Tutorial

Userform auf Position in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Userform in Excel VBA an einer bestimmten Position zu platzieren, gehe wie folgt vor:

  1. Userform erstellen: Öffne den VBA-Editor (ALT + F11) und füge eine neue Userform hinzu.

  2. Eigenschaften anpassen:

    • Setze StartUpPosition auf 0 (manuell).
    • Lege die Height und Width der Userform fest.
  3. Position festlegen:

    • Verwende die Eigenschaften Top und Left, um die exakte Position auf dem Bildschirm zu definieren.
    • Beispiel:
      UserForm1.Left = 100 ' Position von links
      UserForm1.Top = 200  ' Position von oben
  4. Userform anzeigen: Nutze den Befehl UserForm1.Show, um die Userform anzuzeigen.

Mit diesen Schritten kannst du die Userform in Excel VBA positionieren.


Häufige Fehler und Lösungen

  • Fehler: Userform wird an einer unerwarteten Position angezeigt.

    • Lösung: Stelle sicher, dass StartUpPosition auf 0 (manuell) eingestellt ist. Überprüfe außerdem die Werte von Top und Left.
  • Fehler: Die Userform bleibt beim Scrollen der Tabelle nicht an der richtigen Stelle.

    • Lösung: Ziehe in Betracht, die Userform direkt in die Tabelle einzufügen oder die Positionen dynamisch anzupassen, wenn die Tabelle sich ändert.

Alternative Methoden

Falls du eine dynamische Positionierung der Userform benötigst, kannst du die Position beim Aktivieren der Userform mithilfe von VBA anpassen:

Private Sub UserForm_Activate()
    Me.Left = ActiveWindow.Left + 50
    Me.Top = ActiveWindow.Top + 100
End Sub

Diese Methode verwendet die aktuellen Positionen des aktiven Fensters, um die Userform korrekt zu positionieren.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die Userform positionieren kannst:

Private Sub UserForm_Activate()
    UserForm1.Height = 300
    UserForm1.Width = 400
    UserForm1.StartUpPosition = 0
    UserForm1.Left = ActiveWindow.Left + 10
    UserForm1.Top = ActiveWindow.Top + 50
End Sub

Mit diesem Code wird die Userform jedes Mal an der gewünschten Position erscheinen, wenn sie aktiviert wird.


Tipps für Profis

  • Überlege, ob du die UserForm an bestimmte Zellen in deiner Tabelle binden möchtest. Du kannst die Top und Left Positionen basierend auf den Zellpositionen berechnen.
  • Nutze die FindWindow-Funktion, um die Userform über die Excel-Oberfläche zu positionieren, falls du eine präzisere Kontrolle benötigst.

FAQ: Häufige Fragen

1. Wie kann ich die Userform an eine bestimmte Zelle binden?
Um die Userform an eine Zelle zu binden, kannst du die Top und Left Eigenschaften der Userform so einstellen, dass sie der Position der Zelle entsprechen, z.B.:

UserForm1.Top = Range("A1").Top
UserForm1.Left = Range("A1").Left

2. Was ist der Unterschied zwischen StartUpPosition und manueller Positionierung?
StartUpPosition legt fest, wie die Userform beim ersten Öffnen positioniert wird. Wenn auf 0 (manuell) gesetzt, kannst du die Position mit Top und Left genau bestimmen.

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