AW: Datei per VBA in bestimmtes Verzeichnis speich
02.10.2007 09:57:46
Marta
Hallo Dirk,
bin leider erst jetzt zum Antworten gekommen. Vielen Dank für Deine Tipps. Habe es mir auf deren Grundlage zwischenzeitlich so zurechtgebastelt, dass der Export reibungslos funktioniert. Und was folgt nach dem Export? Na klar, der Import! Da hatte ich gedacht, dass ich schon eine Lösung habe (die hatte ich auch schon aus diesem tollen Forum ;-). Leider hat sich meine Annahme nicht bestätigt.
Das liegt daran, dass ich in meiner bisherigen Lösung daran gebunden bin, dass die Datei, in die die Daten importiert werden sollen, immer den gleichen Namen hat. Das ist hier jedoch nicht der Fall.
Folgenden Ablauf beim Import wollte ich erreichen:
Über einen Button "Importieren" in der Verarbeitungsdatei öffnet sich das Dialogfeld "Datei öffnen", wobei schon zum entsprechenden Pfad und in das Verzeichnis, in das ich meine Daten mal irgendwann exportiert habe, gewechselt werden soll. Das ist ja bekanntlich immer gleich C:\user\Benutzername\Meine Textbausteine, wobei sich Benutzername aus einem Feld auf einem Tabellenblatt der Verarbeitungsarbeitsmappe befindet. Hier die Funktion, die ich zum Exportieren genommen habe:
Private Sub Worksheet_Activate()
Dim Pfad As String
Dim sPrüf As String
Dim DateiName As String
Dim wb As Workbook
Dim fn, vorgabe As String
Pfad = "c:\user\" & Worksheets("01").Cells(17, 6) & "\Meine Textbausteine"
sPrüf = Dir(Pfad, vbDirectory)
On Error GoTo errhandler
If sPrüf = "" Then
MkDir (Pfad)
End If
DateiName = Pfad & "\" & Worksheets("Exportdateiname").Cells(10, 5) & ".xls"
ThisWorkbook.Sheets("Export").Copy 'Name des ersten Tabellenblattes
Set wb = ActiveWorkbook
ActiveWorkbook.SaveAs (DateiName)
ActiveWorkbook.Close
MsgBox ("Die Daten wurden erfolgreich nach " & Pfad & " exportiert und unter dem Namen " & _
DateiName & " gespeichert!")
Application.Run "Export_verwerfen"
Exit Sub
errhandler:
MsgBox Err.Description, vbCritical, "Fehler " & Err.Number
End Sub
Das funktioniert wie gesagt problemlos. Und aus diesem Verzeichnis sollen die Daten wieder importiert werden. Wenn der Nutzer über das Dialogfenster "Datei öffnen" die zu importierende Datei gewählt hat soll aus dieser, die ja nur ein Tabellenblatt enthält, der Bereich A1 bis L60 kopiert und in die Verarbeitungsdatei in den gleichen Bereich auf dem Tabellenblatt "Export"kopieren. Danach soll die Quelldatei (die importiert wurde) geschlossen werden und die Verarbeitungsdatei wieder aktiviert werden.
Alles weitere bekomme ich selbst hin. Die Funktion, die vielleicht als Grundlage dienen könnte, ist folgende:
Sub datensatz01_importieren()
'
'
Dim DatName As String
DatName = Application.GetOpenFilename
Workbooks.Open Filename:= _
DatName, UpdateLinks:= _
3
DatName = Right(DatName, Len(DatName) - InStrRev(DatName, "\", , vbTextCompare))
ActiveWindow.SmallScroll Down:=-15
Windows(DatName).Activate
Range("A1:L60").Select
Selection.Copy
Aber wie jetzt weiter?
Ich wäre für weitere Hilfe sehr dankbar!
Marta