thomas1972
Goto Top

QueryTable wird in englisch heruntergeladen. Wo kann man die Sprachregion übergeben

Hallo,

ich mache eine Webabfrage,
lasse ich mir die Page im Browser anzeigen wird alles in deutsch dargestellt,
sobald ich diese dann mit folgendem Code herunter lade,
wird dieses in Englisch in Excel eingebunden (Bezeichnungen, aber auch Umlaute werden falsch dargestellt)
kann man in der Abfrage ein Parameter mit angeben, dass dieser die Spracheinstellung des Browsers verwendet?


Set shFirstQtr = Workbooks(1).Worksheets(1) 
Set qtQtrResults = shFirstQtr.QueryTables _ 
 .Add(Connection := "URL;xxxxxx Testpage von mi ( da Intranet nicht extern aufrufbar!!!", _   
 Destination := shFirstQtr.Cells(1,1)) 
With qtQtrResults 
 .WebFormatting = xlNone 
 .WebSelectionType = xlSpecifiedTables 
 .WebTables = "1,2"   
 .Refresh 
End With

Content-Key: 258558

Url: https://administrator.de/contentid/258558

Printed on: April 25, 2024 at 15:04 o'clock

Member: colinardo
colinardo Dec 27, 2014 updated at 15:45:08 (UTC)
Goto Top
Hallo Thomas1972,
das muss man normalerweise per HTTP-Header in der Anfrage übergeben.
Deswegen benutze ich für Webabfragen keine Webqueries mehr. Das ist eher was für Anfänger die nicht wissen wie sie sonst Daten aus Webseiten extrahieren sollen

Ich würde das mit einem InternetExplorer.Application-Object machen oder mit Powershell, dort geht das z.B. so:
$net = New-Object System.Net.WebClient
$net.Encoding = [System.Text.Encoding]::UTF8
$net.Headers.Add("Accept-Language","de-de")  
$data = $net.DownloadString("http://www.google.de")  
write-host $data
Die benötigten Daten lassen sich dann via RegEx extrahieren oder man nutzt das ParsedHTML-Objekt das das HTML-Dom für einen ansprechbar macht. Dazu habe ich hier im Forum schon einige Beiträge gepostet ...

Mit WebQueries in Excel ist die Angabe eines HTTP-Header IMHO nicht möglich, außer eure Seite bietet das Umschalten per URL-Parameter an..

Grüße Uwe

p.s. hier mal ein kleines Beispiel was man damit so alles machen kann:
(In diesem Beispiel werden die Titel aller Fragen auf der Startseite per Msgbox angezeigt)
VBS
Set objIE = CreateObject("InternetExplorer.Application")  
objIE.Navigate "https://administrator.de"  
'Wenn du den IE nicht sehen möchtest schaltest du ihn hier auf 'False'  
objIE.Visible = True
'warten bis die Seite komplett geladen ist  
While Not objIE.ReadyState = 4
	WScript.Sleep 250
        ' Oder "DoEvents" wenn VBA genutzt wird  
Wend

For Each node In objIE.Document.getElementsByClassName("teaser-preview")  
	strTitle = node.getElementsByTagName("div")(1).firstChild.innerText  
	MsgBox strTitle
Next
objIE.Quit
Du siehst, an die Daten kommt man auch auf anderem Wege als nur über Excel face-wink
Member: thomas1972
thomas1972 Dec 27, 2014 at 16:06:13 (UTC)
Goto Top
Hallo Uwe,

danke für die Rückinformation.
Hab es nach dem einlesen mit einem kleinen Suchen ersetzen Script einfach umschreiben lassen ( ist von der Performance kaum merklich)

Danke nochmal