Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen

Wscript.shell popup

Betrifft: Wscript.shell popup von: Otmar
Geschrieben am: 31.10.2014 19:34:18

Hallo zusammen
Mit dem nachstehenden Makro soll eine neue Tabelle eingefügt werden. Es wird geprüft, ob der Tab-Name schon vorhanden ist. Wenn ja, erscheint eine Meldung.
An dieser Stelle arbeitet ein Objekt-Shell: Die Meldung soll nach wenigen Sekunden wieder ausgeblendet werden und das Programm startet neu.
Problem: Beim ersten Aufruf passiert genau, was ich oben beschrieben habe. Beim folgenden Durchlauf bleibt die Fehlermeldung stehen und ich muss wieder mit OK den Prozess fortsetzen.
Vielen Dank für einen guten Hinweis.
Freundliche Grüsse
Otmar

Function BlattDa(strName As String) As Boolean
Dim Blatt As Worksheet
For Each Blatt In Worksheets
    If Blatt.Name = strName Then
        BlattDa = True
        Exit Function
    End If
Next Blatt
End Function

Sub TBEinfügen()
Dim TBName$
Dim Objshell As Object
Dim FText As Integer
Const Dauer As Long = 2
Set Objshell = CreateObject("Wscript.Shell")
Start:
TBName = InputBox("Welchen Namen soll das Tabellenblatt erhalten?" & Chr(13) & Chr(13) & _
        "Bitte den Blattnamen eingeben:")
If TBName = "" Then Exit Sub
If BlattDa(TBName) = False Then
    Worksheets.Add after:=Worksheets(Worksheets.Count)
    ActiveSheet.Name = TBName
Else 
    FText = Objshell.Popup("Der gewählte Name ist bereits in der Mappe vorhanden!", Dauer, _
        "Fehlermeldung", vbInformation)
GoTo Start
End If
Exit Sub
End Sub

  

Betrifft: AW: Wscript.shell popup von: Mullit
Geschrieben am: 31.10.2014 20:00:04

Hallo,

kann ich nicht bestätigen, die Box wird bei mir jedesmal automatisch geschlossen; Du könntest Deinen Code vielleicht noch etwas straffen:

Option Explicit

Function BlattDa(strName As String) As Boolean
Dim lngIndex As Long
On Error Resume Next
lngIndex = Worksheets(strName).Index
If Err.Number = 0 Then BlattDa = True
End Function

Sub TBEinfügen()
Dim TBName$
Dim Objshell As Object
Const Dauer As Long = 2
Set Objshell = CreateObject("Wscript.Shell")
Start:
TBName = InputBox("Welchen Namen soll das Tabellenblatt erhalten?" & Chr(13) & Chr(13) & _
        "Bitte den Blattnamen eingeben:")
If TBName = "" Then Exit Sub
If Not BlattDa(TBName) Then
    Worksheets.Add after:=Worksheets(Worksheets.Count)
    ActiveSheet.Name = TBName
Else
    Objshell.Popup "Der gewählte Name ist bereits in der Mappe vorhanden!", Dauer, _
        "Fehlermeldung", vbInformation
GoTo Start
End If
End Sub

Gruß,


  

Betrifft: AW: Wscript.shell popup von: Tino
Geschrieben am: 31.10.2014 20:10:26

Hallo,
dieses Problem hatten wir hier auch schon!

https://www.herber.de/forum/archiv/1096to1100/1096002_msgbox_fuer_3_sekunden_dann_automatisch_schlieen.html

Gruß Tino


  

Betrifft: AW: Wscript.shell popup von: Luschi
Geschrieben am: 31.10.2014 20:15:12

Hallo Otmar,

bei mir klappt es dauerhaft, wenn ich in der Zeile nach Start: folgenden Befehl einfügen
DoEvents

Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: Wscript.shell popup von: Otmar
Geschrieben am: 01.11.2014 07:33:04

Hallo Luschi
Danke für den Hinweis. Er löst das Problem.
Gruss von Otmar
aus der Schweiz


  

Betrifft: AW: Wscript.shell popup von: Mullit
Geschrieben am: 31.10.2014 20:24:51

Hallo,

ah ok, gut zu wissen, hatte bisher nur unter Vista + Xl2007 getestet, da funktioniert bei mir der Ausgangscode...

Gruß,