Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Arbeitsblätter Öffnen Schleife | Herbers Excel-Forum


Betrifft: Arbeitsblätter Öffnen Schleife von: carstma
Geschrieben am: 03.12.2009 17:35:59

Guten Abend....

Habe folgende Mappen: LS00001.xls, LS00002.xls, LS00003 usw. 20000Stück
Jede datei beinhaltet die gleiche Struktur und ein gleiches Makro

Ziel: Möchte die Mappen nacheinander mit einer Schleife die 1. Datei öffnen, dann die Makros entfernen, an einer anderen Stelle unter gleichem Namen abspeichern, dann die 2. Öffnen usw. usw.

Kann mir jemand helfen, Ich finde nichts passsendes (bin nur Makrozusammenstückler...)

Vielen Dank im Voraus!!

  

Betrifft: AW: Arbeitsblätter Öffnen Schleife von: Josef Ehrensberger
Geschrieben am: 03.12.2009 19:41:50

Hallo Carsten,

20000 Dateien? Das kann aber dauern!

Teste den Code erstmal an ein paar Dateien.

' **********************************************************************
' Modul: Modul3 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub saveFilesWithoutCode()
  Dim objWB As Workbook
  Dim strPath As String, strNewPath As String, strFile As String
  
  On Error GoTo ErrExit
  GMS
  
  strPath = "E:\Temp\" 'Verzeichnis - Anpassen!
  
  strNewPath = "E:\Temp\Test" 'Speicherpfad - Anpassen!
  
  If Right(strPath, 1) <> "\" Then strPath = strPath & "\"
  
  If Right(strNewPath, 1) <> "\" Then strNewPath = strNewPath & "\"
  
  strFile = Dir(strPath & "*.xls*", vbNormal)
  
  Do While strFile <> ""
    Set objWB = Workbooks.Open(strPath & strFile)
    deleteAllCodeAndModules objWB
    objWB.SaveAs strNewPath & strFile
    objWB.Close
    strFile = Dir
  Loop
  
  ErrExit:
  With Err
    If .Number <> 0 Then MsgBox "Fehler " & .Number & vbLf & vbLf & _
      .Description & vbLf & vbLf & "In Prozedur (saveFilesWithoutCode) in Modul Modul3", _
      vbExclamation, "Fehler in Modul3 / saveFilesWithoutCode"
  End With
  
  GMS True
  
  Set objWB = Nothing
End Sub

Sub deleteAllCodeAndModules(ByRef WBook As Workbook)
  Dim objVBComp As Object
  With WBook.VBProject
    For Each objVBComp In .vbcomponents
      If objVBComp.Type = 100 Then
        With .vbcomponents(objVBComp.Name).CodeModule
          .DeleteLines 1, .CountOfLines
        End With
      Else
        .vbcomponents.Remove objVBComp
      End If
    Next
  End With
End Sub

Sub GMS(Optional ByVal Modus As Boolean = False)
  
  Static lngCalc As Long
  
  With Application
    .ScreenUpdating = Modus
    .EnableEvents = Modus
    .DisplayAlerts = Modus
    .EnableCancelKey = IIf(Modus, 1, 0)
    If Not Modus Then lngCalc = .Calculation
    If Modus And lngCalc = 0 Then lngCalc = -4105
    .Calculation = IIf(Modus, lngCalc, -4135)
    .Cursor = IIf(Modus, -4143, 2)
    
  End With
  
End Sub



Gruß Sepp



  

Betrifft: AW: Arbeitsblätter Öffnen Schleife von: carstma
Geschrieben am: 03.12.2009 21:58:09

Hallo Sepp,
Danke, geht aber leider nicht kommt immer Fehlermeldung....

Gruß
Carsten


  

Betrifft: AW: Arbeitsblätter Öffnen Schleife von: Josef Ehrensberger
Geschrieben am: 03.12.2009 22:04:35

Hallo Carsten,

unter Extras > Makros > Sicherheit > Vertrauenswürdige Herausgeber, muss der Haken
bei "Zugriff auf Visual Basic-Projekt zulassen" gesetzt sein und die VBA-Projekte dürfen nicht
geschützt sein.


Gruß Sepp



  

Betrifft: AW: Arbeitsblätter Öffnen Schleife von: carstma
Geschrieben am: 03.12.2009 22:26:12

Erstmal vielen Dank Sepp !!
Wenn man die Zeile

deleteAllCodeAndModules objWB "stilllegt"
dann kopiert das proggi die Dateien schön ins andere Verzeichnis aber natürlich mit Makro

ansonsten Absturz an der Stelle

Ich hab leider keine Idee

Weißt Du oder Ihr anderen noch was??


  

Betrifft: AW: Arbeitsblätter Öffnen Schleife von: carstma
Geschrieben am: 03.12.2009 22:36:47

Faschmeldung Funktioniert wunderbar!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Allerdigs ist mein Makro mit einem Password geschützt....
Ist mir natürlich bekannt
Wie bekomme ich das raus in welche Schleife muß da noch was rein.... hoffendlich geht das??

Gruß Carsten


  

Betrifft: AW: Arbeitsblätter Öffnen Schleife von: Josef Ehrensberger
Geschrieben am: 03.12.2009 23:13:16

Hallo Carsten,

das geht nur mit "SendKeys" und da lass ich die Finger davon.

In der Recherche findest du aber sicher genügend Beispiele.


Gruß Sepp



Beiträge aus den Excel-Beispielen zum Thema "Arbeitsblätter Öffnen Schleife"