| |
 | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: Variable Dateiname (534 mal gelesen)
|
thato Mitglied

 Beiträge: 66 Registriert: 20.04.2007
|
erstellt am: 30. Mrz. 2008 10:11 <-- editieren / zitieren --> Unities abgeben:         
Ich muss eine Reihe von Datein öffnen und da Tabellenblätter verschieben bzw reinkopieren. Kann ich die verschiedenen Datein über eine Schleife öffnen? Also Datei "Schulz" öffnen, bestimmte Sachen machen, schließen, speichern, nächste Datei "Meier" öffnen, ... Die Namen der Dateien sollen in einer Variable sein, dass ich da ne Schleife drüberlaufen lassen kann. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nepumuk Mitglied Entwicklungsleiter
 
 Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 30. Mrz. 2008 11:59 <-- editieren / zitieren --> Unities abgeben:          Nur für thato
|
thato Mitglied

 Beiträge: 66 Registriert: 20.04.2007
|
erstellt am: 30. Mrz. 2008 12:18 <-- editieren / zitieren --> Unities abgeben:         
so heißen die excel datein. Habe ich festegelgt und können nicht aus einer anderen Tabelle oder Datei eingelesen werden. Allerdings stehen die Dateien "untereinander" in dem Verzeichnis. Hilft das weiter? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nepumuk Mitglied Entwicklungsleiter
 
 Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 30. Mrz. 2008 12:30 <-- editieren / zitieren --> Unities abgeben:          Nur für thato
|
thato Mitglied

 Beiträge: 66 Registriert: 20.04.2007
|
erstellt am: 30. Mrz. 2008 12:37 <-- editieren / zitieren --> Unities abgeben:         
im prinzip ja. ich weiß worauf du hinaus willst, deswegen noch folgende zusatzinformation. in dem verzeichnis1 stehen die datein mueller.xls, meier.xls und schulz.xls. in einem anderen verzeichnis2 stehen auch die dateien mueller.xls, meier.xls und schulz.xls. ich muss jetzt aus dem verzeichnis2 die datei mueller.xls öffnen und en bestimmtes tabellenblatt in die datei mueller.xls im verzeichnis1 einfügen. und das für alle dateien (ca. 50). mir ist klar, dass ich wahrscheinlich die dateien im verzeichnis2 vorher umbenennen muss in mueller1.xls zum beispiel. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nepumuk Mitglied Entwicklungsleiter
 
 Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 30. Mrz. 2008 13:16 <-- editieren / zitieren --> Unities abgeben:          Nur für thato
Hallo thato, umbenennen muss nicht sein. Die Datenqulle könnte ja temporär unter einem anderen Namen gespeichert werden. Mal ein Beispiel: Code: Option ExplicitPrivate Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _ ByVal DirPath As String) As Long Public Sub test() Const PATH_SOURCE = "C:\TestOrdner\Testunterordner1\" Const PATH_TARGET = "C:\TestOrdner\Testunterordner2\" Const PATH_TEMP = "C:\Temp\" Const FILE_TEMP = "Temp.xls" Dim objSourcBook As Workbook, objTargetBook As Workbook Dim objFile As Object If Not CBool(MakeSureDirectoryPathExists(PATH_TEMP)) Then MsgBox "Kann nicht auf temporären Ordner zugreifen." & vbLf & vbLf & _ "Programmabbruch.", vbCritical, "Fehler" Exit Sub End If For Each objFile In CreateObject("Scripting.FileSystemObject").GetFolder(PATH_SOURCE).Files If LCase$(Right$(objFile.Name, 4)) = ".xls" Then If Dir$(PATH_TARGET & objFile.Name) <> "" Then If Dir$(PATH_TEMP & FILE_TEMP) <> "" Then Kill PATH_TEMP & FILE_TEMP Set objSourcBook = Workbooks.Open(Filename:=objFile.Path) objSourcBook.SaveAs Filename:=PATH_TEMP & FILE_TEMP Set objTargetBook = Workbooks.Open(Filename:=PATH_TARGET & objFile.Name) 'hier kommt dein Code für das übertragen der daten objSourcBook.Close SaveChanges:=False objTargetBook.Close SaveChanges:=True Else MsgBox "Datei " & objFile.Name & _ " wurde im Zielordner nicht gefunden.", vbExclamation, "Hinweis" End If End If Next End Sub
------------------ Gruß Nepumuk  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thato Mitglied

 Beiträge: 66 Registriert: 20.04.2007
|
erstellt am: 08. Apr. 2008 17:09 <-- editieren / zitieren --> Unities abgeben:         
|