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

Forumthread: Userform an Zelle ausrichten

Userform an Zelle ausrichten
28.07.2008 20:34:22
SteffenS
Hallo Zusammen,
wier kann ich eine Userform an der linken unteren Ecke der aktiven Zelle ausrichten?
Danke im Voraus.
MFG
Steffen Schmerler

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Gegenfrage
28.07.2008 20:57:13
Tino
Hallo,
normal gehört sich dass ja nicht zu einer Frage eine Gegenfrage zu stellen, aber ich muss einfach mal nachfragen.
Wie möchtest Du gewährleisten, dass immer die korrekte Zelle die Aktive ist.
Was ist wenn die aktive nicht im Sichtbereich ist oder die aktive Zelle in Spalte A liegt.
Gruß Tino

www.VBA-Excel.de


Anzeige
hm, das ist ein noch ein Problem
28.07.2008 21:01:28
SteffenS
was ich erreichen will ist, dass wenn ich eine Zelle einen Wert eingeben eine Userform daneben aufgeht wo ich eine Info Zeige bzw. einen weiteren Wert eingeben kann.
Leider habe ich keine Ahnung wie ich die UF in zellnähe anordnen kann.
Man kann sie vielleicht noch darüber zeigen.
Vielleicht hat das schonmal jemand von Euch gemacht.
Danke im Voraus.
Steffen Schmerler

Anzeige
AW: nicht getestet
28.07.2008 21:26:15
Tino
Hallo,
hier mal ein Beispiel, die Zelle sollte nach oben gescrollt werden und die Userform darunter geöffnet.
In ein Modul

Public Zelle As Range


Ins Tabellenblatt als Code


Private Sub Worksheet_Change(ByVal Target As Range)
Set Zelle = Target
UserForm1.Show
End Sub


In der Userform


Private Sub UserForm_Initialize()
ActiveWindow.ScrollRow = Zelle.Row
UserForm1.Left = Zelle.Left
UserForm1.Top = Zelle.Top + Zelle.Height
End Sub


Die Eingabe Zelle sollte aber im Change Ereignis entsprechend eingeschränkt werden.
Gruß Tino

www.VBA-Excel.de


Anzeige
AW: nicht getestet
28.07.2008 21:51:40
OttoH
Hallo Leute,
da kommen noch einige Klippen hinzu:
- Wieviele Symbolleisten sind aktiv?
- Ist das Excelfenster in Vollbild- oder verkleinerter Ansicht
- Wie ist die Bildschirmauflösung?
DAs sind einige Fragen, die vorab geklärt werden müssen. der Aufwand erscheint mir sehr hoch zu sein.
Gibt es nicht einen anderen Ansatz?
Reicht es nicht aus, dass das UF-Fenster zebntriert auf den Schirm gebracht wird?
Gruß OttoH

Anzeige
AW: nicht getestet
28.07.2008 22:26:29
Tino
Hallo OttoH,
genau du hasst recht, die Zellen haben die Top und Left Werte von Excel und die Userform die von Windows.
@SteffenS
Also vergiss mein Beispiel mit Top und left, dass geht so nicht.
Gruß Tino

vielleicht reicht es so
28.07.2008 22:38:55
Tino
Hallo,
eine nicht 100% Lösung könnte ich noch anbieten.
Die Userform ab der Desktop Mitte darzustellen.

Private Declare Function GetSystemMetrics Lib "user32" _
(ByVal nIndex As Long) As Long
Private Sub UserForm_ Initialize()
ActiveWindow.ScrollRow = Zelle.Row
UserForm1.Left = GetSystemMetrics(0) * 0.75 / 2 - UserForm1.Width / 2
UserForm1.Top = GetSystemMetrics(1) * 0.75 / 2
End Sub


Gruß Tino

Anzeige
AW: Teste mal ob es so geht.
29.07.2008 00:56:50
Tino
Hallo,
habe mal etwas experimentiert,
kommt dies in etwa hin, Tabelle muss aber Maximiert sein?
Schreibe in eine Zelle Deiner Wahl etwas rein, Mitte oder unten.
https://www.herber.de/bbs/user/54184.xls
Gruß Tino

www.VBA-Excel.de


Anzeige
Danke für Deine
31.07.2008 10:26:00
SteffenS
werd mal probieren. Sieht aber gut aus :-)))
MFG
Steffen

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Userform an Zelle ausrichten in Excel


Schritt-für-Schritt-Anleitung

Um eine Userform an der linken unteren Ecke der aktiven Zelle auszurichten, folge diesen Schritten:

  1. Öffne den VBA-Editor in Excel mit ALT + F11.

  2. Füge ein neues Modul hinzu:

    • Rechtsklick auf "VBAProject (DeineDatei.xlsx)" > "Einfügen" > "Modul".
  3. Füge den folgenden Code in das Modul ein:

    Public Zelle As Range
  4. Füge den folgenden Code in das Tabellenblatt ein, in dem die Userform erscheinen soll:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Set Zelle = Target
       UserForm1.Show
    End Sub
  5. Füge den Code in die Userform ein, um die Position festzulegen:

    Private Sub UserForm_Initialize()
       ActiveWindow.ScrollRow = Zelle.Row
       UserForm1.Left = Zelle.Left
       UserForm1.Top = Zelle.Top + Zelle.Height
    End Sub

Diese Schritte helfen dir, die Userform in der Nähe der aktiven Zelle anzuzeigen, wenn du einen Wert eingibst.


Häufige Fehler und Lösungen

  • Die Userform erscheint nicht: Stelle sicher, dass das Worksheet_Change-Ereignis korrekt an das richtige Blatt gebunden ist.

  • Userform wird an der falschen Stelle angezeigt: Überprüfe die Top und Left Koordinaten im UserForm_Initialize-Code. Möglicherweise musst du Anpassungen vornehmen, um sie an die Bildschirmauflösung anzupassen.


Alternative Methoden

Wenn du die Userform zentral auf dem Bildschirm anzeigen möchtest, kannst du den folgenden Code verwenden:

Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

Private Sub UserForm_Initialize()
    UserForm1.Left = GetSystemMetrics(0) * 0.5 - UserForm1.Width / 2
    UserForm1.Top = GetSystemMetrics(1) * 0.5 - UserForm1.Height / 2
End Sub

Diese Methode ist nützlich, wenn du die Userform unabhängig von der aktiven Zelle positionieren möchtest.


Praktische Beispiele

  1. Userform für Eingabewerte: Wenn du eine Userform zur Eingabe von Informationen neben einer Zelle benötigst, kannst du die oben beschriebenen Codes verwenden, um die Userform dynamisch an der Zelle auszurichten.

  2. Diagramm an Zelle ausrichten: Wenn du ein Excel-Diagramm an eine Zelle ausrichten möchtest, kannst du die Position des Diagramms in ähnlicher Weise wie bei der Userform festlegen.


Tipps für Profis

  • Verwende Application.ScreenUpdating = False: Dies kann die Leistung verbessern, wenn du viele Änderungen in der Userform vornimmst.

  • Eingabebeschränkungen: Überlege, Eingabebeschränkungen in der Userform zu implementieren, um sicherzustellen, dass nur gültige Daten eingegeben werden.

  • Tabellenblattnamen aus Zellen übernehmen: Du kannst den Namen eines Tabellenblattes dynamisch ändern, indem du den Inhalt einer Zelle über VBA übernimmst, z.B.:

    ActiveSheet.Name = Range("A1").Value

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Userform immer an der richtigen Zelle angezeigt wird? Achte darauf, dass die aktive Zelle im Sichtbereich ist und die Userform nur dann geöffnet wird, wenn eine Zelle wirklich geändert wird.

2. Ist es möglich, ein Tabellenblatt nach einer Zelle zu benennen ohne VBA? Ja, du kannst den Namen eines Tabellenblatts manuell ändern, indem du mit der rechten Maustaste auf das Tabellenblatt klickst und „Umbenennen“ auswählst. Es gibt jedoch keine native Funktion, die dies automatisch basierend auf einer Zelle übernimmt.

3. Kann ich die Userform an eine Zelle ausrichten, wenn die Excel-Anwendung minimiert ist? Nein, die Positionierung funktioniert nur, wenn Excel maximiert ist. Achte darauf, dass das Fenster in der richtigen Ansicht ist, bevor du die Userform öffnest.

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