Supportnet Computer
Planet of Tech

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ß

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 ;-)

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 ;-)

Antwort 5 von Event

Ist es auch immer die gleiche Speicherzelle in allen Dateien?

Antwort 6 von Event

So könnte es gehen:

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

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

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

Antwort 10 von drocho

Vielen Dank Euch allen.
Schaun wir mal ob es klappt.
Grüsse drocho

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: