VBA - Datei Import -> Wechsel in Haltemodus nicht möglich
#1
Hallo Zusammen,

ich bekomme beim Importieren von Dateien immer die Fehlermeldung "Wechsel in den Haltemodus ist zu diesem Zeitpunkt nicht möglich."
Die Dateien werden über einen CommandButton eingefügt:

Code:
Public Sub Add_WKA_Click()
    Static cnt As Long
    cnt = cnt + 1
    If cnt = 1 Then
        Call Add_WKA_Sheets
    ElseIf cnt = 2 Then
        Call Add_WKS_Sheets
    ElseIf cnt = 3 Then
        Call Add_PM_Sheets
    End If
End Sub


Sub Add_WKA_Sheets()
    Workbooks("Test.xlsm").VBProject.VBComponents.Import Filename:="C:\Code_Samples\UserForm\Add\Assignment_WKA1.frm"
    Workbooks("Test.xlsm").VBProject.VBComponents.Import Filename:="C:\Code_Samples\UserForm\Watch\Watch_WKA1.frm"
    [Assignment_WKA].Show
End Sub


Wenn ich den Code mit F8 durchgehen, erhalte ich in folgender Zeile die Fehlermeldung:

Workbooks("Test.xlsm").VBProject.VBComponents.Import Filename:="C:\Code_Samples\UserForm\Add\Assignment_WKA1.frm"


Ich hoffe jemand kann mir helfen und sagen warum ich diese Fehlermeldung erhalte.

Schöne Grüße.
Top
#2
(23.07.2018, 07:15)Mr.Invisible schrieb: Ich hoffe jemand kann mir helfen und sagen warum ich diese Fehlermeldung erhalte.

Moin!
Nun, weil MS das so programmiert hat.
Es gibt einige Codes, die sich nicht im Einzelschrittmodus (F8) geprüft werden können.

Warum willst Du überhaupt in einer bestehenden Datei ein UF per Code importieren?

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#3
Hallo,

versuche es mal so

Code:
Public Sub Add_WKA_Click()
    Static cnt As Long
    cnt = cnt + 1
    If cnt = 1 Then
        Application.OnTime Now + TimeValue("00:00:01"), "Add_WKA_Sheets"
    ElseIf cnt = 2 Then
        Application.OnTime Now + TimeValue("00:00:01"), "Add_WKS_Sheets"
    ElseIf cnt = 3 Then
        Application.OnTime Now + TimeValue("00:00:01"), "Add_PM_Sheets"
    End If
End Sub
Gruß Stefan
Win 10 / Office 2016
Top
#4
Morgen RPP63,

weil in der Datei bestimmte Aufträge zu einer Maschine angezeigt werden müssen. Je nach Auftrag kann es sein, dass es hier bis zu 10 oder mehr verschiedene Aufträge gibt. Daher möchte ich, dass per klick auf den Button erst die UF importiert wird, damit die Datei insgesamt nicht zu groß wird wenn ich von Anfang an alle UFs importiere.

Grüße.
Top
#5
(23.07.2018, 07:23)Steffl schrieb: Hallo,

versuche es mal so

Code:
Public Sub Add_WKA_Click()
   Static cnt As Long
   cnt = cnt + 1
   If cnt = 1 Then
       Application.OnTime Now + TimeValue("00:00:01"), "Add_WKA_Sheets"
   ElseIf cnt = 2 Then
       Application.OnTime Now + TimeValue("00:00:01"), "Add_WKS_Sheets"
   ElseIf cnt = 3 Then
       Application.OnTime Now + TimeValue("00:00:01"), "Add_PM_Sheets"
   End If
End Sub

Funktioniert leider auch nicht. Da erhalte ich leider auch die selbe Fehlermeldung.
Top
#6
Okay es funktioniert wenn ich auf den Button klicke, wenn ich mit F8 durchgehe erhalte ich die Fehlermeldung. 

Aber solang es mit dem Klick auf den Button funktioniert ist ja alles gut.

Vielen Dank.

Kannst du mir vllt. noch sagen, warum es durch den Application.OnTime Code funktioniert? Bzw. warum funktioniert es wenn ich den Code für eine Sekunde anhalte?

Danke und Grüße
Top
#7
Edit:
Hat sich durch den letzten Beitrag ja erledigt.

Wie ich bereits schrieb:
Einzelstep ist per Design ausgeschlossen.
Funktioniert denn das Makro korrekt?
Warum dann F8?
Wenn nicht, wirft Dir der VBE doch eine Fehlermeldung aus; welche ist dies?
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#8
Hallo,

so genau kann ich dir es auch nicht sagen, nur dass Excel durch das OnTime die Möglichkeit hat, das Ereignismakro Add_WKA_Click zu beenden. Gesehen habe ich das Bernd (bst), der das bei einer Klassenprogrammierung vorgeschlagen hat.
Gruß Stefan
Win 10 / Office 2016
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste