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

url aus vba öffnen und Browserfenster minimieren

Forumthread: url aus vba öffnen und Browserfenster minimieren

url aus vba öffnen und Browserfenster minimieren
02.11.2023 12:24:24
Marco
Guten Tag,
ich bin auf der Suche nach einer Möglichkeit mein aktives Excel-Fenster wieder zu aktivieren, nachdem ich via vba ein Browserfenster geöffnet habe und eine url aufgerufen habe. Das ist nötig um Laufzeitfehler zu verhindern (startet eine browserbasierte Anwendung).
Alle Versuche laufen darauf hinaus, dass das Browserfenster aktiv und maximiert bleibt (Fokus bleibt darauf), meine Excel-Arbeitsmappe aber im Hintergrund in der Taskleiste liegt.
Wie bekomme ich es hin, dass das beim Start der Excel-Arbeitsmappe geöffnete Browserfenster gleich wieder minimiert wird und stattdessen die Excel-Arbeitsmappe aktiv und im Fokus ist?

Hier ist mein derzeitiger Code (wird bei Workbook_open ausgeführt:

Variable1 = "cmd /c start microsoft-edge:https://www.xyz.de"
ausfuehren = Shell(Variable1, 6)


Bin für jeden Tipp dankbar.
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: url aus vba öffnen und Browserfenster minimieren
02.11.2023 20:46:22
Uduuh
Hallo,
teste mal
AppActivate Application.Caption


Gruß aus'm Pott
Udo
url aus vba öffnen und Browserfenster minimieren
04.11.2023 11:55:20
Anton
Hallo Marko,

wenn ich dich richtig verstanden habe, dann so vielleicht:
Sub b()

Dim oShell As Object, Variable1 As String, ausfuehren
Set oShell = CreateObject("shell.application")
Variable1 = "cmd /c start microsoft-edge:https://www.herber.de/forum/messages/1951952.html" 'anpassen
ausfuehren = Shell(Variable1, 6)
Application.Wait Now() + TimeSerial(0, 0, 3)
oShell.MinimizeAll
AppActivate Application.ActiveWindow.Caption
Application.Wait Now() + TimeSerial(0, 0, 3)
oShell.undoMinimizeAll
Set oShell = Nothing
End Sub

mfg Anton
Anzeige
AW: url aus vba öffnen und Browserfenster minimieren
06.11.2023 07:26:13
Marco
Vielen Dank, Anton. Das ist verdammt nah an dem wie es sein soll.
Mit deinem Code minimiert er das geöffnete Browserfenster und auch die Excel-Datei (aus der das Browserfenster geöffnet wurde). Soweit alles gut.
Nach dem zweiten TimeSerial maximiert er allerdings wieder das Browserfenster. Ziel ist aber, dass genau dieses minimiert bleibt und das Excel-Fenster stattdessen maximiert wird.
Mir fehlt also nur der Schritt, wie ich den Excel-Task wieder maximiere (oder alternativ diesen gar nicht erst minimiere).
Ich weiß aber nicht, wie ich den Excel-Task ansprechen kann.
Für mich ist es das erste mal, dass ich mit Shell-Befehlen herumtüftle. Ich finde es genial, was man damit machen kann. Auch wenn ich es (noch) nicht verstehe.
Anzeige
AW: url aus vba öffnen und Browserfenster minimieren
03.11.2023 08:46:39
Marco
Leider funktioniert auch das nicht. der Fokus bleibt auf dem Browserfenster und die xlsm liegt im Hintergrund.
Ich habe es auch mit Zeitverzögerung versucht, da die Browseranwendung je etwas braucht. Das führt nur dazu, dass nach den fünf Sekunden mein Excel-Task in der Taskleiste blinkt, das Browserfenster aber trotzdem darüber bleibt.
Ich habe auch weiter recherchiert. Es gibt auch Lösungen mit Funktionen. Damit habe ich aber Schwierigkeiten.
Ich bin für jede Hilfe unendlich dankbar.

Das ist der aktuelle code:
Sub Workbook_Open()

Dim Variable1, ausfuehren

Variable1 = "cmd /c start microsoft-edge:https://url.de"
ausfuehren = Shell(Variable1, 6)

DoEvents
Application.Wait Now() + TimeSerial(0, 0, 5)
DoEvents

AppActivate Workbooks("meine_Arbeitsmappe.xlsm").Application.Caption

End Sub
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Browserfenster minimieren und Excel aktiv halten mit VBA


Schritt-für-Schritt-Anleitung

Um ein Browserfenster mit VBA zu öffnen und gleichzeitig sicherzustellen, dass Deine Excel-Arbeitsmappe im Vordergrund bleibt, kannst Du folgenden Code verwenden. Dieser öffnet eine URL in Microsoft Edge und minimiert das Browserfenster:

Sub Workbook_Open()
    Dim oShell As Object
    Dim Variable1 As String
    Dim ausfuehren As Variant

    Set oShell = CreateObject("shell.application")
    Variable1 = "cmd /c start microsoft-edge:https://www.xyz.de"
    ausfuehren = Shell(Variable1, 6)

    ' Wartezeit, um sicherzustellen, dass das Browserfenster geöffnet ist
    Application.Wait Now() + TimeSerial(0, 0, 3)

    ' Minimiere das Browserfenster
    oShell.MinimizeAll

    ' Aktiviere die Excel-Anwendung
    AppActivate Application.Caption

    ' Warten und dann das Excel-Fenster maximieren
    Application.Wait Now() + TimeSerial(0, 0, 3)
    oShell.UndoMinimizeAll

    Set oShell = Nothing
End Sub

Dieser Code sollte in das ThisWorkbook-Modul Deiner Excel-Arbeitsmappe eingefügt werden. Damit wird beim Öffnen der Datei die URL in einem Browserfenster geöffnet und gleichzeitig sichergestellt, dass Excel immer maximiert bleibt.


Häufige Fehler und Lösungen

  • Excel öffnet nur minimiert: Falls das Excel-Fenster minimiert bleibt, überprüfe die Reihenfolge Deiner Befehle. Die Verwendung von AppActivate sollte nach einer kurzen Wartezeit erfolgen, um sicherzustellen, dass das Browserfenster bereits geöffnet ist.

  • Browserfenster bleibt im Vordergrund: Wenn das Browserfenster nicht minimiert wird, kann es hilfreich sein, mit oShell.MinimizeAll sicherzustellen, dass alle geöffneten Fenster minimiert werden.


Alternative Methoden

Falls der obige Code nicht die gewünschten Ergebnisse liefert, kannst Du auch andere Ansätze ausprobieren:

  1. Verwendung von SendKeys: Mit SendKeys kannst Du Tastaturbefehle simulieren, um das Excel-Fenster zu maximieren. Sei jedoch vorsichtig, da dies oft unzuverlässig ist.

    SendKeys "% {SPACE} x" ' Alt + Leertaste, dann x für Maximieren
  2. WinAPI: Für fortgeschrittene Benutzer ist es möglich, Windows-API-Funktionen zu nutzen, um die Fensterposition direkt zu steuern.


Praktische Beispiele

Hier ist ein Beispiel, wie Du einen Link in Edge maximiert öffnen kannst, ohne dass Excel minimiert wird:

Sub OpenEdgeMaximized()
    Dim Variable1 As String
    Variable1 = "cmd /c start microsoft-edge:https://www.example.com"
    Shell Variable1, vbNormalFocus ' Öffnet den Browser im Normalmodus
End Sub

Dies sorgt dafür, dass das Browserfenster nicht minimiert wird, aber Du kannst auch den oben genannten Code anpassen, um die Excel-Anwendung immer im Vordergrund zu halten.


Tipps für Profis

  • Achte darauf, dass Du die richtigen Zeitverzögerungen verwendest, um sicherzustellen, dass der Browser genug Zeit hat, um zu laden, bevor Du das Excel-Fenster aktivierst.

  • Experimentiere mit verschiedenen Browser-Einstellungen, um sicherzustellen, dass der Link in der gewünschten Weise geöffnet wird (z.B. edge maximiert starten).

  • Dokumentiere Deinen Code gut, insbesondere wenn Du mit Shell-Befehlen und Fenstersteuerung arbeitest.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass Excel immer maximiert geöffnet wird? Du kannst den Parameter vbNormalFocus in der Shell-Funktion verwenden, um das Excel-Fenster aktiv zu halten.

2. Was tun, wenn das Browserfenster nicht minimiert wird? Vergewissere Dich, dass Du die MinimizeAll-Methode korrekt anwendest. Ein Timeout zwischen den Kommandos kann ebenfalls helfen.

3. Welche Excel-Version benötige ich für diese VBA-Codes? Die genannten Codes sollten in Excel 2010 und neueren Versionen funktionieren. Achte darauf, dass VBA aktiviert ist.

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