Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1916to1920
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

save wb - dringend

save wb - dringend
25.01.2023 19:00:03
sternbj
Hallo,
ich habe eine ganz einfache aufgabe aber schaffe es einfach nicht.
Ich will alle dateien in einem ordner öffnen.
Bei jeder datei soll im sheet1 die Spalte K kopiert werden
ein template wb soll geöffnet werden.
Die funktion anzahl2 soll in zeile 5 durchgeführt werden. Dann addiere ich 2 dazu um die nächste freie spalte zu erhalten.
dann die kopierte Zellen einfügen
das Template unter einem neuen namen abspeichern
Das wars. Aber ich kann nicht speichern. Es kommt immer der fehler zugriff auf das schreibgeschützt dokument nicht möglich. aber die datei ist nicht schreibgeschützt.
PS: Ich bin mit MAcOS unterwegs.
Über eine Hilfe freue ich mich. Ich muss das heute noch zum laufen bringen.
Sub OpenAllWorkbooks()
    'Step 1:Declare your variables
    Dim MyFiles, file, groupe As String
    'Step 2: Specify a target folder/directory, you may change it.
    groupe = "Agricultural"
    file = "/Users/js/Desktop/" & groupe & "/"
    MyFiles = Dir(file & "*.xlsx")
    getparentdirectory = Left(MyFiles, InStrRev(MyFiles, "/"))
    Debug.Print ("parent:" & groupe & "       file:" & file & "       myfile:" & MyFiles)
    Do While MyFiles > ""
        'Step 3: Open Workbooks one by one
        Set wb_source = Workbooks.Open(file & MyFiles)
        wb_source.Sheets(1).Range("K:K").Copy
        Set mybook2 = Workbooks.Open("/Users/js/Documents/template.xlsx")
        mybook2.Sheets(1).Activate
        myCount = WorksheetFunction.CountA(Range("5:5")) + 2
        Debug.Print ("function" & WorksheetFunction.CountA(Range("5:5")))
        Debug.Print ("mycount: " & myCount)
        mybook2.Sheets(1).Cells(1, myCount).PasteSpecial Paste:=xlPasteValues
        newfilename = groupe & "summary sheet"
        ActiveWorkbook.SaveAs FileName:=newfilename
        wb_source.Close
    Loop
    Debug.Print ("Fertig")
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: save wb - dringend
25.01.2023 19:07:10
ReginaR
Hi,
aus meiner Sicht fehlt am Ende der Schleife ein
MyFile = Dir()
um auf die nächste Datei zuzugreifen.
Gruß Regina
AW: save wb - dringend
25.01.2023 19:53:24
ralf_b
ungetestet.
Sub OpenAllWorkbooks()
    
    Dim MyFile As String, sPath As String, groupe As String
    Dim mybook2 As Workbook, sh2 As Worksheet, lastcol&, rng As Range
    
    'Dim getparentdirectory
    Application.ScreenUpdating = False
    groupe = "Agricultural"
    sPath = "/Users/js/Desktop/" & groupe & "/"
     
   'getparentdirectory = Left(MyFiles, InStrRev(MyFiles, "/"))
    Set mybook2 = Workbooks.Open(Filename:="/Users/js/Documents/template.xlsx", Editable:=True)
    lastcol = mybook2.Sheets(1).Cells(5, Columns.Count).End(xlToLeft).Column
    
    MyFile = Dir(sPath & "*.xlsx")
    Do While MyFile > ""
        With Workbooks.Open(sPath & MyFile)
          With .Sheets(1)
            Set rng = Intersect(.UsedRange, .Range("K:K"))
            mybook2.Sheets(1).Cells(1, lastcol + 2).Resize(rng.Rows.Count, 1).Value = rng.Value
            lastcol = lastcol + 2
            .Parent.Close
          End With
        End With
        MyFile = Dir()
    Loop
 
    mybook2.SaveAs Filename:=sPath & "summary sheet"
    mybook2.Close
    Application.ScreenUpdating = True
    Debug.Print ("Fertig")
End Sub

Anzeige
VIielen, vielen Dank
25.01.2023 21:10:10
JS
Hallo,
vielen vielen Dank. Hat funktioniert.
Gruß JS

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige