Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Julia,
kleiner Hinweis am Rande. Es heißt ElseIf und nicht Else If!
Gruß Stefan
Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• o0Julia0o
Registriert seit: 08.07.2016
Version(en): 2016
27.03.2017, 12:11
(Dieser Beitrag wurde zuletzt bearbeitet: 27.03.2017, 12:11 von o0Julia0o.)
(26.03.2017, 22:55)atilla schrieb: Was will sie Jetzt mit Andres Vorschlag? Wenn sie es zum Laufen bringt, will sie dann die Formeln nicht reinschreiben, wenn die Datei nicht vorhanden ist?
Sie weiß doch, dass die Datei noch nicht vorhanden ist.
Ich weiß es nicht, ob die Datei vorhanden ist. Sie kann vorhanden sein, oder nicht. Und den Rest weißte ja dann schon. So verhindere ich, dass dieser Excel-Dateibrowser sich öffnet(ich könnte ihm ja ohnehin nicht die Datei zeigen, da sie nicht existiert).
@schauan
jo, danke. Das war das Problem. Jetzt funktioniert es :)
Registriert seit: 08.07.2016
Version(en): 2016
27.03.2017, 16:42
(Dieser Beitrag wurde zuletzt bearbeitet: 27.03.2017, 16:44 von o0Julia0o.)
So funktioniert es. Allerdings, wenn die Variable Dateiname leer ist(Tabelle: "Tabelle1" Feld: "J111"), dann kommt trotzdem die MsgBox "Die Datei ist vorhanden". Wenn allerdings irgendetwas in dem Feld steht, dann kommt die MsgBox nicht.
Code:
Sub prcHoleDaten() 'funktioniert, die Funktion GetDataClosedWB muß vorhanden sein im Modul
Dim Pfad As String
Dim Dateiname As String
Dim Blatt As String
Dim Bereich As String
Dim Ziel As Range
Pfad = ThisWorkbook.Path & "\" 'Pfad wo sich die Datei befindet aus der kopiert werden soll. Also gleiches Verzeichnis wo sich die Hauptdatei befindet.
Dateiname = Worksheets("Calc3").Range("J111").text 'aus welcher Datei soll er holen?
Blatt = "Tabelle1" 'von welcher Tabelle soll er holen?
Bereich = "A6:AE40" 'aus welchem Bereich soll er holen?
Set Ziel = Worksheets("Tabelle1").Range("A6") 'in welchen Bereich soll er kopieren? Genauer gesagt: Bei welcher Zelle soll er anfangen, Datein reinzukopieren? Bsp: ActiveCell geht auch
If Dir(Pfad & Dateiname) <> "" Then 'Wenn die Datei vorhanden ist, dann..
MsgBox "Die Datei ist vorhanden"
If GetDataClosedWB(Pfad, Dateiname, Blatt, Bereich, Ziel) Then '..hole die Daten..
Exit Sub
End If
Else '..sonst Ende(damit der nicht bei Nichtvorhanden Dateien, nach den Dateien fragt per Browser)
End If
End Sub
Fragt der nicht mit "If Dir(Pfad & Dateiname) <> """" ab, ob die Datei(Dateiname) in dem Pfad(Pfad) vorhanden ist? Wenn die Datei aber "" heißt, ist sie doch nicht vorhanden, weil es eine Datei ohne Namen doch gar nicht geben kann.
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Julia,
auch wieder aus der OH (diesmal zur Dir-Funktion)
Zitat:Gibt eine Zeichenfolge (String) zurück, die den Namen einer Datei, eines Verzeichnisses oder eines Ordners darstellt, der mit einem bestimmten Suchmuster, einem Dateiattribut oder mit der angegebenen Datenträger- bzw. Laufwerksbezeichnung übereinstimmt.
Da es den Ordner gibt, ist die Bedingung wahr. Versuche es mal so
Code:
If Dir(Pfad & Dateiname) <> "" And Dateiname <> "" Then
Gruß Stefan
Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• o0Julia0o
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Stefan,
(27.03.2017, 18:39)Steffl schrieb: Da es den Ordner gibt, ist die Bedingung wahr. Versuche es mal so
das ist nicht war: Ist der Ordner leer, gibt Dir() ohne Suchmuster auch Leer zurück, sonst halt die erste Datei des Ordners.
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• o0Julia0o
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
Altrnativ zu Steffls Codevirschlag könnte man noch
If Dir(...) = Dateiname ...
Nehmen
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• o0Julia0o