Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: mehrere Dateien mit Makros abarbeiten

mehrere Dateien mit Makros abarbeiten
12.09.2007 18:00:30
Ben
Hi,
ich bin auch dank diesem Forums schon bald am Ziel. Nun habe ich noch folgendes Problem:
Ich benutzte mehrere selbsgeschriebene Makros um meine von pdfs hergestellten Dateien zu bearbeiten. Es handelt sich dabei um 70 pdfs , die jeweils die maximale Reihenzahl von Excel ausreizen (Die Dateien wurden aus pdfs generiert. In einem ersten Schritt entferne ich mit folgendem Skript die Leerzeilen , damit meine darauf folgenden Skripte zügig durchlaufen können. (Bitte nicht von den Fortschrittsbalken iritieren lassen.

Sub Leerzeilen_loeschen()
'   alle Leerzeilen löschen (aus Inet kopiert)
Dim LoI As Long
Dim RaZeile As Range
Dim PctDone As Single
Application.ScreenUpdating = False
For LoI = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
If Rows(LoI).SpecialCells(xlCellTypeBlanks).Count = ActiveSheet.UsedRange.SpecialCells( _
xlCellTypeLastCell).Column Then
If RaZeile Is Nothing Then
Set RaZeile = Rows(LoI)
Else
Set RaZeile = Union(RaZeile, Rows(LoI))
End If
End If
' Update the percentage completed.
PctDone = LoI / ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row               _
' Call subroutine that updates the progress bar.
UpdateProgressBar PctDone
Next LoI
RaZeile.Delete
Set RaZeile = Nothing
Application.ScreenUpdating = True
Unload UserForm1
End Sub 


Das Problem: Nur dieses Aufgabe allein braucht 3h, die darauffolgenden Makros dann nur noch einige Minuten. Diese haben als Schleifenparameter die letzte Reihe, deswegen will ich auf das kürzen der Leerzeilen davor nicht verzichten. Hab auch gerade einen Overflow bekommen (obwohl alles Long?), wenn ich die Makros laufen lasse, ohne zuvor die Leerzeilen zu entfernen.
Naja, also irgendwie müßte ich es dann zumind. schaffen, dass ich das Ganze über Nacht laufen lassen kann.
----> es müßte autom. die nächste ExcelDatei geöffnet werden, abgearbeitet werden , unter einem anderen Namen gespeichert werden und dann wiederum die nächste, bis alle abgearbeitet sind. Mein ganzer Code ist etwas laienhaft programmiert (erstes mal produktiv VB eingesetzt...), aber es fehlt wirklich nur noch diese automatische Abarbeitung. Die Codes stehen in 3 Modulen, ich arbeitet jeweils mit dem ActiveWorksheet.
Kann mir jnd einen Tipp gebn, oder einen Link (hab irgendwie noch nicht das passende gefunden)?
Vielen Dank

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere Dateien mit Makros abarbeiten
12.09.2007 22:39:19
Uduuh
Hallo,
könnte funktionieren:
Option Explicit

Sub tt()
Dim oFS As Object, oFolder As Object, ofile As Object, wks As Worksheet
Set oFS = CreateObject("sripting.filesystemobject")
Set oFolder = oFS.getfolder("c:\test") 'anpassen
For Each ofile In oFolder.Files
If ofile.Name Like "*.pdf" Then
Set wks = Workbooks.Open(ofile).Sheets(1)
Leerzeilen_loeschen (wks)
wks.Parent.SaveAs Replace(ofile, ".pdf", ".xls")
wks.Parent.Close
Set wks = Nothing
End If
Next ofile
End Sub



Sub Leerzeilen_loeschen(wks As Worksheet)
'   alle Leerzeilen löschen (aus Inet kopiert)
Dim LoI As Long
Dim RaZeile As Range
Dim PctDone As Single
Application.ScreenUpdating = False
With wks
For LoI = 1 To .UsedRange.SpecialCells(xlCellTypeLastCell).Row
If .Rows(LoI).SpecialCells(xlCellTypeBlanks).Count = _
.UsedRange.SpecialCells(xlCellTypeLastCell).Column Then
If RaZeile Is Nothing Then
Set RaZeile = .Rows(LoI)
Else
Set RaZeile = Union(RaZeile, .Rows(LoI))
End If
End If
' Update the percentage completed.
PctDone = LoI / ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row _
' Call subroutine that updates the progress bar.
'UpdateProgressBar PctDone
Next LoI
RaZeile.Delete
Set RaZeile = Nothing
Application.ScreenUpdating = True
'Unload UserForm1
End Sub


Gruß aus’m Pott
Udo

Anzeige
AW: mehrere Dateien mit Makros abarbeiten
13.09.2007 10:33:00
Ben
Hi,
vielen Dank, das funktioniert :)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige