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

Forumthread: Fenster Position festlegen

Fenster Position festlegen
09.05.2021 20:32:02
Daniel
Guten Abend
Gibt es einen Befehl wo ich die Fensterposition festlegen kann?
Hier mal ein Teil meines Codes:

With Application.FileDialog(msoFileDialogFilePicker)
.Filters.Clear
.Filters.Add FileName, "*." & Filter & "?", 1
.InitialFileName = strOrdner
.Title = "Bitte suchen Sie die Datei " & FileName
.ButtonName = "Auswählen..."
.InitialView = msoFileDialogViewList
Besten Dank für Eure Rückmeldung.
Gruss Daniel
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Fenster Position festlegen
09.05.2021 20:35:37
Nepumuk
Hallo Daniel,
welche Excelversion und 32 oder 64 Bit?
Gruß
Nepumuk
AW: Fenster Position festlegen
09.05.2021 20:50:32
Daniel
Hallo Nepumuk
Mein Rechner arbeitet mit 64 Bit. Die Excel Version ist 2010!
Noch so als Bemerkung! Ich möchte eine UserForm nur mit Rahmen ohne Titelleiste öffnen In der UF befindet sich eine ListBox. Dies kann ich alles bereits machen. Der Code ist glaube ich sogar von Dir. Nun möchte den FileDialog neben der UserForm öffnen. Doch leider öffnet es mir die UF und darüber den FileDialog.
Gruss Daniel
Anzeige
AW: Fenster Position festlegen
11.05.2021 06:57:19
Eberhard
Guten Morgen Nepumuk
So endlich habe ich Dir eine Antwort. Funktioniert bei mir auch. Kann ich jedoch den explorer noch woanders platzieren? Irgendwo eine Zahl verändern?
Damit ich sagen könnte, die UserForm ist oberhalb des explorer. Oder der Explorer ist links oben usw.
Gruss und einen guten Tag.
Daniel
Anzeige
AW: Fenster Position festlegen
11.05.2021 08:57:08
Nepumuk
Hallo Daniel,
in dieser Zeile wird festgelegt wohin das Fenster verschoben wird.

Call SetWindowPos(lngptrHwnd, 0, ludtRect.Right, ludtRect.Top, 0&, 0&, _
SWP_NOSIZE Or SWP_NOZORDER)
ludtRect.Right ist die rechte Kante des Userforms und ludtRect.Top die obere Kante. wenn das Fenster des Explorers ober halb des Userforms erscheinen soll musst du dessen Abmessungen auslesen.
Gruß
Nepumuk
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Fensterposition in Excel festlegen


Schritt-für-Schritt-Anleitung

Um die Fensterposition in Excel beim Öffnen festzulegen, kannst du den folgenden VBA-Code verwenden. Dieser Code hilft dir dabei, die Position des Fensters genau zu bestimmen, wenn du einen FileDialog öffnest.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeinWorkbook)", wähle "Einfügen" und dann "Modul".

  3. Kopiere und füge den folgenden Code in das Modul ein:

    Private Declare Function SetWindowPos Lib "user32" ( _
       ByVal hwnd As Long, _
       ByVal hWndInsertAfter As Long, _
       ByVal X As Long, _
       ByVal Y As Long, _
       ByVal cx As Long, _
       ByVal cy As Long, _
       ByVal uFlags As Long) As Long
    
    Private Const SWP_NOSIZE As Long = &H1
    Private Const SWP_NOZORDER As Long = &H4
    
    Sub FensterPositionFestlegen()
       Dim dlg As FileDialog
       Set dlg = Application.FileDialog(msoFileDialogFilePicker)
    
       ' Setze die Fenstergröße und den Titel
       dlg.Title = "Bitte wählen Sie eine Datei"
       ' Zeige den Dialog an
       dlg.Show
    
       ' Ändere die Fensterposition
       Call SetWindowPos(Application.hWnd, 0, 100, 100, 0, 0, SWP_NOSIZE Or SWP_NOZORDER)
    End Sub
  4. Passe die Werte X und Y in SetWindowPos an, um die Fensterposition zu ändern.


Häufige Fehler und Lösungen

  • Der FileDialog öffnet nicht an der gewünschten Position: Überprüfe, ob du die richtigen Werte für X und Y in der SetWindowPos-Funktion angegeben hast. Diese Werte bestimmen die Position des Fensters.

  • Fehlermeldung beim Ausführen des Codes: Stelle sicher, dass die Deklarationen und Konstanten korrekt sind und dass du den Code in einem Modul eingefügt hast.


Alternative Methoden

Eine alternative Methode, um die Fenstergröße und -position in Excel festzulegen, ist die Verwendung von UserForms. Mit UserForms kannst du eine eigene Benutzeroberfläche erstellen, die du nach Belieben anpassen kannst. Die Position kann ebenfalls durch das Setzen von Eigenschaften wie Top und Left festgelegt werden.


Praktische Beispiele

Hier ist ein Beispiel, wie du die Position einer UserForm und den FileDialog gleichzeitig steuern kannst:

Private Sub UserForm_Initialize()
    ' Setze die Position der UserForm
    Me.Left = 100
    Me.Top = 100
End Sub

Private Sub CommandButton1_Click()
    Call FensterPositionFestlegen
End Sub

In diesem Beispiel wird die UserForm an der Position (100, 100) geöffnet. Wenn du auf den Button klickst, öffnet sich der FileDialog in der festgelegten Position.


Tipps für Profis

  • Nutze GetWindowRect, um die aktuellen Positionen und Größen von geöffneten Fenstern zu ermitteln. So kannst du präzisere Positionierungen vornehmen.
  • Experimentiere mit verschiedenen SWP-Flags, um das Verhalten deiner Fenster weiter anzupassen.
  • Teste deinen Code in verschiedenen Excel-Versionen, insbesondere wenn du mit 32-Bit und 64-Bit-Versionen arbeitest.

FAQ: Häufige Fragen

1. Wie kann ich die Fenstergröße beim Öffnen festlegen?
Du kannst die Fenstergröße nicht direkt mit SetWindowPos festlegen, da die Konstante SWP_NOSIZE verwendet wird. Um die Größe zu ändern, musst du die Variablen cx und cy angeben.

2. Funktioniert dieser Code in allen Excel-Versionen?
Der Code sollte in Excel 2010 sowie neueren Versionen funktionieren. Achte darauf, dass du die 64-Bit-Version berücksichtigst, wenn du den Code verwendest.

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