Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1116to1120
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
Inhaltsverzeichnis

Makro zum öffnen von Dateien

Makro zum öffnen von Dateien
Dateien
Hallo zusammen,
ich habe ein kleines Problem das sich aber sicherlich mit euerer Hilfe lösen lässt. Bitte nehmt bei euren Antworten aber Rücksicht darauf, daß ich von Makros bisher überhaupt keine Ahnung habe. - Also bitte erklärt es für dumme (damit auch ich es verstehe ;-) ).
Ich habe auf einem Server (z.B. \\Server01) einige Verzeichnisse (z.B. \Verzeichnis1).
In diese Verzeichnisse werden täglich neue *.zip Excel - Dateien eingestellt (z.B. \Datei1_2009_10_01.zip)
Ich möchte per Makro diese Datei lokal auf meinem Rechner speichern. Der Dateiname ändert sich täglich weil immer das aktuelle Datum im Namen mit angegeben wird.
Habt Ihr eine Lösung für mich ?

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Makro zum öffnen von Dateien
22.11.2009 12:05:42
Dateien
Hallo Christoph,
hier ein Beispiel mit zwei Dialogen zum wählen der Datei auf dem Server und zum abspeichern.
' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Declare Function GetOpenFileName Lib "comdlg32.dll" _
  Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) _
  As Long

Private Declare Function GetSaveFileName Lib "comdlg32.dll" _
  Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) _
  As Long


Private Type OPENFILENAME
  lStructSize As Long
  hwndOwner As Long
  hInstance As Long
  lpstrFilter As String
  lpstrCustomFilter As String
  nMaxCustFilter As Long
  nFilterIndex As Long
  lpstrFile As String
  nMaxFile As Long
  lpstrFileTitle As String
  nMaxFileTitle As Long
  lpstrInitialDir As String
  lpstrTitle As String
  Flags As Long
  nFileOffset As Integer
  nFileExtension As Integer
  lpstrDefExt As String
  lCustData As Long
  lpfnHook As Long
  lpTemplateName As String
End Type

Public Const OFN_FILEMUSTEXIST As Long = &H1000&
Public Const OFN_HIDEREADONLY As Long = &H4&
Public Const OFN_PATHMUSTEXIST As Long = &H800&


Sub Datei_Waehlen()
  Dim Filter As String, FileName As String, saveFileName As String
  Dim strOldName As String, strRemotePath As String, strLocalPath As String
  Dim Flags As Long
  
  Flags = OFN_FILEMUSTEXIST Or OFN_HIDEREADONLY Or _
    OFN_PATHMUSTEXIST
  
  strRemotePath = "\\Server01" 'Stammverzeichnis auf dem Server
  
  strLocalPath = "C:\Eigene Dateien" 'Stammverzeichnis Local
  
  If Right(strLocalPath, 1) <> "\" Then strLocalPath = strLocalPath & "\"
  
  Filter = "ZIP-Dateien (*.zip)" & Chr$(0) & "*.zip" & Chr$(0)
  
  Filter = Filter & Chr$(0)
  
  FileName = ShowOpen(strRemotePath, Filter, Flags, Application.hWnd, 2&, "Datei Auswählen")
  
  If FileName = "" Then Exit Sub
  
  strOldName = Mid(FileName, InStrRev(FileName, "\") + 1)
  
  saveFileName = ShowSave(Filter, Flags, Application.hWnd, strLocalPath & strOldName)
  
  If saveFileName = "" Then Exit Sub
  
  FileCopy FileName, saveFileName
  
End Sub

Private Function ShowOpen(Path As String, Filter As String, Flags As Long, hWnd As _
    Long, Optional FilterIndex As Long = 1&, Optional Title As String = "Datei Auswählen") As String

  Dim Buffer As String
  Dim Result As Long
  Dim ComDlgOpenFileName As OPENFILENAME
  
  Buffer = String$(128, 0)
  
  With ComDlgOpenFileName
    .lStructSize = Len(ComDlgOpenFileName)
    .hwndOwner = hWnd
    .Flags = Flags
    .nFilterIndex = FilterIndex
    .nMaxFile = Len(Buffer)
    .lpstrFile = Buffer
    .lpstrFilter = Filter
    .lpstrInitialDir = Path
    .lpstrTitle = Title
    
    
  End With
  
  Result = GetOpenFileName(ComDlgOpenFileName)
  
  If Result <> 0 Then
    ShowOpen = Left$(ComDlgOpenFileName.lpstrFile, _
      InStr(ComDlgOpenFileName.lpstrFile, _
      Chr$(0)) - 1)
  End If
End Function

Private Function ShowSave(Filter As String, Flags As Long, _
    hWnd As Long, FileName As String) As String

  
  Dim Buffer As String
  Dim Result As Long
  Dim ComDlgOpenFileName As OPENFILENAME
  
  Buffer = FileName & String$(128 - Len(FileName), 0)
  
  With ComDlgOpenFileName
    .lStructSize = Len(ComDlgOpenFileName)
    .hwndOwner = hWnd
    .Flags = OFN_HIDEREADONLY Or OFN_PATHMUSTEXIST
    .nFilterIndex = 1&
    .nMaxFile = Len(Buffer)
    .lpstrFile = Buffer
    .lpstrFilter = Filter
  End With
  
  Result = GetSaveFileName(ComDlgOpenFileName)
  
  If Result <> 0 Then
    ShowSave = Left$(ComDlgOpenFileName.lpstrFile, _
      InStr(ComDlgOpenFileName.lpstrFile, _
      Chr$(0)) - 1)
  End If
End Function

Gruß Sepp

Anzeige

157 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige