Anzeige
Archiv - Navigation
1464to1468
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Send Keys funktioniert nur teilweise

Send Keys funktioniert nur teilweise
08.01.2016 19:58:21
Andreas
Hallo,
ich habe eine Datei mit 3 Sheets, aus welcher der Sheet Daten einen Datenabgleich mit dem Internet durchführt. Es könnte aber auch über die ganze Arbeitsmappe eine Aktualisierung durchgeführt werden, wenn es das ganze vereinfacht. Dies muss ich aktuell immer mit STRG+ALT+F5 aktualisieren, was auch klappt. Jetzt habe ich gesehen, dass man mit der Send Key Funktion das auch erledigen könnte. Ich habe dann übers www auch etwas gefunden, wo ich dachte das sollte gehen, auch wenn noch etwas als Kleinigkeit fehlt, der Timer.
~

Sub Test()
Sheets("Daten").Activate
Application.SendKeys "^%{F5}" + "{Enter}"
End Sub
~
Wenn ich das Makro ausführe, dann springt er in den Sheet, aber er führt dann keine Aktualisierung durch. Die Keys sind laut https://www.herber.de/mailing/vb/html/vastmsendkeys.htm
passend. Aber es geht nicht :-(. Was ist falsch und wie kann ich einen Timer dazubauen, der dann so alle 5 Minuten das Makro ausführt? Vielen Dank vorab für eure Ideen und Hilfe.
mfG
Andreas

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nach Windows XP oder Vista
09.01.2016 11:48:01
Andreas
Hi,
die Lösung von Sepp ist wohl die einfachste und hat wohl zukünftig nicht diese Abhängigkeit wie die SendKeys. Aber danke für die Info.
Gruß Andreas

AW: Send Keys funktioniert nur teilweise
09.01.2016 09:23:24
Sepp
Hallo Andreas,
das geht doch direkt und ohne .SendKeys
Thisworkbook.RefreshAll
oder
Worksheets("Tabellenname").QueryTables(1).Refresh BackgroundQuery:= False 
Gruß Sepp

Anzeige
AW: Send Keys funktioniert nur teilweise
09.01.2016 11:46:48
Andreas
Hallo Sepp,
danke für die doch "einfache" Lösung :-(. Kann man so etwas dann auch noch mit einem gewissen Zeitabstand realisieren, z.B. 10 Minuten?
Gruß und Danke Andreas

AW: Send Keys funktioniert nur teilweise
09.01.2016 11:46:48
Andreas
Hallo Sepp,
danke für die doch "einfache" Lösung :-(. Kann man so etwas dann auch noch mit einem gewissen Zeitabstand realisieren, z.B. 10 Minuten?
Gruß und Danke Andreas

AW: Send Keys funktioniert nur teilweise
09.01.2016 12:07:39
Sepp
Hallo Andreas,
achte darauf, welcher Code-Teil wohin gehört!
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_Open()
StartTimer
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
StopTimer
End Sub

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public RunWhen As Double
Public Const cRunIntervalSeconds = 600 ' Intervall in Sekunden
Public Const cRunWhat = "updateQuery"

Sub StartTimer()
RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, _
  schedule:=True
End Sub

Sub updateQuery()

ThisWorkbook.Worksheets("Tabellenname").QueryTables(1).Refresh BackgroundQuery:=False

StartTimer

End Sub

Sub StopTimer()
On Error Resume Next
Application.OnTime earliesttime:=RunWhen, _
  procedure:=cRunWhat, schedule:=False
End Sub

Gruß Sepp

Anzeige
AW: Send Keys funktioniert nur teilweise
09.01.2016 20:51:40
Andreas
Hallo Sepp,
danke für die Ausführungen. Zum einen startest du den Timer beim öffnen der Datei an sich. Das Allgemeine Modul macht dann die Laufzeit des Timers, richtig? Ich hoffe jetzt, ich habe die beiden Abschnitte richtig eingefügt. Dazu habe ich den Abschnitt
~Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)~
in DieseArbeitsmappe des VBAProject ohne Änderungen hinterlegt.
Das Modul ~Modul1 Typ: Allgemeines Modul~ habe ich mit Extras --> Makros --> erstellt und den ganzen Abschnitt mit der Änderung (fett&kursiv) eingefügt.
~

Sub updateQuery()
ThisWorkbook.Worksheets("Daten").QueryTables(1).Refresh BackgroundQuery:=False
StartTimer
End Sub
~
Leider kann ich erst am Montag sehen, ob das alles funktioniert, da ich keine aktuellen Daten geliefert bekomme :-(. Ich melde mich sicherlich noch einmal, ob Probleme oder nicht.
Gruß und vorab Danke.
Andreas
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige