Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1644to1648
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

Öffnen, Kopieren, Schließen, Löschen im Loop

Öffnen, Kopieren, Schließen, Löschen im Loop
20.09.2018 09:13:03
Alex
Hallo,
ich habe jetzt schon eine ganze weile an meinem code herumprobiert, da ich allerdings nicht wirklich Ahnung von VBA habe komme ich nicht zum Ziel.
Mein Makro ist in einer Kalkulationsdatei, dabei wird aus einem Ordner der erstbeste Export geöffnet, ein Tabellenblatt kopiert und in der Kalkulationsdatei eingefügt, die Kalkulationsdatei wird dann unter neuem Namen in ein anderes Verzeichnis gespeichert. Der zuvor geöffnete Export wird dann geschlossen und soll im Anschluss aus dem Ordner in dem die Exporte liegen gelöscht werden.
Ich wollte das ganze im Loop haben, sodass eine Export Datei nach der anderen abgearbeitet wird, in die Kalkulatiosndatei kopiert und in neuem Verzeichnis gespeichert--> Export löschen und mit nächstem weitermachen bis der Ordner leer ist.
Das Problem das ich im Moment habe: Mit der Kill Funktion entferne ich direkt alle Exporte im Ordner, nicht nur den geöffneten. Irgendwie müssten man wohl eine temporäre Variable oder so etwas definieren damit der Export genau zugeordnet wird, habe das leider nicht hinbekommen.
Vielleicht kann mir ja jemand von euch helfen.
Im Anschluss noch mein bisheriger Code

Sub Start()
Dim lstrDatName As String
lstrDatName = Dir("C:\Users\Exporte" & "\" & "*.xlsx*")
If lstrDatName  "" Then
Workbooks.Open "C:\Users\Exporte" & "\" & lstrDatName
lstrDatName = ""
Else
MsgBox "Datei nicht vorhanden"
Exit Sub
End If
Windows("Kalkulations-Tool.xlsm" _
).Activate
Sheets("Export").Select
Cells.Select
Selection.ClearContents
Windows(Dir("C:\Users\Exporte" & "\" & "*.xlsx*")).Activate
Cells.Select
Selection.copy
Windows("Kalkulations-Tool.xlsm" _
).Activate
Range("A1").Select
ActiveSheet.Paste
' Range a2 und range b2 sind die Zusammensetzungen die im Export stehen und den neuen Namen  _
_
_
_
_
_
ergeben
ActiveWorkbook.SaveAs Filename:="C:\Users\Bereits Bearbeitete Exporte" & "\" & Range("a2") & _
_
_
_
_
_
" " & Range("b2") & " " & "Preisanpassung"
Workbooks(Dir("C:\Users\Exporte" & "\" & "*.xlsx*")).Close savechanges:=False
Kill ("C:\Users\Exporte" & "\" & "*.xlsx*")
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Öffnen, Kopieren, Schließen, Löschen im Loop
20.09.2018 11:01:41
Robert
Hallo Alex,
nachstehendes Makro öffnet der Reihe nach alle xlsx-Dateien im Verzeichnis Exporte, kopiert die Daten in das Tabellenblatt Export der aktuellen Datei und speichert eine Kopie dieser aktuellen Datei ins Verzeichnis "Bereits Bearbeitete Exporte". Anschließend wird die xlsx-Datei im Verzeichnis Exporte gelöscht.
Sub Start()
Dim strDatei As String, strPfad As String, wksZ As Worksheet, wkbZ As Workbook, wkbQ As  _
Workbook
Application.ScreenUpdating = False
strPfad = "C:\Users"
Set wkbZ = ActiveWorkbook
Set wksZ = wkbZ.Sheets("Export")
strDatei = Dir(strPfad & "\Exporte\*.xlsx")
Do While strDatei  ""
wksZ.UsedRange.Clear
Set wkbQ = Workbooks.Open(strPfad & "\Exporte\" & strDatei)
wkbQ.ActiveSheet.UsedRange.Copy
wksZ.Paste Destination:=wksZ.Range("A1")
wkbZ.SaveCopyAs Filename:=strPfad & "\Bereits Bearbeitete Exporte\" & Range("a2") & " " &  _
Range("b2") & " Preisanpassung.xlsm"
wkbQ.Close SaveChanges:=False
Kill strPfad & "\Exporte\" & strDatei
strDatei = Dir
Loop
Application.ScreenUpdating = True
MsgBox "Alle *.xlsx-Dateien aus dem Verzeichnis Exporte wurden bearbeitet."
End Sub
Gruß
Robert
Anzeige
AW: Öffnen, Kopieren, Schließen, Löschen im Loop
20.09.2018 13:38:35
Alex
Super, funktioniert perfekt, vielen Dank!
Gruß Alex
Gerne und Danke für die Rückmeldung (owT)
20.09.2018 19:27:07
Robert

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige