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

Mittelwert bilden und auslesen

Mittelwert bilden und auslesen
08.10.2008 11:50:00
Herbert
Hallo Experten,
im Ordner C:\temp stehen etwa 200 Dateien, deren Aufbau genau gleich ist. Ich möchte jede Datei öffnen und aus den Zahlenwerten D26 bis D49 den Mittelwert bilden lassen. Dieser soll in der Zieltabelle in Spalte A untereinander erscheinen. Ich habe schon einen passenden VBA-Code erstellt. Leider fehlt mir noch der Part der Mittelwertbildung. Eventuell hat jemand einen Vorschlag. Gruß Herbert
Hier der Code:

Sub Mittelwert_auslesen()
Range("A2:C5002").Select
Selection.ClearContents
Dim Dateien As Integer
Application.DisplayAlerts = False
With Application.FileSearch
.NewSearch
.LookIn = "c:\Temp"
.Filename = "*.csv"
If .Execute() > 0 Then
For Dateien = 1 To .FoundFiles.Count
Workbooks.Open Filename:=.FoundFiles(Dateien)
Workbooks(2).Close
Next Dateien
End If
Application.DisplayAlerts = True
End With
End Sub


6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mittelwert bilden und auslesen
08.10.2008 12:32:36
Tino
Hallo,
teste mal diesen Code, kann diesen nicht testen da FileSearch in xl2007 nicht mehr funktioniert.
Modul Modul2
Option Explicit 
 
Sub Mittelwert_auslesen() 
Dim objDatei As Workbook 
Dim i As Long 
Dim Mittelwert As Double 
Dim Dateien As Integer 
 
Range("A2:C5002").ClearContents 
 
Application.ScreenUpdating = False 
With Application.FileSearch 
    .NewSearch 
    .LookIn = "c:\Temp" 
    .Filename = "*.csv" 
     
    If .Execute() > 0 Then 
        For Dateien = 1 To .FoundFiles.Count 
           Set objDatei = Workbooks.Open(Filename:=.FoundFiles(Dateien)) 
            
           With Application.WorksheetFunction 
            Mittelwert = .Average(objDatei.Sheets(1).Range("D26:D49")) 
            Cells(i, "A") = Mittelwert 
           End With 
            
           objDatei.Close False 
        Next Dateien 
    End If 
 
 End With 
 Application.ScreenUpdating = True 
 End Sub 
 


Gruß Tino

Anzeige
Variable muss hochzählen, Korrektur
08.10.2008 12:42:00
Tino
Hallo,
habe noch das hochzählen der Variable i vergessen, sorry
Modul Modul2
Option Explicit 
 
Sub Mittelwert_auslesen() 
Dim objDatei As Workbook 
Dim i As Long 
Dim Mittelwert As Double 
Dim Dateien As Integer 
 
Range("A2:C5002").ClearContents 
i = 2 
Application.ScreenUpdating = False 
With Application.FileSearch 
    .NewSearch 
    .LookIn = "c:\Temp" 
    .Filename = "*.csv" 
     
    If .Execute() > 0 Then 
        For Dateien = 1 To .FoundFiles.Count 
           Set objDatei = Workbooks.Open(Filename:=.FoundFiles(Dateien)) 
            
           With Application.WorksheetFunction 
            Mittelwert = .Average(objDatei.Sheets(1).Range("D26:D49")) 
            Cells(i, "A") = Mittelwert 
            i = i + 1 
           End With 
            
           objDatei.Close False 
        Next Dateien 
    End If 
 
 End With 
 Application.ScreenUpdating = True 
 End Sub 
 


Gruß Tino

www.VBA-Excel.de


Anzeige
AW: Mittelwert bilden und auslesen
08.10.2008 12:46:00
fcs
Hallo herbert,
damit man die Daten "einfach" übertragen kann müssen die involvierten Objekte sauber deklariert sein.
Nachfolgende Code-Anpassung ist nicht getestet.
Gruß
Franz

Sub Mittelwert_auslesen()
Dim wbQuelle As Workbook, wksZiel As Worksheet
Dim Dateien As Integer
Dim lngZeile As Long
Set wksZiel = ActiveSheet
wksZiel.Range("A2:C5002").ClearContents
lngZeile = 2
Application.DisplayAlerts = False
With Application.FileSearch
.NewSearch
.LookIn = "c:\Temp"
.Filename = "*.csv"
If .Execute() > 0 Then
For Dateien = 1 To .FoundFiles.Count
Workbooks.Open Filename:=.FoundFiles(Dateien)
Set wbQuelle = ActiveWorkbook
'Mittelwert in Spalte 1
wksZiel.Cells(lngZeile, 1) = _
Application.WorksheetFunction.Average(wbQuelle.Worksheets(1).Range("D26:D49"))
'dateiname in Spalte2
wksZiel.Cells(lngZeile, 2) = wbQuelle.Name
lngZeile = lngZeile + 1
wbQuelle.Close savechanges:=False
Next Dateien
End If
Application.DisplayAlerts = True
End With
End Sub


Anzeige
AW: Mittelwert bilden und auslesen
08.10.2008 12:54:00
Herbert
Hallo,
danke für die Hilfe. Leider funktioniert es noch nicht. In der Zeile:
Mittelwert = .Average(objDatei.Sheets(1).Range("D26:D49")) wird die Fehlermeldung:
"Die Average-Funktion des Worksheet-Function Objektes kann nicht zugeordnet werden."
angezeigt.
Gruß Herbert und schon einmal vielen Dank.
AW: Mittelwert bilden und auslesen
08.10.2008 13:04:00
Tino
Hallo,
dann stimmt die Tabellenzuordnung nicht Sheets(1),
beziehungsweise der Bereich enthält keine Daten um den Mittelwert zu berechnen.
Gruß Tino
Danke!
08.10.2008 13:43:28
Herbert
Danke! Hat jetzt alles super funktioniert.
Gruß Herbert

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige