Hallo Zusammen!
Ich habe mir ein VBA-Makro gebastelt, das aus einer Zelle einen Dateinamen ausliest und diese Excel-Datei öffnet.
Nun soll in diese (frisch geöffnete) Datei ein Tabellenblatt eingefügt werden, auf dem Mittelwerte der Spalten des ersten Blattes der (frisch geöffneten) Datei aufgelistet werden.
Des weiteren habe ich eine Schleife eingebaut, mit deren Hilfe das ganze für verschiedene Dateien wiederholt werden soll.
Im dritten Schritt sollen die Mittelwerte in die entsprechende Zeile der Datei geschrieben werden, in der die Dateinamen stehen (Ausgangsdatei zur zusammenfassung der Mittelwerte)
Das Makro bringt keine Fehlermeldung, aber schafft es nur bis zum Öffnen der ersten Datei aus der Liste!?!?
Anbei der code:
Sub ArtihMittel()
' Tastenkombination: Strg+Umschalt+A
Dim Dat()
Dim x As Integer
'Array Dat mit Dateinamen aus Spalte M2 bis M100 füllen:
For x = 5 To 9 'zum Probieren erst mal von 5 bis9
ReDim Preserve Dat(x)
Dat(x) = Range("M" & x)
'Dateien DruckMittelxxx.xls öffnen und die Mittelwerte reinschreiben:
Workbooks.Open (Dat(x) & ".xls")
'Workbooks(Dat(x) & ".xls").Select
ActiveWorkbook.Sheets.Add Type:=xlWorksheet = "Mittel"
ActiveWorkbook.Sheets("Mittel").Select
'Zeilenüberschriften:
Range("A1").Formula = "p_Einlass"
Range("B1").Formula = "Kistler1"
Range("C1").Formula = "Keller4"
Range("D1").Formula = "Keller2"
Range("E1").Formula = "Keller1"
Range("F1").Formula = "p_Auslass"
Range("G1").Formula = "Kistler2"
Range("H1").Formula = "Keller3"
Range("I1").Formula = "Keller6"
Range("J1").Formula = "Keller5"
'Mittelwerte in zweite Zeile (row2) schreiben:
Range("A2").FormulaR1C1 = "=AVERAGE(RC[1]:RC[4])" 'p_Einlass
Range("B2").Formula = "=AVERAGE(Tabelle1!B2:B10251)" 'Mittelwert Kistler1
Range("C2").Formula = "=AVERAGE(Tabelle1!C2:C10251)" 'Mittelwert Keller4
Range("D2").Formula = "=AVERAGE(Tabelle1!D2:D10251)" 'Mittelwert Keller2
Range("E2").Formula = "=AVERAGE(Tabelle1!E2:E10251)" 'Mittelwert Keller1
Range("F2").FormulaR1C1 = "=AVERAGE(RC[1]:RC[4])" 'p_Auslass
Range("G2").Formula = "=AVERAGE(Tabelle1!G2:G10251)" 'Mittelwert Kistler2
Range("H2").Formula = "=AVERAGE(Tabelle1!H2:H10251)" 'Mittelwert Keller3
Range("I2").Formula = "=AVERAGE(Tabelle1!I2:I10251)" 'Mittelwert Keller6
Range("J2").Formula = "=AVERAGE(Tabelle1!J2:J10251)" 'Mittelwert Keller5
'Mittelwerte in x-te Zeile von DynDruck_Mittel schreiben:
'In das erste wird das zweite geschrieben:
Workbooks("D:\Eigene Dateien\Uni\IHS\Studienarbeit\Messdaten_DynDruck\DynDruck_Mittel.xls") _
_
_
_
_
.Sheets("Tabelle1").Range("C" & x).Value = _
Workbooks(Dat(x) & ".xls").Sheets("Mittel").Range("F2:J2")
'Datei Speichern und Schließen
Workbooks(Dat(x) & ".xls").Save
Workbooks(Dat(x) & ".xls").Close
'MsgBox mit aktueller Datei zur Kontrolle
MsgBox Dat(x) & x
Next x
End Sub