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

VBA Importieren

VBA Importieren
12.08.2022 09:38:35
Müller
Guten morgen,
leider habe ich ein kleines problem.
Wir spielen Daten von einem Programm ins Excel QS.xls. Leider habe ich nur diese Auswahl.
Anschließend habe ich diesen Code erstellt:
Durch einen Button im Excel Schnellzugriff greife ich zu diesem Code
Ich möchte das diese Daten erstmal vom Xls in einer neuen Datei gespeichert wird das es dann anschließend die Datei in einem Ordner speichert.
Wenn ich die gespeicherte Datei aufmache kommt eine Fehlermedung:
Die Datei 12.08...... kann von Excel nicht geöffnet werden, da das Dateiformat ungültig ist. Überprüfen Sie , ob die Datei beschädigt ist und ob die Dateierweiterung dem Dateiformat entspricht
- Kann man xls lassen ?
- die Datei QS.xls soll danach geschlossen werden und nicht gespeichert werden, da es nur als zwischenspeicher benutzt wird.

Sub QS()
' Makro1 Makro
Application.ScreenUpdating = False
Workbooks.Open Filename:="C:\Users\Müller\Desktop\QS.xls"
Range("H29").Select
Workbooks.Add
Windows("QS.xls").Activate
Cells.Select
Selection.Copy
Windows("Mappe1").Activate
Cells.Select
ActiveSheet.Paste
Range("D11").Select
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
Columns("A:B").Select
Selection.Delete Shift:=xlToLeft
Columns("C:C").Select
Selection.Delete Shift:=xlToLeft
Range("D1").Select
Columns("C:C").EntireColumn.AutoFit
Columns("D:D").Select
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
Columns("F:F").Select
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
Columns("I:I").EntireColumn.AutoFit
Columns("J:J").Select
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
Columns("J:N").Select
Selection.Delete Shift:=xlToLeft
Columns("K:N").Select
Selection.Delete Shift:=xlToLeft
Columns("L:Q").Select
Selection.Delete Shift:=xlToLeft
Range("N7").Select
Columns("B:B").EntireColumn.AutoFit
Range("D1").Select
ActiveCell.FormulaR1C1 = "Mat"
Range("D2").Select
Columns("D:D").ColumnWidth = 3.71
Columns("E:E").EntireColumn.AutoFit
Columns("F:F").EntireColumn.AutoFit
Columns("G:G").EntireColumn.AutoFit
Columns("H:H").EntireColumn.AutoFit
Columns("J:J").EntireColumn.AutoFit
Columns("A:K").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Range("A1:K1").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent4
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
Range("F6").Select
Range("A1:K1").AutoFilter
ThisWorkbook.SaveCopyAs "L:\Daten\A\A\Fertig\" & Format(Now, "dd.mm.yyyy hh_mm_ss") & _
".xlsx"
Application.ScreenUpdating = True
MsgBox "Daten wurden Erfolgreich in den Ordner Fertig gespeichert"
End Sub
Hoffe mir kann jemand helfen. Danke euch

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Importieren
12.08.2022 10:24:12
UweD
Hallo
Auf select und activate kann in 99% verzichtet werden.
Versuch es mal so.. ( ggf hab ich beim zusammenfassen der Spalten nicht alles richtig gemacht. aber du erkennst, wie es funktioniert)

Sub QS()
Application.ScreenUpdating = False
Workbooks.Open FileName:="C:\Users\Müller\Desktop\QS.xls"
ActiveSheet.Copy
Workbooks("QS.xls").Close False 'False=ohne speichern
Columns("A:C").Delete Shift:=xlToLeft
Columns("C:C").Delete Shift:=xlToLeft
Columns("B:C").EntireColumn.AutoFit
Columns("D:E").Delete Shift:=xlToLeft
Columns("F:H").Delete Shift:=xlToLeft
Columns("I:I").EntireColumn.AutoFit
Columns("J:K").Delete Shift:=xlToLeft
Columns("J:N").Delete Shift:=xlToLeft
Columns("K:N").Delete Shift:=xlToLeft
Columns("L:Q").Delete Shift:=xlToLeft
Range("D1") = "Mat"
Columns("D:D").ColumnWidth = 3.71
Columns("E:J").EntireColumn.AutoFit
With Columns("A:K")
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End With
With Range("A1:K1").Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent4
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
Range("A1:K1").AutoFilter
ActiveWorkbook.SaveAs FileName:="L:\Daten\A\A\Fertig\" & Format(Now, "dd.mm.yyyy hh_mm_ss") & ".xlsx", FileFormat:= _
xlOpenXMLWorkbook
Application.ScreenUpdating = True
MsgBox "Daten wurden Erfolgreich in den Ordner Fertig gespeichert"
End Sub
LG UweD
Anzeige
AW: VBA Importieren
12.08.2022 17:24:01
snb

Sub M_snb()
Range("A1:H1,J1:Q1").EntireColumn.Delete
Columns.AutoFit
End Sub


Unsinn:

Columns("B:C").EntireColumn.AutoFit
Besser:

Columns("B:C").AutoFit

AW: VBA Importieren
12.08.2022 10:44:54
MCO
Guten Morgen!
Ich hab es auch mal zusammengefasst, die Spalten sollten schon korrekt gelöscht werden
Ebenso hab ich das Formatieren zusammengefasst.
Schau mal ob das für dich in Ordnung ist. Möglicherweise muss das Abspeichern der Datei noch korrigiert werden.
auch hier gilt: Das Prinzip sollte erkennbar sein....

Sub QS()
Dim wb_QS As Workbook, new_wb As Workbook
Dim QS_Sh As Worksheet, new_sh As Worksheet
Application.ScreenUpdating = False
Set wb_QS = Workbooks.Open("C:\Users\Müller\Desktop\QS.xls")
Set QS_Sh = wb_QS.ActiveSheet
Set new_wb = Workbooks.Add
Set new_sh = wb_QS.ActiveSheet
QS_Sh.Cells.Copy new_sh.Range("A1")
wb_QS.Close 0
Windows("Mappe1").Activate
Range("A:C, F:F, H:I, L:N, S:Y").Delete 'zusammengefasst
Range("D1") = "Mat"
Columns("D:D").ColumnWidth = 3.71
Range("B:B,E:J").EntireColumn.AutoFit 'zusammengefasst
With Columns("A:K")
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
With .Borders() 'zusammengefasst
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End With
With Range("A1:K1")
With .Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent4
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
.AutoFilter
End With
new_wb.SaveAs "L:\Daten\A\A\Fertig\" & Format(Now, "dd.mm.yyyy hh_mm_ss") & ".xlsx"
Application.ScreenUpdating = True
MsgBox "Daten wurden Erfolgreich in den Ordner Fertig gespeichert", vbOKOnly + vbInformation
End Sub
Gruß, MCO
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige