Jump to content
Sign in to follow this  
calibra22

Excel 2010: VBScript damit zwei Makros mit 10 Minuten Abstand starten

Recommended Posts

Hallo,

 

ich hab derzeit eine bissle knifflige Frage und komm nicht mehr weiter.

Folgendes möchte ich schaffen:

 

Ich habe im Internet eine Seite, die mir eine Statistik ausgibt. Diese Statistik möchte ich im Abstand von 10 Minuten (oder auch mehr) per Klick auf einen "Start-Button" ausführen.

 

Jetzt habe ich mit Makros probiert, also mit Aufzeichen etc. Dieses funktioniert soweit schon, allerdings bekomme ich nicht den zeitlichen Abstand von 10 Minuten gepacken.

 

Was habe ich gemacht:

Ich habe ein Makro erstellt, nennen wir es Abfrage1_2. Habe den Start-Button mit diesen Makro "Abfrage1_2" verknüpft. In dieser Abfrage sind zwei Abfragen intergriert.

Jetzt führt er das Makro aus, und holt sich jetzt zwei mal die Statistik bzw. deren Werte. Da aber jetzt die Werte gleich hintereinander abgeholt werden, paßt es so nicht :-)

 

Gibt es einen Befehl, den ich in VB eingeben muss, damit es zeitlich versetzt die zwei Abfrage ausgeführt wird?

 

Wer kann helfen ;-)

 

Vielen Dank schon mal im Voraus!

 

 

Mfg

Michael

Share this post


Link to post

Hallo calibra22,

 

den Befehl, den du suchst heißt Wscript.Sleep danach gibst du die Anzahl der Minuten ein, die gewartet werden sollen.

Share this post


Link to post

Hi Esta,

 

vielen Dank für die baldige Antwort Montag morgen :-)

ich werde das mal probieren ... den Befehl einfach zwischen den beiden Abfragen einbauen oder?

 

 

ich meld mich :-)

 

 

Gruß

Michael

Share this post


Link to post

so in etwa?

 

Sub Abruf1_2()
'
' Abruf1_2 Makro
' Abruf von zwei Datensätzen
'

'
   With ActiveSheet.QueryTables.Add(Connection:= _
       "URL;http://192.168.2.253:8081/1.1.2/htm/allh1.htm", Destination:=Range( _
       "$A$6"))
       .Name = "allh1_14"
       .FieldNames = True
       .RowNumbers = False
       .FillAdjacentFormulas = True
       .PreserveFormatting = True
       .RefreshOnFileOpen = False
       .BackgroundQuery = True
       .RefreshStyle = xlInsertDeleteCells
       .SavePassword = False
       .SaveData = True
       .AdjustColumnWidth = True
       .RefreshPeriod = 0
       .WebSelectionType = xlAllTables
       .WebFormatting = xlWebFormattingNone
       .WebPreFormattedTextToColumns = True
       .WebConsecutiveDelimitersAsOne = True
       .WebSingleBlockTextImport = False
       .WebDisableDateRecognition = False
       .WebDisableRedirections = False
       .Refresh BackgroundQuery:=False
   End With
   [b]Wscript.Sleep 5[/b]
   Range("A8").Select
   With ActiveSheet.QueryTables.Add(Connection:= _
       "URL;http://192.168.2.253:8081/1.1.2/htm/allh1.htm", Destination:=Range( _
       "$A$8"))
       .Name = "allh1_15"
       .FieldNames = True
       .RowNumbers = False
       .FillAdjacentFormulas = True
       .PreserveFormatting = True
       .RefreshOnFileOpen = False
       .BackgroundQuery = True
       .RefreshStyle = xlInsertDeleteCells
       .SavePassword = False
       .SaveData = True
       .AdjustColumnWidth = True
       .RefreshPeriod = 0
       .WebSelectionType = xlAllTables
       .WebFormatting = xlWebFormattingNone
       .WebPreFormattedTextToColumns = True
       .WebConsecutiveDelimitersAsOne = True
       .WebSingleBlockTextImport = False
       .WebDisableDateRecognition = False
       .WebDisableRedirections = False
       .Refresh BackgroundQuery:=False
   End With
End Sub

Share this post


Link to post

Hallo,

 

ich habe den Wert auf 60000 Millisekunden gesetzt. Allerdings will er jetzt ein Objekt?

Dieser Fehler kommt wenn ich den Code ausführe:

Laufzeitfehler 424

Objekt erforderlich

 

und das ist mein Code:

Sub Abruf1_2()
'
' Abruf1_2 Makro
' Abruf von zwei Datensätzen
'

'
   With ActiveSheet.QueryTables.Add(Connection:= _
       "URL;http://192.168.10.247:8081/1.1.2/htm/allh1.htm", Destination:=Range( _
       "$A$6"))
       .Name = "allh1_14"
       .FieldNames = True
       .RowNumbers = False
       .FillAdjacentFormulas = True
       .PreserveFormatting = True
       .RefreshOnFileOpen = False
       .BackgroundQuery = True
       .RefreshStyle = xlInsertDeleteCells
       .SavePassword = False
       .SaveData = True
       .AdjustColumnWidth = True
       .RefreshPeriod = 0
       .WebSelectionType = xlAllTables
       .WebFormatting = xlWebFormattingNone
       .WebPreFormattedTextToColumns = True
       .WebConsecutiveDelimitersAsOne = True
       .WebSingleBlockTextImport = False
       .WebDisableDateRecognition = False
       .WebDisableRedirections = False
       .Refresh BackgroundQuery:=False
   End With

   [b]Wscript.Sleep 60000[/b]

   Range("A8").Select

   With ActiveSheet.QueryTables.Add(Connection:= _
       "URL;http://192.168.10.247:8081/1.1.2/htm/allh1.htm", Destination:=Range( _
       "$A$8"))
       .Name = "allh1_15"
       .FieldNames = True
       .RowNumbers = False
       .FillAdjacentFormulas = True
       .PreserveFormatting = True
       .RefreshOnFileOpen = False
       .BackgroundQuery = True
       .RefreshStyle = xlInsertDeleteCells
       .SavePassword = False
       .SaveData = True
       .AdjustColumnWidth = True
       .RefreshPeriod = 0
       .WebSelectionType = xlAllTables
       .WebFormatting = xlWebFormattingNone
       .WebPreFormattedTextToColumns = True
       .WebConsecutiveDelimitersAsOne = True
       .WebSingleBlockTextImport = False
       .WebDisableDateRecognition = False
       .WebDisableRedirections = False
       .Refresh BackgroundQuery:=False
   End With
End Sub

 

Der Ablauf (siehe Code) wurde mit Makro aufzeichnen erstellt. Mein Ziel ist es, die beiden Abfrage zeitlich hintereinander mit einer festgelegten Zeit ablaufen zu lassen.

 

 

vielen Dank für eure Unterstützung!

 

Gruß

Michael

Share this post


Link to post

Hallo calibra22,

 

IMHO muß diese Zeile

set wshshell=createobject("wscript.shell")

noch mit am Anfang in das Script.

 

@Cybquest,

danke für's korrigieren. War wohl gestern doch etwas "früh" für's Beantworten. ;)

Share this post


Link to post

Hallo Esta,

 

vielen Dank für die Hilfe.

Ich bin absolut blutiger Anfänger ;-)

 

Sub Abruf1_2()
[b]set wshshell=createobject("wscript.shell")[/b]
' Abruf1_2 Makro
' Abruf von zwei Datensätzen
'

'
   With ActiveSheet.QueryTables.Add(Connection:= _
       "URL;http://192.168.10.247:8081/1.1.2/htm/allh1.htm", Destination:=Range( _
       "$A$6"))
       .Name = "allh1_14"
       .FieldNames = True
       .RowNumbers = False
       .FillAdjacentFormulas = True
       .PreserveFormatting = True

 

da oben gleich rein ? habe das probiert, und er bringt wieder diesen Laufzeitfehler... wo ist mein "Problem" :-(

 

 

Gruß

Michael

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...