VBS Msgbox automatisch bejahen

Hallo,
ich möchte für ein Script das mein genaues Alter auf 10 Stellen ausrechnet ein Intervall sezten, damit es sich jede Sekunde aktualisiert(bzw. bejaht).

Danke im Vorraus

Hallo

ich möchte eine million auf mein Konto überwiesen haben, sag meine Kontonummer aber nicht…
Merkst was?

tschüss

RE: VBS Msgbox automatisch bejahen
Hallo,
ich meine, das jede Sekunde automatisch die nächste Msgbox kommt.

ich meine, das jede Sekunde automatisch die nächste Msgbox
kommt.

Hi Dani,
vbs kann ich nicht, in Excel-Vba ginge es möglicherweise die Msgbox mit Sendkeys zu „bedienen“, aber sendkeys ist kritisch.
Also würde ich eine Userform alle Sekunden anzeigen lassen.
In Excel könnte man da deinen Timer auch in der Statusleiste, das ist eine Zeile unterhalb des Tabellenblattes, anzeigen/mitlaufen lassen.
Wie das mit vbs geht, k.A.
Ob dir das nun hilft weiß ich nicht :frowning:
Gruß
Reinhard

ich meine, das jede Sekunde automatisch die nächste Msgbox
kommt.

Hi Dani,
vbs kann ich nicht,

Da muss ich wiedersprechen :smile:
siehe mal hier http://msdn2.microsoft.com/en-us/library/x83z1d9f.aspx

Gruß,
AlexR

1 Like

Hallo,

vbs kann ich nicht,

Da muss ich widersprechen :smile:

*gg* Reinhard hat geschrieben, daß er sich mit VBS nicht auskennt. :smile:

siehe mal hier
http://msdn2.microsoft.com/en-us/library/x83z1d9f.aspx

Fein! Ich hab’s mal etwas anders zusammengeschraubt…

Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
For i=0 To 10
 WshShell.Popup Time, 1, "Zeit:"
Next

Danke! (*) :smile:

Gruß, Rainer

OT dein Code in VBA
Hallo Rainer,

vbs kann ich nicht,

Da muss ich widersprechen :smile:

*gg* Reinhard hat geschrieben, daß er sich mit VBS nicht
auskennt. :smile:

jepp, hat mich auch verwirrt :smile:

Dim WshShell
Set WshShell = WScript.CreateObject(„WScript.Shell“)
For i=0 To 10
WshShell.Popup Time, 1, „Zeit:“
Next

Da du in VB ja alles kennst inzwischen tastest du dich an Vba ran, deshalb zur Information.
Prinzipiell läuft dein Code auch in Vba. Es kommt zwar ein „fehlendesObjekt“-Fehler aber das liegt nur an dem fehlenden „Set“, was man bei VB (oder ist das VBS?) anscheinend nicht braucht.
Im Anhang habe ich mal Excel-Vba-Code wie es dort funktioniert als Beispiel.

[d12] ist nur die andere Schreibweise von Range(„D12“)

Korrekterweise müßtes man Range(„D12“).Value benützen, aber man ist ja schreibfaul wenn’s trotzdem klappt.
Und Value ist in 99% aller Fälle auch korrekt, aber leider, grad weil das so ist, sucht man sich dumm und dusselig wenn auf einmal, wie aus heiterem Himmel, bei der Wertübernahme aus einer Zelle etwas schräg läuft.

Frühestens nach Stunden kommt man darauf daß Range(„D12“).Value nicht immer das Gleiche wie Range(„D12“).Text ist.
Ich spreche da aus leidvoller Erfahrung :frowning:, deshalb der Hinweis.

Gruß
Reinhard

Option Explicit

Private Sub CommandButton1\_Click()
 Dim WshShell ' Verweis auf Micsosoft Scripting Runtime setzen
 Dim intText As Integer
 Set WshShell = CreateObject("WScript.Shell")
 intText = WshShell.Popup("Msgbox für 5 Sekunden", \_
 5, "Testbox", vbSystemModal)
End Sub

Private Sub CommandButton2\_Click()
 Dim WshShell ' Verweis auf Micsosoft Scripting Runtime setzen
 Dim intText As Integer
 Dim zSekunden As Integer
 zSekunden = [d12]
 Set WshShell = CreateObject("WScript.Shell")
 intText = WshShell.Popup("Msgbox wird nach der vorgewählten Zeit von " \_
 & zSekunden & " Sekunden automatisch geschlossen.", \_
 zSekunden, "Testbox", vbSystemModal)
End Sub

Hallo Reinhard,

Da du in VB ja alles kennst inzwischen tastest du dich an Vba
ran,

nein. :smile: Ich kenne in VB noch lange nicht alles und von VBA lasse ich auch die Finger. :smile: Nur so eine superleichte Frage wie weiter oben fasse ich mal an, die anderen sind für Dich.

deshalb zur Information.
Prinzipiell läuft dein Code auch in Vba. Es kommt zwar ein
„fehlendesObjekt“-Fehler aber das liegt nur an dem fehlenden
„Set“, was man bei VB (oder ist das VBS?)

Ja, das ist ein vollständiges VBS-Programm! Einfach in das Notepad kopieren, mit der Endung .vbs abspeichern, fertig, läuft! VBS beeindruckt mich immer mehr. :smile:

anscheinend nicht braucht.
Im Anhang habe ich mal Excel-Vba-Code wie es dort funktioniert
als Beispiel.

[d12] ist nur die andere Schreibweise von Range(„D12“)

Korrekterweise müßtes man Range(„D12“).Value benützen, aber
man ist ja schreibfaul wenn’s trotzdem klappt.
Und Value ist in 99% aller Fälle auch korrekt, aber leider,
grad weil das so ist, sucht man sich dumm und dusselig wenn
auf einmal, wie aus heiterem Himmel, bei der Wertübernahme aus
einer Zelle etwas schräg läuft.

Frühestens nach Stunden kommt man darauf daß
Range(„D12“).Value nicht immer das Gleiche wie
Range(„D12“).Text ist.
Ich spreche da aus leidvoller Erfahrung :frowning:, deshalb der
Hinweis.

Option Explicit


Private Sub CommandButton1\_Click()
 Dim WshShell ' Verweis auf Micsosoft
Scripting Runtime setzen
 Dim intText As Integer
 Set WshShell = CreateObject("WScript.Shell")
 intText = WshShell.Popup("Msgbox für 5 Sekunden", \_
 5, "Testbox", vbSystemModal)
End Sub

Private Sub CommandButton2\_Click()
 Dim WshShell ' Verweis auf Micsosoft
Scripting Runtime setzen
 Dim intText As Integer
 Dim zSekunden As Integer
 zSekunden = [d12]
 Set WshShell = CreateObject("WScript.Shell")
 intText = WshShell.Popup("Msgbox wird nach der
vorgewählten Zeit von " \_
 & zSekunden & " Sekunden automatisch geschlossen.", \_
 zSekunden, "Testbox", vbSystemModal)
End Sub

Na gut, geht auch. Man kann auch einfach nur 'ne Form mit .show anzeigen und .hide wieder verstecken. :smile: Aber VBS hat eben keine Form …

Gruß, Rainer

Ja, das ist ein vollständiges VBS-Programm! Einfach in das
Notepad kopieren, mit der Endung .vbs abspeichern, fertig,
läuft! VBS beeindruckt mich immer mehr. :smile:

Hallo Rainer,
habe ich gemacht, dann im WindowsExplorer per Doppelklick gestartet, eine Msgbox kommt auch und geht nach einer Sekunde, aber danach sieht man nichts, außer, daß unten in der Taskleiste die anderen 9 Msgboxen im Sekundentakt vorbeirauschen.
Muß man da noch was machen?
Gruß
Reinhard

Hallo Reinhard,

habe ich gemacht, dann im WindowsExplorer per Doppelklick
gestartet, eine Msgbox kommt auch und geht nach einer Sekunde,
aber danach sieht man nichts, außer, daß unten in der
Taskleiste die anderen 9 Msgboxen im Sekundentakt
vorbeirauschen.
Muß man da noch was machen?

??? ich hab’s bei mir auf dem Desktop liegen und klicke es da doppelt an. Was mir aufgefallen ist, das erste Fenster ist selektiert (Titelzeile blau) die folgenden nicht. Es kann gut sein, daß sich die hinter Deinem Explorer verstecken.

Gruß, Rainer

??? ich hab’s bei mir auf dem Desktop liegen und klicke es da
doppelt an. Was mir aufgefallen ist, das erste Fenster ist
selektiert (Titelzeile blau) die folgenden nicht. Es kann gut
sein, daß sich die hinter Deinem Explorer verstecken.

Hallo Rainer,
genau da liegt der Hase im Pfeffer irgendwie.
Es hat jetzt etwas gedauert bis ich deinen Code in der Test.vbs mittels Excel zum Laufen brachte, aber es geht, leider passiert das Gleiche wie im Explorer, erstes Fenster ja, die anderen nicht sichtbar.

Sub tt()
Dim Machma
'Machma = Shell(„C:\test.vbs“) 'Fehler, unültiger Funktionsaufruf oder Argument
Machma = Shell(„WScript " & „“„C:\test.vbs““", vbNormalFocus)
End Sub

Probiert habe ich in der Shellanweisung auch einige andere Parameter als vbNormalFocus, aber brachte gar nichts.

Auch wenn ich nicht herausfinde wie man die vbs-Fenster in den Vordergrund rückt (naja, ich hoffe da noch auf dich *gg*) so habe ich zumindest gelernt wie man aus Excel heraus vbs-Dateien startet.
Also daß da "WScript " mit in den Pfad muß, warum auch immer.

Gruß
Reinhard

Hallo Reinhard,

genau da liegt der Hase im Pfeffer irgendwie.
Es hat jetzt etwas gedauert bis ich deinen Code in der
Test.vbs mittels Excel zum Laufen brachte,

mit Excel??? Versteh ich nicht.

aber es geht,
leider passiert das Gleiche wie im Explorer, erstes Fenster
ja, die anderen nicht sichtbar.

Sub tt()
Dim Machma
'Machma = Shell(„C:\test.vbs“) 'Fehler, unültiger
Funktionsaufruf oder Argument
Machma = Shell(„WScript " & „“„C:\test.vbs““", vbNormalFocus)
End Sub

Das verstehe ich immer noch nicht. Wozu der Umweg?

Probiert habe ich in der Shellanweisung auch einige andere
Parameter als vbNormalFocus, aber brachte gar nichts.

Auch wenn ich nicht herausfinde wie man die vbs-Fenster in den
Vordergrund rückt (naja, ich hoffe da noch auf dich *gg*) so
habe ich zumindest gelernt wie man aus Excel heraus
vbs-Dateien startet.

OK, aber warum? Die laufen doch auch allein.

Warum legst Du nicht einfach zum Test die Test.vbs mal auf den Desktop, schließt alle Fenster und klickst mal doppelt auf das Icon?

Du traus den vier Zeilen Code nicht zu, daß die ohne Entwicklungsumgebung, ohne Plattform, ohne Compiler einfach so laufen? Doch, tun sie. :smile: Die .vbs ist allein lauffähig. Windows kann das.

Gruß, Rainer

Hallo Reinhard,

ich habe mal noch eine Information für das Fenster eingefügt, nun ist es sogar aufdringlich und kommt immer in den Vordergrund. :smile:

Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
For i=0 To 10
 WshShell.Popup Time, 1, "Zeit:", VbNormalFocus
Next

Gruß, Rainer

Hallo Rainer,

mit Excel??? Versteh ich nicht.

ich versuche Excel zu erlernen, naja, eher nicht, aber gezielt Excel-Vba. Und von daher bin ich sehr daran interessiert herauszufinden, wie ich, wenn Excel-Vba-Bordmittel nicht ausreichen, eine Vbs oder sonstiges so zu starten daß das klappt.

Warum legst Du nicht einfach zum Test die Test.vbs mal auf den
Desktop, schließt alle Fenster und klickst mal doppelt auf das
Icon?

Das habe ich nicht gemacht, weil du sagst das geht, also gehts :smile:

Du traus den vier Zeilen Code nicht zu, daß die ohne
Entwicklungsumgebung, ohne Plattform, ohne Compiler einfach so
laufen? Doch, tun sie. :smile: Die .vbs ist allein lauffähig.
Windows kann das.

Da hänge ich grad gedanklich an zwei Problemen, erstens, wie kriege ich vbs-Dateien sauber zum Laufen. Zweitens, wenn ich Excel.Vba-Code entwickle, der mal als Beispiel eine vbs aufruft, so kann ich das nicht einfach so tun, ich muß vorher abprüfen ob an dem Rechner wo er laufen soll überhaupt WSH zugelassen ist.
Und wenn dem nicht so ist, weil es „oben“ in den Sicherheitsbrettern m.E. angeraten wird, WSH zu unterbinden, so muß ich das einplanen.

Wie auch immer, mein Anliegen ist, ich gehe immer von Excel als Plattform aus, wie kann ich von daher/daraus bestimmte Dinge tun.

Wobei ich da kein Fetischist bin, wenn ich eine Aufstellung aller Dateien mit bestimmten Endungen einer Festplatte möchte, so erzeuge ich in Excel eine Dos-batch, die sie mir in eine Datei schreibt, und rufe diese in Excel auf, also die batch.
Viel schneller als dieses Filesearch in Excel.

Aber als „startposition“ bin ich auf Excel angewiesen, von daher geht es für mich nicht darum wie ich eine vbs vom Desktop her starte, sondern wie aus Excel.

Gruß
Reinhard

Gruß, Rainer

Hallo Reinhard,

verstanden. :smile: Mit VBA kenne ich mich aber wieder nicht aus, da frage ich dann Dich. :smile: Im Betrieb kann ich zwar mal testen, da ist ein altes Excel installiert, aber sonst verwende ich das nicht. Privat habe ich gar nichts von MS-Office installiert, war bei meinem Notebook nicht dabei und um mal 'nen Brief zu schreiben genügt auch Open Office. :smile:

Aber ich kann ja versuchen .vbs aus VB6 zu nutzen, das wird sich ja ähnlich verhalten. Nur, daß VB6 kompiliert wird und VBA ja wohl noch Interpreter ist?

Aber IMO kann VBS doch auch nichts, was VBA nicht selbst kann. In VB6 wollte ich ja das Eval aus VBS verwenden, weil VB6 das gar nicht kann und die Funktion aus Eccess VBA so umständlich aufgerufen wird, aber ich schreibe mir das wohl doch mal selbst. :smile: Aber VBS und VBA? Macht das Sinn?

Gruß, Rainer

Hallo

Sub tt()
Dim Machma
'Machma = Shell(„C:\test.vbs“) 'Fehler, unültiger
Funktionsaufruf oder Argument
Machma = Shell(„WScript " & „“„C:\test.vbs““", vbNormalFocus)
End Sub

Probiert habe ich in der Shellanweisung auch einige andere
Parameter als vbNormalFocus, aber brachte gar nichts.

Auch wenn ich nicht herausfinde wie man die vbs-Fenster in den
Vordergrund rückt (naja, ich hoffe da noch auf dich *gg*) so
habe ich zumindest gelernt wie man aus Excel heraus
vbs-Dateien startet.
Also daß da "WScript " mit in den Pfad muß, warum auch immer.

Das ist ganz einfach:
WScript oder CScript sind die Compiler, mit denen der Script ausgeführt wird. Windows macht das automatisch, die Datei mit einem der beiden Compiler aufzurufen (mit welchem auch immer, kA), wenn du auf eine vbs - datei doppel klickst.
Daher muss es davor!
Warum man jetzt keinen Pfad vor diese Exe setzen muss? Denke, die ist bei Windows so registriert, das man sie von überall aus aufrufen kann!

Gruß,
AlexR

Aber IMO kann VBS doch auch nichts, was VBA nicht selbst kann.
In VB6 wollte ich ja das Eval aus VBS verwenden, weil VB6 das
gar nicht kann und die Funktion aus Eccess VBA so umständlich
aufgerufen wird, aber ich schreibe mir das wohl doch mal
selbst. :smile: Aber VBS und VBA? Macht das Sinn?

Hallo Rainer,
Eccess, ist das was Neues in Office 2007, so eine Vereinigung von Excel und Access zu einem Bug äh Feature? *grien*

Die Sinnfrage stellt sich mir nicht, ich will nur wissen wie man Vbs aus Vba heraus startet. Das weiß ich jetzt ein bisschen und schon ist das nächste Problemchen da, warum sieht man die 9 anderen Fenster nicht, also irgendwas mit SetFokus, oder Window, oder Aktivate oder so, muß noch angepasst werden.

Ansonsten war mein Kurzausflug nach Vbs ganz nett, aber ich hab in Vba noch soviel zu tun…

Ansonsten beenden wir mal lieber die Beitragsfolge bevor uns der Moderator ins Plauschbrett verschieben lassen muss :wink:)

Gruß
Reinhard

WScript oder CScript sind die Compiler, mit denen der Script
ausgeführt wird. Windows macht das automatisch, die Datei mit
einem der beiden Compiler aufzurufen (mit welchem auch immer,
kA), wenn du auf eine vbs - datei doppel klickst.
Daher muss es davor!
Warum man jetzt keinen Pfad vor diese Exe setzen muss? Denke,
die ist bei Windows so registriert, das man sie von überall
aus aufrufen kann!

Hallo Alex,
jetzt ist alles klar. Hätte ich es so schreiben müssen
xyz=Shell(„WShell.exe test.vbs“)
hätte ich es gleich kapiert, so verstand ich das nicht.
Danke für die Informationen.
Gruß
Reinhard

Hallo Reinhard,

Eccess, ist das was Neues in Office 2007, so eine Vereinigung
von Excel und Access zu einem Bug äh Feature? *grien*

ja, lach ruhig über meine breiten Finger, ich hab’s ja verdient. :smile:

Die Sinnfrage stellt sich mir nicht, ich will nur wissen wie
man Vbs aus Vba heraus startet. Das weiß ich jetzt ein
bisschen und schon ist das nächste Problemchen da, warum sieht
man die 9 anderen Fenster nicht, also irgendwas mit SetFokus,
oder Window, oder Aktivate oder so, muß noch angepasst werden.

hmmm, ja. Ich bring’s nicht besser hin … :frowning:

Ansonsten war mein Kurzausflug nach Vbs ganz nett, aber ich
hab in Vba noch soviel zu tun…

Ansonsten beenden wir mal lieber die Beitragsfolge bevor uns
der Moderator ins Plauschbrett verschieben lassen muss :wink:)

1.) Darf w-w-w auch Spaß machen und 2.) sind wir doch beim Thema.
Das ist komplett richtig so.

Gruß, Rainer