AW: Application.SendKeys "%{S}" @Zwenn
24.09.2018 10:26:46
Bernd
Hallo Luschi,
ich benutze Office Version 2016 Pro 32bit - Windows10 Pro 64 bit.
Bei mir treten die von dir genannten Fehler nicht auf!
Werde aber deinen Rat befolgen, und den im Code befindlichen Befehl "SendKeys" deaktivieren, in der Hoffnung das dein Problem beim Aufrufen der Datei behoben ist.
Neue Musterdatei: https://www.herber.de/bbs/user/124179.xlsm
Ich hoffe, es klappt
Übrigens der hinterlegte Code:
Option Explicit
Sub CSVmitSendkeysSpeichern()
Dim browser As Object
Dim url As String
Dim knotenInput As Object
Dim knotenDownload As Object
Dim objShell As Object
Dim win As Object
Dim Path As String
'URL setzen
url = "https://www.ariva.de/deutsche_telekom-aktie/historische_kurse"
' Path = "C:\BKAktien\Import\CSV\" 'eventuell mit einbauen
'Seite im IE öffnen
Set browser = CreateObject("internetexplorer.application")
browser.Visible = True
browser.navigate url
Do Until browser.readyState = 4: DoEvents: Loop
'Grenzen für Daten setzen
browser.document.getElementById("minTime").Value = "20.09.2015"
browser.document.getElementById("maxTime").Value = "20.09.2018"
'Download Button klicken
'Alle Input Elemente einsammeln
Set knotenInput = browser.document.getElementsByClassName("submitButton")
'Alle Input Elemente durchgehen auf das Attribut 'Download'
For Each knotenDownload In knotenInput
'Prüfen auf Attribut value mit dem Wert download
If knotenDownload.getAttribute("value") = "Download" Then
'Wenn Download Button gefunden, anklicken
knotenDownload.Click
'Zeit geben, um die Downloadleiste unten einzublenden
'(Muss eventuell angepasst werden, falls zu kurz)
Application.Wait (Now + TimeSerial(0, 0, 3))
Exit For
End If
Next knotenDownload
'CSV in den Standard-Download-Ordner laden
'Das ist der Download-Ordner des Systems
'Um Sendkeys richtig zu nutzen, muss die
'Application, an die gesendet werden soll
'aktiviert werden.
'Das passiert über den Namen in der Titelzeile
'Diesen kann man finden, indem man über die
'Shell alle offenen Fenster durchgeht und
'zunächst nach der Anwendung sucht, also dem
'Internet Explorer und dann schaut, ob die
'richtige URL darin geöffnet ist
Set objShell = CreateObject("Shell.Application")
For Each win In objShell.Windows
If InStr(1, UCase(win.FullName), "IEXPLORE") > 0 Then
If win.document.Location = url Then
AppActivate win.document.Title
' Application.SendKeys ("%{S}")
End If
End If
Next
'Zeit für den Download geben, bevor der IE geschlossen wird
'(Muss eventuell angepasst werden, falls zu kurz)
Application.Wait (Now + TimeSerial(0, 0, 3))
'Aufräumen
browser.Quit
Set browser = Nothing
Set knotenInput = Nothing
Set knotenDownload = Nothing
End Sub
Gruß
Bernd