Supportnet / Forum / Tabellenkalkulation
summe eines Feldes aus mehreren Deteien
Frage
Hallo zusammen
Ich möchte die Summe eines bestimmten Feldes aus bis zu hundert gleichen Excel Dateien bilden.
zb. summe(datei1tabelle1feld1;datei2tabelle1feld1,datei3tabelle1feld1...)
Das Ganze wiederholt sich dann auch noch für ca 80 Felder
also summe(datei1tabelle1feld2;datei2tabelle1feld2,datei3tabelle1feld2...)
Wie kann man das möglichst einfach und elegant hinbekommen
Antwort 1 von Event
Hallo
Welche Gemeinsamkeiten haben die Datein, gleiche Namensteile, gemeinsames Verzeichnis usw.?
Gruß
Welche Gemeinsamkeiten haben die Datein, gleiche Namensteile, gemeinsames Verzeichnis usw.?
Gruß
Antwort 2 von Coolpix
hallo Drocho,
beachte hierbei, daß die max Zeichenzahl für eine Excel-Funktion bei 1094 liegt...
siehe Excel-Limits
bei mehr als 20 Dateien kannst du da schon Streß bekommen.
Ich schätze, daß du bei deinem Probelm an VBA nicht vorbeikommst
Greetings ;-)
beachte hierbei, daß die max Zeichenzahl für eine Excel-Funktion bei 1094 liegt...
siehe Excel-Limits
bei mehr als 20 Dateien kannst du da schon Streß bekommen.
Ich schätze, daß du bei deinem Probelm an VBA nicht vorbeikommst
Greetings ;-)
Antwort 3 von drocho
Die dateien befinden sich alle in einem Verzeichnis. Dateinamen sind Name1.xls, Name2.xls....
Antwort 4 von Coolpix
hallo nochmal,
Ich eine Summenfunktion über 3 Arbeitsmappen auf das gleiche Feld im gleichen Tabellenblatt und bin schon bei einem kurzen Pfad wie c:\user\ bei ca 130 Zeichen.
Nachdem du die Arbeitsmappe speicherst und zumachst wandelt Excel den Tabellennamen/Blattnamen in dem kompletten Dateipfad\Dateinamen\Blattnamen um.
Wenn deine Daten unter z.B. Eigene Dateien\Excel liegen ist der Pfad pro Datei schon mind. 60!! Zeichen lang
70 mit dem Dateinamen und dann kommt noch der Blattname und die Zelle und die Trennzeichen hinzu.
Also ich bin der Meinung, das Excelfunktionen für solche Spielereien nicht gedacht sind.
Bei Datenmengen, die über 50 und mehr Tabellen gehen ist Access die bessere Wahl !
Greetings ;-)
Ich eine Summenfunktion über 3 Arbeitsmappen auf das gleiche Feld im gleichen Tabellenblatt und bin schon bei einem kurzen Pfad wie c:\user\ bei ca 130 Zeichen.
Nachdem du die Arbeitsmappe speicherst und zumachst wandelt Excel den Tabellennamen/Blattnamen in dem kompletten Dateipfad\Dateinamen\Blattnamen um.
Wenn deine Daten unter z.B. Eigene Dateien\Excel liegen ist der Pfad pro Datei schon mind. 60!! Zeichen lang
70 mit dem Dateinamen und dann kommt noch der Blattname und die Zelle und die Trennzeichen hinzu.
Also ich bin der Meinung, das Excelfunktionen für solche Spielereien nicht gedacht sind.
Bei Datenmengen, die über 50 und mehr Tabellen gehen ist Access die bessere Wahl !
Greetings ;-)
Antwort 5 von Event
Ist es auch immer die gleiche Speicherzelle in allen Dateien?
Antwort 6 von Event
So könnte es gehen:
Die kleinen spezifischen Änderungen schaffst Du sicher selbst.
Option Explicit
Private Sub CommandButton1_Click()
Dim i%, Summe1, Summe2, wbName$
´Application.ScreenUpdating = False
For i = 1 To 100
wbName = "c:\Eigene Dateien\" & "Name" & CStr(i) & ".xls"
Application.Workbooks.Open wbName, ReadOnly:=True
´Workbooks(wbName).Activate
Sheets("Tabelle1").Select
Summe1 = Summe1 + Range("A1").Value
Summe2 = Summe2 + Range("A2").Value
ActiveWorkbook.Close SaveChanges:=False
Next i
´Application.ScreenUpdating = True
Range("A3").Value = Summe1
Range("A4").Value = Summe2
End Sub
Die kleinen spezifischen Änderungen schaffst Du sicher selbst.
Antwort 7 von nighty
hi all :)
liesst eine zelle aus einer geschlossenen datei
gruss nighty
Sub makro01()
Cells(1, 1) = ExecuteExcel4Macro("´C:\test\" & "[Mappe1.xls" & "]Tabelle1" & "´!" & Range("A1").Address(, , xlR1C1))
End Sub
liesst eine zelle aus einer geschlossenen datei
gruss nighty
Sub makro01()
Cells(1, 1) = ExecuteExcel4Macro("´C:\test\" & "[Mappe1.xls" & "]Tabelle1" & "´!" & Range("A1").Address(, , xlR1C1))
End Sub
Antwort 8 von nighty
hi all :))
hier noch ein schleifenbeispiel :))
gruss nighty
Sub makro01()
Dim zaehler As Long
With Application.FileSearch
For zaehler1 = 1 To .FoundFiles.Count
Cells(zaehler1, 1) = ExecuteExcel4Macro("´C:\test3\" & "[Mappe" & zaehler1 & ".xls" & "]Tabelle1" & "´!" & Range("A1").Address(, , xlR1C1))
Next zaehler1
End With
End Sub
hier noch ein schleifenbeispiel :))
gruss nighty
Sub makro01()
Dim zaehler As Long
With Application.FileSearch
For zaehler1 = 1 To .FoundFiles.Count
Cells(zaehler1, 1) = ExecuteExcel4Macro("´C:\test3\" & "[Mappe" & zaehler1 & ".xls" & "]Tabelle1" & "´!" & Range("A1").Address(, , xlR1C1))
Next zaehler1
End With
End Sub
Antwort 9 von nighty
hi all :)
oh bin ja schusslich :)) korrigiert
gruss nighty
Sub makro01()
Dim zaehler As Long
With Application.FileSearch
.NewSearch
.LookIn = "C:\test3"
.SearchSubFolders = False
.Filename = "*.*"
If .Execute() > 0 Then
For zaehler1 = 1 To .FoundFiles.Count
Cells(zaehler1, 1) = ExecuteExcel4Macro("´C:\test3\" & "[Mappe" & zaehler1 & ".xls" & "]Tabelle1" & "´!" & Range("C1").Address(, , xlR1C1))
Next zaehler1
End If
End With
End Sub
oh bin ja schusslich :)) korrigiert
gruss nighty
Sub makro01()
Dim zaehler As Long
With Application.FileSearch
.NewSearch
.LookIn = "C:\test3"
.SearchSubFolders = False
.Filename = "*.*"
If .Execute() > 0 Then
For zaehler1 = 1 To .FoundFiles.Count
Cells(zaehler1, 1) = ExecuteExcel4Macro("´C:\test3\" & "[Mappe" & zaehler1 & ".xls" & "]Tabelle1" & "´!" & Range("C1").Address(, , xlR1C1))
Next zaehler1
End If
End With
End Sub
Antwort 10 von drocho
Vielen Dank Euch allen.
Schaun wir mal ob es klappt.
Grüsse drocho
Schaun wir mal ob es klappt.
Grüsse drocho