Excel VBA UserForm1 - Daten in neue Datei kopieren
Hallo an Alle,
ich habe wieder mal ein Problem mit meiner UserForm1.
Ich habe eine UserForm1 und möchte über ein Image1-Button Zeilen aus der Tabelle1 in eine neue Datei kopieren.
1. Aus „Tabelle1“ soll als erstes die Zeile 4 mit den Überschriften kopiert werden (Spalten „A-BH“) und in eine neue Datei in Zeile 1 eingefügt werden
2. Anschließend sollen aus der bestehenden Datei alle Zeilen ab der Zeile 5, wo in Spalte Y ein Wert steht, kopiert und in die neue Datei ab Zeile 2 eingefügt werden.
3. Die neue Datei soll dann geschlossen werden und beim Schließen in das Verzeichnis C:\Test\ mit dem Dateinamen „Test_(aktuelles Datum mit Format YYYY_MM_DD)“.xlsx gespeichert werden.
Das Ganze müsste im Hintergrund laufen.
Ich bekomme es leider nicht hin und hoffe auf euer Hilfe.
Vielen Dank schon mal
Grüße
ich habe wieder mal ein Problem mit meiner UserForm1.
Ich habe eine UserForm1 und möchte über ein Image1-Button Zeilen aus der Tabelle1 in eine neue Datei kopieren.
1. Aus „Tabelle1“ soll als erstes die Zeile 4 mit den Überschriften kopiert werden (Spalten „A-BH“) und in eine neue Datei in Zeile 1 eingefügt werden
2. Anschließend sollen aus der bestehenden Datei alle Zeilen ab der Zeile 5, wo in Spalte Y ein Wert steht, kopiert und in die neue Datei ab Zeile 2 eingefügt werden.
3. Die neue Datei soll dann geschlossen werden und beim Schließen in das Verzeichnis C:\Test\ mit dem Dateinamen „Test_(aktuelles Datum mit Format YYYY_MM_DD)“.xlsx gespeichert werden.
Das Ganze müsste im Hintergrund laufen.
Ich bekomme es leider nicht hin und hoffe auf euer Hilfe.
Vielen Dank schon mal
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 341991
Url: https://administrator.de/contentid/341991
Ausgedruckt am: 15.11.2024 um 23:11 Uhr
10 Kommentare
Neuester Kommentar
Hallo abuelito!
Mit der AutoFilter-Funktion geht dies recht einfach:
Gruß Dieter
Mit der AutoFilter-Funktion geht dies recht einfach:
Sub test()
Dim strPath As String
strPath = "C:\Test\Test_" & Format(Date, "yyyy_mm_dd") & ".xlsx"
Application.ScreenUpdating = False
Workbooks.Add
With ThisWorkbook.ActiveSheet
.AutoFilterMode = False
.Range(.Range("Y4"), .Cells(.Rows.Count, "Y").End(xlUp)).AutoFilter Field:=1, Criteria1:="<>"
.Range("A4").CurrentRegion.Copy ActiveWorkbook.Sheets(1).Range("A1")
.AutoFilterMode = False
End With
With ActiveWorkbook
.SaveAs strPath
.Close False
End With
Application.ScreenUpdating = True
End Sub
Sub CopyData()
Dim myPath As String, wbNew as Workbook
myPath = "C:\Test\test_" & Format(Date, "yyyy_MM_dd") & ".xlsx"
Application.Screenupdating = False
Set wbNew = Workbooks.Add
With Sheets(1)
With .Range("A4:BH" & .Cells(.Rows.Count, "Y").End(xlUp).Row)
.AutoFilter Field:=25, Criteria1:="<>"
.SpecialCells(xlCellTypeVisible).Copy wbNew.Sheets(1).Range("A1")
End With
.AutoFilterMode = False
End With
With wbNew
.SaveAs myPath
.Close
End With
Application.Screenupdating = True
End Sub
Zitat von @abuelito:
Bei Deinem Code meckert VBA die folgende Zeile an:
.AutoFilter Field:=25, Criteria1:="<>"
Kann ich nicht bestätigen, wurde hier getestet und läuft einwandfrei, muss an deinem Sheet liegen, dessen Aussehen hier leider keiner sehen kann.Bei Deinem Code meckert VBA die folgende Zeile an:
.AutoFilter Field:=25, Criteria1:="<>"