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

VBA Wechsel aus Excel zu geöffnetem Opera Browser

Forumthread: VBA Wechsel aus Excel zu geöffnetem Opera Browser

VBA Wechsel aus Excel zu geöffnetem Opera Browser
25.08.2025 16:40:50
udo
Hallo Forum,
benötige bitte eure Hilfe zu folgendem Ansatz.

Möchte aus Excel heraus (per VBA) in den Opera Browser wechseln, jedoch ohne dabei
gleich einen neuen Tab zu generieren, einfach in bestehendes Fenster im Browser wechseln,
oder gerne auch in den Standart-Browser (dieser wäre bei mir Opera) falls es nur so ginge.

Die Opera Exe befindet sich bei mir unter .. C:\Users\die\AppData\Local\Programs\Opera GX\opera.exe

Sub Wechsel_zu_Opera_neuer_Tab()
Shell "C:\Users\die\AppData\Local\Programs\Opera GX\opera.exe", vbNormalNoFocus
End Sub

Ich suche die Variante ohne neuen Tab , Sprung oder Wechsel in das geöffnete, dort aktive Fenster.
Muss ich da lediglich den Focus anders bezeichnen oder lautet der Befehl hier ganz anders.

Wäre euch dankbar für etwas Sprunghilfe,
lieben Dank in Voraus

udo
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Wechsel aus Excel zu geöffnetem Opera Browser
25.08.2025 17:28:13
volti
Hallo Udo,

es gibt verschiedene Methoden, eine Anwendung zu aktvieren.

Ich denke, der VBA-Befehl AppActivate wird hier nicht zum Ziel führen. Hier wird man wohl auch den momentanen Fenstertext des geöffneten Browsers haben müssen.
Habe ich aber nicht ausprobiert.

Bleiben noch Möglichkeiten über die Windows-API.

Allen voran die FindWindow-Funktion, die feststellt, ob die App schon geladen ist. Diese benötigt jedoch ebenfalls den vollständigen Fenstertext oder den vollständigen Klassennamen. Hier ein Beispiel, wie der Edge-Browser anhand der Klasse in den Vordergrund gebracht wird.

Private Declare PtrSafe Function FindWindowA Lib "user32" ( _

ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Private Declare PtrSafe Function SetForegroundWindow Lib "user32" ( _
ByVal hwnd As LongPtr) As Long

Sub AnwendungInVordergrundSetzen()
Dim hwnd As LongPtr, sClassname As String

sClassname = "Chrome_WidgetWin_1" ' Hier Klasse ggf. ersetzen
hwnd = FindWindowA(sClassname, "")
If hwnd > 0 Then
SetForegroundWindow hwnd
Else
Shell "C:\Users\die\AppData\Local\Programs\Opera GX\opera.exe", vbNormalNoFocus
End If
End Sub


Es wird der Browser im Arbeitsspeicher des Computers gesucht und wenn gefunden in den Vordergrund geschoben. Es gibt noch andere Befehle wie z.B. ActivateWindow oder SetFocus, aber dieses hier dürfte genügen.
Wird der Browser nicht gefunden, weil nicht geladen, kann man ihn ja dann neu starten.

Da ich keinen Opera einsetze, kenne ich die Klasse nicht. Mit diesem code hier kannst Du die Klasse aber ganz einfach ermitteln.
Private Declare PtrSafe Function EnumWindows Lib "user32" ( _

ByVal lpEnumFunc As LongPtr, ByVal lparam As LongPtr) As Long
Private Declare PtrSafe Function GetWindowTextA Lib "user32" ( _
ByVal hwnd As LongPtr, ByVal lpString As String, _
ByVal cch As Long) As Long
Private Declare PtrSafe Function GetClassNameA Lib "user32" ( _
ByVal hwnd As LongPtr, ByVal lpClassName As String, _
ByVal nMaxCount As Long) As Long
Private msWindowTitle As String, msClassname As String

Private Function EnumWindowProc(ByVal hwnd As LongPtr, lparam As LongPtr) As Long
Dim sText As String * 255, L As Long

EnumWindowProc = 1
L = GetWindowTextA(hwnd, sText, 255) ' Fenstertext holen
If Left$(sText, L) Like msWindowTitle Then
msWindowTitle = Left$(sText, L)
L = GetClassNameA(hwnd, sText, 255) ' Klassennamen holen
msClassname = Left$(sText, L)
Debug.Print msClassname, msWindowTitle
End If
End Function

Sub ListeApps()
msWindowTitle = "*Edge"
msClassname = "*"
Call EnumWindows(AddressOf EnumWindowProc, 0)
End Sub


Starte Opera und passe die Variable msWindowTitle mit einem passenden Fenstertext des aktiven Opera in ListeApps an. Dann lass das Marko laufen. Es sollten jetzt die Klassen und Fenstertexte der gefundenen Anwendungen im Debug.Fenster angezeigt werden. Dann den Klassennamen in der Sub AnwendungInVordergrundSetzen anpassen.

Das sollte dann funktionieren.

Gruß
Karl-Heinz
Anzeige
AW: VBA Wechsel aus Excel zu geöffnetem Opera Browser
25.08.2025 18:30:25
udo
Grüße dich Karl Heinz,

Vorab schon einmal recht herzlichen Dank, komm heute leider etwas später
erst dazu es zu testen, mach ich nachher aber noch sehr gerne und geb Dir
auf alle Fälle noch Rückmeldung.

Ganz herzlichen Dank !
udo
AW: VBA Wechsel aus Excel zu geöffnetem Opera Browser
26.08.2025 13:21:05
udo
Hallo Karl Heinz,
wollte mich wenigstens schnell mal rückmelden, ich probiere mich gerade noch
daran, so ganz will es noch nicht klappen obwohl ich deine Schritte befolge ich beis
mich da noch erst mal durch damit, glaub der Ansatz is nicht der schlechteste.

Danke Dir auf alle Fälle schon mal
LG udo
Anzeige
AW: VBA Wechsel aus Excel zu geöffnetem Opera Browser
26.08.2025 17:30:12
volti
Hallo Udo,

konntest Du denn schon die Klasse des Opera-Browsers ermitteln?

Gruß KH
AW: VBA Wechsel aus Excel zu geöffnetem Opera Browser
26.08.2025 18:16:55
udo
Hallo Karl Heinz,
nein leider noch nicht, ich tüftel mich da gerade noch durch, mit deinem Code hab ich es noch nicht geschafft,
such grad noch den Fehler wo ich falsch abbiege ;-)
Ich schreib dir nachher noch - danke dir !!
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18