Datei vorhanden, dann MsgBox
#31
(25.02.2017, 20:06)Gast 123 schrieb: Die End Anweisung  - bedeutet Unwiderruflich Ende.   Er bricht  -ALLE-  laufenden Programme ab!!
Also auch von anderen Excel-Dateien welche gerade geöffnet sind und derer Codes laufen?

Elise war natürlich ein Tippfehler ;)


Der Code ist im Tabellenblatt: Daten hinterlegt. Nicht im Tabellenblatt Calc.

Wenn die Bedingung:
Code:
If Worksheets("Calc3").Range("C106") = 1 Then
war ist, dann funtioniert der Code. Alle MsgBoxen werden angezeigt, bzw. je nachdem ob die Datei vorhanden ist auch die ein oder andere MsgBox nicht.

Ist die Bedingung jedoch falsch, springt der in die Codezeile:
Code:
If Dir(AktuPfad & "\" & Worksheets("Calc3").Range("B111")) <> "" Then
markiert diese also gelb & gibt "Laufzeitfehler '13': Typen unverträglich" aus.
 
Es ist doch irrelevant was in B113 steht, da er die If-Anweisung in dem Fall gar nicht ausführen soll. In B113 steht, wenn die 1. If-Anweisung negativ ist: "#NV". Genau deshalb mache ich ja die 1. If-Abfrage(If Worksheets("Calc3").Range("C106") = 1 Then)
, damit dann ans Ende des Codes gesprungen wird & die weiteren If-Abfragen alle nicht beachtet werden.
Top
#32
Hallöchen,

zu der Aussage zum END-Befehl möchte ich mal widersprechen. END wirkt auf Projektebene, das ist korrekt. END wirkt ggf auch projektübergreifend, wenn die Codes entsprechendes tun sollen. Sind die Projekte jedoch unabhängig, sollte das nicht passieren. Die unabhängige Variante kann man z.B. mal mit zwei Dateien, in einer mit einem Userform einen Test machen.
Unter Office 2016 muss man da etwas mehr aufpassen. In älteren Versionen konnte man ja einfach mehrere Excel-Sessions nutzen, um gegenseitige Einflüsse auszuschließen.

Datei A:
'Modul1
Public a
Sub test()
a = 10
UserForm1.Show
End Sub
'Userform1
'Userform mit Schaltflaeche, Shomodal=False
Private Sub CommandButton1_Click()
MsgBox a
End Sub

Datei B:
'Modul1
'Button auf einem Blatt und dieses Makro zuweisen
Sub test1()
End
End Sub

Zuerst in Datei A das Makro in Modul1 ausführen.
Anschließend in Datei B wechseln und den Button betätigen.

Das Userform verschwindet nicht.

Nun den Button auf dem Userform betätigen
Die 10 wird ausgegeben, die Globale Variable hat also noch ihren Inhalt.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#33
Ja das mag sein, ist C106 dann auch NICHT 1?
Führe dein Code doch mal mit F8 aus um zu sehen welchen Weg er nimmt.
[-] Folgende(r) 1 Nutzer sagt Danke an Basisa für diesen Beitrag:
  • o0Julia0o
Top
#34
Wie dämlich kann man sein. Das war die Lösung. Mit F8 kannte ich noch gar nicht. Ich hatte mich nichtmal darauf verlassen, dass C106 1 ist, sondern auch nachgeguckt. Jedoch liegt daneben B106(wer hätte das gedacht ^^). Und in B106 steht dann 0. Und da ich wohl nach 0 und C106 gesucht hatte, hatte ich übersehen, dass C106 dann 1 als Wert hatte. Sorry... Blush - macht euch schöne Karnevalstage!
Top
#35
Hahaha, na dann ist doch schön das du wieder was gelernt hast mit F8  :15:
Top


Gehe zu:


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