Live-Forum - Die aktuellen Beiträge
Datum
Titel
20.05.2025 16:19:36
20.05.2025 15:34:36
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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


Anzeige

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.
Anzeige
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

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige