Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Datei vorhanden, dann MsgBox
#31
(25.02.2017, 19: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.
Antworten 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)
Antworten 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
Antworten 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!
Antworten Top
#35
Hahaha, na dann ist doch schön das du wieder was gelernt hast mit F8  :15:
Antworten Top


Gehe zu:


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