Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
904to908
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
904to908
904to908
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
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

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 :)

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige