Excel Makros stürzt ab
#11
Funktioniert wunderbar!!! Danke!

Wenn jetzt eine Datei Passwort geschützt ist muss ich auf abbrechen klicken aber er kopiert die Datei trotzdem so wie ich sie haben möchte. Genau so verhält es sich bei Verknüpfungen. Wäre es möglich es noch automatisch zu machen das er "auf Passwort abbrechen oder nicht Aktualisieren drückt"?

Aber nochmal vieldank!
Top
#12
Hallo, :19:

schau Dir mal die Parameter bei "Workbooks.Open" an - insbesondere das UpdateLinks und die Passwortgeschichte:

Workbooks.Open-Methode (Excel)...
Top
#13
Hallo!

(17.01.2018, 15:04)Gast 123 schrieb: [...] vielleicht hift dir der On Error Resume Next Befehl [...]
Das ist m.E. der falsche Weg um Fehler zu finden. Fehler haben immer eine Ursache. Anstatt mit "On Error Resume Next" nur zu behandeln sollte man sich Zeit nehmen nach der Ursache zu suchen um den Fehler heilen zu können.

Gruß, René
Top
#14
Eine Frage hätte ich noch,

dim AnzahlTabellen as Integer
strDatnam = Dir(CStr(spfad & "*.xls"))
 
 Do While Len(strDatnam)

      set wb = Workbooks.Open(spfad & strDatnam)       
 
      Set ws = ThisWorkbook.Sheets.Add
      ws.Name = AnzahlTabellen
      wb.Sheets(1).Range("A1:H100").Copy 
    
      ws.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
         Application.CutCopyMode = False
        wb.Close savechanges:=False
           
      AnzahlTabellen = AnzahlTabellen + 1     
     
      Set ws = Nothing
      Set wb = Nothing
      strDatnam = Dir
     
   Loop

Wie kann ich den Code so umschrieben, dass er nicht nur das erste Sheet der Datei kopiert und in die neue Datei einfügt, sonder alle Sheets 1-N die die Excel Datei hat? Es ist auch unterschiedlich wie viele Sheets die zu kopierende Datei hat.
Nehmen wir an Datei X hat 5 Sheets, dann soll er alle 5 Sheets rüber kopieren und sie auch beginnend mit 1 benennen. Jetzt kopiert er nur das erste Tabellen Sheet der Datei rüber.

Das ich soweit gekommen bin :17:  danke!
Top
#15
Hallo Jürgen

ich probiere es mal, aber ohne Garantie dass das Makro richtig laeuft.   (ungetestet)  
Im Prinzip musst du nur eine For Next Schleife für die Anzahl der Blaetter einbauen. Das ist alles.
Würde mich freuen wenn es so klappt.

mfg  Gast

Code:
Do While Len(strDatnam)

     Set wb = Workbooks.Open(spfad & strDatnam)

    'For next Schleife zum wiederholen
     For i = 1 To wb.Worksheets.Count
     
     Set ws = ThisWorkbook.Sheets.Add
     ws.Name = AnzahlTabellen
     wb.Sheets(i).Range("A1:H100").Copy
   
     ws.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
           
     AnzahlTabellen = AnzahlTabellen + 1
           
     Next i
       
     wb.Close savechanges:=False
     
     Set ws = Nothing
     Set wb = Nothing
     strDatnam = Dir
     
  Loop
Top
#16
Wow Danke! hat geklappt!
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste