Kopieren ?

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox


Excel-Version: 97
nach unten

Betrifft: Kopieren ?
von: Markus
Geschrieben am: 27.04.2002 - 14:34:01

Hallo Leute ich habe ein Problem und bracu bitte Eure Hilfe

Also:

Ich hab fogendes Makro

Sub kop()
FileCopy Application.GetOpenFilename("Textdateien (*.txt), *.txt"), "C:\Temp\"
End Sub

Mein Problem ist das Excel den Fehler bringt "Pfad nicht gefunden" , dies liegt daran das ich keinen Dateinamen für die einzufügende Datei angegeben habe.

Dies möchte ich auch nicht, weil ich ja nicht weis welche Datei der Benutzer einfügt - genau diese Datei soll einfügt werden.

Das Problem ist warum ich dies nicht direkt öffnen kann, dass dies ein Netzlaufwerk ist welches ein Zugriff ("Öffnen") nicht gesattet, also muss ich die Datei vorher kopieren.

Toll wäre es auch wenn es die Datei gleich Öffnen würde die ich kopiert habe

Danke, Danke, Danke schonmal

Markus

nach oben   nach unten

Re: Kopieren ?
von: Charlie
Geschrieben am: 27.04.2002 - 16:25:07

Hallo, Markus! So einfach geht es auch nicht, eben weil der Dateiname nicht bekannt ist. Folgender Lösungsansatz sollte Dir zumindest weiterhelfen können. Der Dateiname wird extrahiert, außerdem wird geprüft, ob das Zielverzeichnis existiert (was sonst zu einem weiteren Fehler führen würde) und ggf. erstellt.
Sub TextfileCopy()     Dim varSource As Variant, varCreateDir As Variant     Dim fs As Variant, varDest As Variant     Dim strFileName As String, intCounter As Integer     'Abfrage der zu kopierenden Datei     varSource = Application.GetOpenFilename("Textdateien (*.txt), *.txt")     If varSource = False Then         'Schaltfläche "Abbrechen" gewählt         Exit Sub     Else         'Dateinamen extrahieren         For intCounter = Len(varSource) To Step -1             If Mid(varSource, intCounter, 1) = "\" Then                 strFileName Mid(varSource, intCounter + 1, _                     Len(varSource) - intCounter)                 Exit For             ElseIf intCounter = 1 Then                 strFileName = varSource             End If         Next intCounter         varDest = "C:\Temp\" & strFileName     End If     'Prüfen, ob Verzeichnis existiert     If CheckDir("C:\Temp\") Then         'Wenn vorhanden, Datei kopieren         FileCopy varSource, varDest     Else         'Wenn nicht vorhanden, Abfrage, ob Verzeichnis         'erstellt werden soll.         varCreateDir MsgBox("Das Verzeichnis " & _             """C:\Temp\"" existiert nicht." & vbLf & _             "Soll es erstellt werden?", vbYesNo + vbQuestion)         If varCreateDir = 6 Then             'Wenn ja, Verzeichnis erstellen und Datei kopieren             Set fs = CreateObject("Scripting.FileSystemObject")             fs.CreateFolder ("C:\Temp\")             FileCopy varSource, varDest             Set fs = Nothing         Else: Exit Sub         End If     End If     Workbooks.Open Filename:="C:\Temp\" & strFileName End Sub Public Function CheckDir(Directory As String) As Boolean     On Error GoTo dirfalse     ChDir (Directory)     CheckDir = True     Exit Function dirfalse:     CheckDir = False End Function
Viel Erfolg, Charlie

nach oben   nach unten

Geht super,
von: Markus
Geschrieben am: 27.04.2002 - 17:50:29

danke Dir nochmals! :-) Markus

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Kopieren ?"