Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
812to816
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
812to816
812to816
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro Zeile überspringen

Makro Zeile überspringen
24.10.2006 14:13:09
W.Kurt
Guten Tag,
habe folgende Zeilen:
Call Test_Datei_vorhanden
Call Mappe_Kopieren
UserForm1.CommandButton70.Enabled = True
Wenn geprüft wurde, ob die Datei vorhanden ist (funktioniert), soll es mit der
nächsten Zeile weitergehen.
SONST sollte es mit der Zeile:
UserForm3.CommandButton7.Enabled = True
weitergehen.
Wie kann man das Durchführen ?
gruß kurti

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro Zeile überspringen
24.10.2006 14:40:36
daniel
Hallo
was ist jetzt dein Problem:
a) die Kontrollstrukturen
b) die Weitergabe des Ergebnisses der Prüfung aus Test_Datei_vorhanden?
falls b)
du könntest die SUB "Test_Datei_vorhanden" als Funktion schreiben, dann kannst du das Ergebnis in eine Variable zurückgeben, die du abfragen kannst.
dh. deine Sub "Test_Datei_vorhanden" hat folgenden Kopf/Ende

Private Function Test_Datei_vorhanden () as boolean
Test_Datei_vorhanden = True/False (je nach ergebnis der Prüfung)
end function

in deinem Code kannst du dann die Funktion wie normal abfragen:

if Test_Datei_vorhanden() = True then
else
end if

oder mit

select case Test_Datei_vorhanden
Case true
Case false
End select

Andere Möglichkeit, du definierst eine globale Variable (das heißt, die DIM-Anweisung steht nicht innerhalb eines Makros, sondern im allgemeinen Modul ganz oben , direkt unter OPITION EXPLICIT und wird nicht mit DIM sondern mit PUBLIC deklariert
Diese Variablen sind für alle Makros gültig und haben den Wert, der ihnen zuletzt zugewiesen wurde
Dieser Variable weist du dann in der SUB Test_Datei_vorhanden zu und kannst es dann im Andern Makro wieder in einer IF-Abfrage oden Select-Case-Anweisung verwenden.
Gruß, Daniel
Anzeige
Leider Fehlermeldung
24.10.2006 15:14:37
W.Kurt
Hallo Daniel,
herzlichen Dank für die schnelle Hilfe.
Leider habe ich eine Fehlermeldung: "Sub oder Function nicht definiert"
So habe ich das Makro geändert, steht in einem Modul:

Private Function Test_Datei_vorhanden() As Boolean
Test_Datei_vorhanden = True / False                   ' (je nach ergebnis der Prüfung)
'Sub Test_Datei_vorhanden()
Dim OrdNam As String
Dim DateiNam As String
DateiNam = "Muster-Datei.xls"
OrdNam = "V:\Verkauf"
If Dir(DateiNam, 16) = "" Then
MsgBox "Datei" & Chr(13) & "          " & DateiNam & _
Chr(13) & Chr(13) & " ist im Verzeichnis          " _
& Chr(13) & Chr(13) & "       " _
& OrdNam & Chr(13) & Chr(13) & "vorhanden !          " & Chr(13) _
& Chr(13) & Chr(13) & "Daten können kopiert werden !                      " _
& vbCr & "     " & Chr(13), vbCritical
Else
MsgBox "Datei" & Chr(13) & "          " & DateiNam & _
Chr(13) & Chr(13) & " ist im Verzeichnis          " _
& Chr(13) & Chr(13) & "       " _
& OrdNam & Chr(13) & Chr(13) & "NICHT  vorhanden !          " & Chr(13) _
& Chr(13) & Chr(13) & "Daten können nicht kopiert werden !                " _
& vbCr & "     " & Chr(13), vbCritical
' Exit Sub
End If
'End Sub

End Function
Im Makro was abläuft habe ich:
If Test_Datei_vorhanden() = True Then
'Call Test_Datei_vorhanden
Call Mappe_Kopieren
UserForm1.CommandButton70.Enabled = True
....
Else
Exit Sub
End If
End Sub
gruß kurti
Anzeige
AW: Leider Fehlermeldung
24.10.2006 15:51:49
Daniel
Hallo
wo steht den die Funktion Test_Datei_vorhanden und wo steht das Makro, das die Datei aufruf?
wenns nicht das Gleiche Modul ist, muß die Funktion natürlich Public sein.
Der Makro-Text muß so lauten:

Public Function Test_Datei_vorhanden() As Boolean
Dim OrdNam As String
Dim DateiNam As String
DateiNam = "Muster-Datei.xls"
OrdNam = "V:\Verkauf"
If Dir(DateiNam, 16) = "" Then
MsgBox "Datei" & Chr(13) & "          " & DateiNam & _
Chr(13) & Chr(13) & " ist im Verzeichnis          " _
& Chr(13) & Chr(13) & "       " _
& OrdNam & Chr(13) & Chr(13) & "vorhanden !          " & Chr(13) _
& Chr(13) & Chr(13) & "Daten können kopiert werden !                      " _
& vbCr & "     " & Chr(13), vbCritical
Test_Datei_vorhanden = true
Else
MsgBox "Datei" & Chr(13) & "          " & DateiNam & _
Chr(13) & Chr(13) & " ist im Verzeichnis          " _
& Chr(13) & Chr(13) & "       " _
& OrdNam & Chr(13) & Chr(13) & "NICHT  vorhanden !          " & Chr(13) _
& Chr(13) & Chr(13) & "Daten können nicht kopiert werden !                " _
& vbCr & "     " & Chr(13), vbCritical
Test_Datei_vorhanden = false
End If
End Function

Anzeige
Danke war -)
24.10.2006 16:10:24
Kurt
Hallo Daniel,
hatte im falschen Modul,
funktioniert Danke !
gruß kurti
Bitte noch einmal Fehler...
24.10.2006 16:57:05
W.Kurt
Hallo Daniel,
habe jetzt getestet und leider festgestellt das die Abfrage Falsch beantwortet wird.
Ich muß ja abprüfen ob die Datei im Verzeichnis ist, leider wird immer JA gesagt,
Wieso?
Hier die Makros vom Test:

Sub test()
If Test_Datei_vorhanden() = True Then
MsgBox "JA"
Else
MsgBox "Nicht da   "
End If
End Sub

Private

Function Test_Datei_vorhanden() As Boolean
Dim OrdNam As String
Dim DateiNam As String
DateiNam = "Muster.xls"
OrdNam = "V:\Test"
If Dir(DateiNam) <> "" Then              <<<<<<<<<<<<<<  so Richtig ?
MsgBox "Ja"
Else
MsgBox "Nicht da"
End If
End Sub

gruß kurti
Anzeige
AW: Bitte noch einmal Fehler...
24.10.2006 23:16:05
Ali
Hi,
Private Function Test_Datei_vorhanden() As Boolean
Dim OrdNam As String
Dim DateiNam As String
DateiNam = "Muster.xls"
OrdNam = "V:\Test\"
If Dir(OrdNam & "\" & DateiNam) <> "" Then
MsgBox "Ja"
Else
MsgBox "Nicht da"
End If
End Function
Ali

Danke funktioniert
25.10.2006 08:59:52
W.Kurt
Guten Morgen Ali,
Danke funktioniert einwandfrei !!!
gruß kurti
ich denke, das Problem ist inzwischen gelöst, oder
24.10.2006 23:18:20
Daniel
Die Zuweisung des Rückgabewertes fehlt am Ende (innerhalb der If-Blöcke), also
Test_Datei_vorhanden = TRUE bzw
Test_Datei_Vorhanden = FALSE
aber wenn ich hier durch die Postings durchgehe, hast du das glaube ich schon selber rausgefunden.
Gruß, Daniel
Anzeige
Ja stimmt , Danke für die.. -)
25.10.2006 09:02:40
W.Kurt
Guten Morgen Daniel,
Danke für alles, bin ehrlich, mein Vater hatte gestern Abend durchgesehen und das festgestellt, was Du gerade schreibst.
Hatte dann gestern Abend auch geantwortet.
Danke für die Unterstützung,
kurti

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige