ich habe folgendes Problem. Ich möchte gerne eine Excel mit dem Namen 00_Auswertung_Drucktest.xlsx mit Messdaten befüllen. Einmal pro Messtag nehme ich eine .xls Datei damit auf. Aus einem anderen Makro weiß ich, dass das nur eine verkappte Excel ist.
Dim WB As Workbook, wksXLS As Worksheet, wksLOG As Worksheet, wksDIA As Worksheet
Dim iXLS As String
Set WB = Application.Workbooks.Open(iXLS, ReadOnly:=True, Local:=True)
Set wksXLS = WB.Sheets(WB.Sheets.Count)
Die Excel wird nach diesem Raster bearbeitet:
' xls-Bearbeitung
With wksXLS
.Select
.Columns("A:A").EntireColumn.AutoFit
.Columns("C:C").EntireColumn.AutoFit
.Columns("E:E").EntireColumn.AutoFit
.Columns("G:G").EntireColumn.AutoFit
Application.CutCopyMode = False
With .Range("B3:H3")
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
.Range("B3:H3").Merge
.Range("A7").Delete Shift:=xlToLeft
With .Range(Rows(6), .Rows(6))
.WrapText = True
.VerticalAlignment = xlCenter
.AutoFit
End With
lngCol = .UsedRange.Column + .UsedRange.Columns.Count - 1
rng = .Cells(.Rows.Count, 1).End(xlUp).Row
With .Range(.Cells(7, 2), .Cells(rng, lngCol))
.NumberFormat = "0.000;-0.000;0.000;@"
End With
' Zeit in Sekunden
.Range("B7").FormulaR1C1 = "=((R[1]C[-1])-R[1]C[-1])*86400"
.Range("B7").NumberFormat = "General"
.Range("B8").FormulaR1C1 = "=((R[0]C[-1]-R[-1]C[-1])*86400)+R[-1]C"
.Range("B8").NumberFormat = "General"
rng = .Cells(.Rows.Count, 3).End(xlUp).Row
.Range("B8").AutoFill Destination:=.Range(.Cells(8, 2), .Cells(rng, 2)), _
Type:=xlFillDefault
End With
Range("C7").Select
ActiveWindow.FreezePanes = True
Die Messdaten sollen jeweils in einem neuen Worksheet angelegt werden. Auf Worksheet 1 sollen dann Mittelwert automtisch berechnet werden sobald mit dem Makro ein neues Worksheet angehängt worden ist. Dazu gibt via Makro Recorder folgendes "Makro":
ActiveCell.FormulaR1C1 = "=Tabelle2!R[-2]C[-2] & "" "" &Tabelle2!R[-2]C[-1]"
Range("D3").Select
ActiveCell.FormulaR1C1 = "=Tabelle2!R[-2]C[-2]"
Range("C3").Select
ActiveCell.FormulaR1C1 = "=Tabelle2!R[-2]C[-2]"
Range("C4").Select
ActiveCell.FormulaR1C1 = "=Tabelle2!R[2]C[14]"
Range("C4").Select
Selection.AutoFill Destination:=Range("C4:D4"), Type:=xlFillDefault
Range("C4:D4").Select
Range("C5").Select
ActiveCell.FormulaR1C1 = "=AVERAGE(Tabelle2!R[2]C[14]:R[64]C[14])"
Range("C5").Select
Selection.AutoFill Destination:=Range("C5:D5"), Type:=xlFillDefault
Range("C5:D5").Select
Range("C6").Select
ActiveCell.FormulaR1C1 = "=AVERAGE(Tabelle2!R[64]C[14]:R[123]C[14])"
Range("C6").Select
Selection.AutoFill Destination:=Range("C6:D6"), Type:=xlFillDefault
Range("C6:D6").Select
Range("C7").Select
ActiveCell.FormulaR1C1 = "=AVERAGE(Tabelle2!R[124]C[14]:R[243]C[14])"
Range("C7").Select
Selection.AutoFill Destination:=Range("C7:D7"), Type:=xlFillDefault
Range("C7:D7").Select
Hier ist die Drucktestdatei:
https://www.herber.de/bbs/user/108948.xlsx
Ich habe eine Messdatei da hinein kopiert als Beispiel.
Ich hoffe es ist nachvollziehbar und ihr habt eine gute Idee zur Lösung!
Vielen Dank
Tim