1 | Hallo Leute. Ich hoffe mir kann einer von euch helfen. Ich habe einen Makro aufgezeichnet, der mittlerweile auch super funktioniert. Dieser wird über einen "Button" in der Datei ausgeführt und klappt wunderbar beim einmaligen ausführen.
|
Ergebnis: zwei Arbeitsblätter. Die erste greift mit einem sverweis auf Daten des zweiten Tabellenblatts zu. Erwünschtes Ergebnis erreicht.
Problem: Wenn ich den Button noch einmal klicke (z.B. weil die zwei Dateien, die er importiert, aktualisiert worden), dann zählt er die Arbeitsblätter hoch. Das heisst die Daten die in "Tabelle2" gehören packt er dann in Tabelle3 - beim erneuten klicken in Tabelle4 usw. Dann funktioniert der sverweis aber auch nicht mehr und die Datei würde nach mehrmaligen Benutzen dutzende Tabellenblätter haben.
Ziel: Ich möchte, dass die zwei Dateien immer nur in jeweils Tabelle1 und Tabelle2 gezogen werden, bzw in den beiden Tabellenblätter die Daten aktualisiert werden.
Ich hoffe ihr versteht was ich versuche auszudrücken. Wäre richtig super, wenn mir jemand helfen kann. Kriege es einfach nicht hin.
Hier der Codetext.
Sub SCAR_Report_Erstellen()
'
' SCAR_Report_Erstellen Makro
'
' Tastenkombination: Strg+p
'
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\310199888\Desktop\SCAR Main.csv", Destination:=Range("$A$1"))
.Name = "SCAR Main"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Columns("C:C").ColumnWidth = 20.57
Columns("G:G").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("F:F").Select
Selection.TextToColumns Destination:=Range("F1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), Array(10, 1)), TrailingMinusNumbers:=True
Columns("G:G").Select
Selection.Delete Shift:=xlToLeft
Selection.TextToColumns Destination:=Range("G1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), Array(10, 1)), TrailingMinusNumbers:=True
Columns("H:H").Select
Selection.Delete Shift:=xlToLeft
Range("G2").Select
ActiveCell.FormulaR1C1 = "COMPLETED ON"
Range("H2").Select
Sheets.Add After:=ActiveSheet
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\310199888\Desktop\Response Required Date.csv", Destination:= _
Range("$A$1"))
.Name = "Response Required Date"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Columns("B:B").Select
Selection.TextToColumns Destination:=Range("B1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), Array(10, 1)), TrailingMinusNumbers:=True
Columns("C:C").Select
Selection.Delete Shift:=xlToLeft
Range("A1").Select
Selection.Copy
Range("B2").Select
ActiveSheet.Paste
Sheets("Tabelle1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Columns("H:H").EntireColumn.AutoFit
Range("H3").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-6],Tabelle2!C[-7]:C[-6],2,FALSE)"
Range("H3").Select
Selection.AutoFill Destination:=Range("H3:H1563")
Range("H3:H1563").Select
Selection.NumberFormat = "m/d/yyyy"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Rows("2:2").Select
Selection.AutoFilter
End Sub
|