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

Position Userform eine Zelle zuordnen

Forumthread: Position Userform eine Zelle zuordnen

Position Userform eine Zelle zuordnen
09.01.2005 11:31:39
Peter
Kann man die Position einer Ufrm auch einer Zelle
zuordnen?
Peter
'Me.Top = Range("B2")
'Me.Left = Range("B2")
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Position Userform eine Zelle zuordnen
Ramses
Hallo
das wird nicht gehen, weil die TOP und LEFT Ergebnisse der Zelle, in Relation der Position zum EXCEL Fenster und dessen Platzierung auf dem Desktop ist.
Für die Positionierung der UF aber die Pixelangabe des Bildschirms massgebend ist.
Da lasse ich mich aber gerne eines besseren belehren.
Das kannst du mal mit einem Commandbutten auf einer UF probieren

Private Sub CommandButton1_Click()
MsgBox "Adresse der Zelle B5: Top " & Range("B5").Top & ", Links: " & Range("B5").Left
'Postionierung der UF nach den Ergebnissen von B5
With Me
.Top = Range("B5").Top
.Left = Range("B5").Left
End With
End Sub

Gruss Rainer
Anzeige
AW: Position Ufrm- mein Versuch in Pixel -Fehler
09.01.2005 12:33:08
Peter
Hab in der Zwischenzeit auch mal was probiert.
Meine Gedanken:
Von der 1. Spalte bis zur activen Zelle
die Spaltenbreite in Pixel minus Spaltenbreite
Das müßte theor. die left Position sein.
Funktioniert jedoch noch nicht.
Peter

Private Sub UserForm_Initialize()
Me.Width = Range("B2").Width
Me.Height = Range("B2").Height
For lngLeft = 1 To ActiveCell.Columns - 1
sumLeft = lngLeft + Columns(lngLeft).Width
Next
Me.Left = sumLeft
End Sub

Anzeige
AW: Position Ufrm- mein Versuch in Pixel -Fehler
Ramses
Hallo
du hast meine Antwort nicht richtig gelesen.
Wenn du die Position der Zelle bestimmst, so ist diese relativ !!! zum EXCEL Fenster.
Wenn du die UF positionierst, so heisst die Angabe Me.Top = 10, dass die UF 10 Pixel UNTERHALB DER OBEREN BILDSCHIRMKANTE platziert wird.
Und das ist nun mal was ganz anderes als die Zell Position. Kommt dazu, dass die fixe Platzierung von Symbolleisten ebenfalls Einfluiss auf die Zell.Top Position hat
Deinen Code habe ich ausprobiert,... und die UF wird schon ganz woanders plaztiert bei mir im Vollbildmodus, geschweige denn im Fenster modus.
Wenn schon, müsstest du, um wenigstens annähernd !! die Uf platzieren zu können die Grösse des Applicationsfenster zur Berechnung heranziehen. und dann die Werte von Appl-Höhe, Appl-to und B5-top zur Positionierung der UF verwenden.
Aber auch da wird es nicht deckkungsgleich sein.
Gruss Rainer
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Userform in Excel einer Zelle zuordnen


Schritt-für-Schritt-Anleitung

Um die Position einer Userform in Excel einer bestimmten Zelle zuzuordnen, kannst du den folgenden VBA-Code verwenden:

  1. Öffne den VBA-Editor mit Alt + F11.
  2. Füge eine neue Userform hinzu.
  3. Füge einen CommandButton zur Userform hinzu.
  4. Verwende den folgenden Code im Code-Fenster der Userform:
Private Sub CommandButton1_Click()
    MsgBox "Adresse der Zelle B5: Top " & Range("B5").Top & ", Links: " & Range("B5").Left
    'Positionierung der Userform nach den Ergebnissen von B5
    With Me
        .Top = Range("B5").Top
        .Left = Range("B5").Left
    End With
End Sub

Dieser Code zeigt die Position der Zelle B5 an und positioniert die Userform entsprechend.


Häufige Fehler und Lösungen

Ein häufiger Fehler ist, dass die Position der Userform nicht korrekt angezeigt wird. Dies kann passieren, weil die Position in Excel relativ zum Excel-Fenster und nicht zum Bildschirm ist. Hier sind einige Lösungen:

  • Stelle sicher, dass du die Pixelwerte der Zelle korrekt abfragst. Die Werte von .Top und .Left sind relativ zur oberen linken Ecke des Excel-Fensters.
  • Überprüfe, ob die Excel-Anwendung im Vollbildmodus oder im Fenstermodus läuft, da dies die Positionierung beeinflussen kann.

Alternative Methoden

Eine alternative Methode zur Positionierung einer Userform ist die Berechnung der Position in Pixel. Hier ein Beispiel:

Private Sub UserForm_Initialize()
    Me.Width = Range("B2").Width
    Me.Height = Range("B2").Height
    Dim sumLeft As Double
    Dim lngLeft As Integer

    For lngLeft = 1 To ActiveCell.Column - 1
        sumLeft = sumLeft + Columns(lngLeft).Width
    Next
    Me.Left = sumLeft
End Sub

Dieser Code berechnet die Breite der Spalten bis zur aktiven Zelle und positioniert die Userform entsprechend.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Verwendung von vba position userform:

  1. Einfaches Beispiel: Positioniere die Userform immer unter einer bestimmten Zelle:
Private Sub UserForm_Initialize()
    Me.Top = Range("A1").Top + Range("A1").Height
    Me.Left = Range("A1").Left
End Sub
  1. Dynamische Anpassung: Wenn du die Userform jedes Mal unter der aktuell ausgewählten Zelle positionieren möchtest, kannst du diesen Code verwenden:
Private Sub CommandButton1_Click()
    With Me
        .Top = ActiveCell.Top + ActiveCell.Height
        .Left = ActiveCell.Left
    End With
End Sub

Tipps für Profis

  • Verwendung von zelle.zuordnen: Nutze die Methode, um die Zelle und deren Position dynamisch in deine Userform zu integrieren.
  • Testen in verschiedenen Bildschirmauflösungen: Stelle sicher, dass die Positionierung auf verschiedenen Monitoren funktioniert, da unterschiedliche Bildschirmauflösungen die Position beeinflussen können.
  • Debuggen mit MsgBox: Verwende MsgBox, um die Positionen während der Entwicklung zu testen und Anpassungen vorzunehmen.

FAQ: Häufige Fragen

1. Kann ich die Position der Userform relativ zu einer anderen Zelle setzen?
Ja, du kannst die Position der Userform relativ zu einer anderen Zelle setzen, indem du die Eigenschaften .Top und .Left entsprechend anpasst.

2. Warum wird die Userform manchmal an der falschen Stelle angezeigt?
Das kann passieren, wenn du im Vollbildmodus arbeitest oder wenn die Symbolleisten die Position der Zelle beeinflussen. Stelle sicher, dass du die korrekten Pixelwerte verwendest und teste die Userform in verschiedenen Ansichten.

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