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

SummeWenn mehrere Dateien

SummeWenn mehrere Dateien
15.12.2008 16:01:00
Christian
Hallo liebe Com,
ich habe folgendes Problem und gehört das ich hier gute Antworten und Hilfe bekommen kann.
So folgende Aufgabenstellung in meiner Firma:
Auswertung in Excel über 3 Grunddateien mit Daten und die 4 Datei erstelle ich mit Formeln wo ich eine Auswertung bekomme.
Datei 1 und 2 sind identisch vom Aufbau haben aber unterschiedliche Tabellenblätter mit verschiedenen Namen. Es sind Dateien von unseren Schweißanlagen wo die Arbeiter täglich ihre Daten eintragen ( Die versch. Tabellenblätter sind die versch. Schweißanlagen):
So siehts aus.
Auftrag. Abmessung.. viel zeug was ich nicht brauche.. dann Beginn Schweißung / Ende Schweißung / Schweißstunden pro Tag / Menge in m / Tagesmenge Auftrag
!!!Aufträge werden mehrmals eingeben!!!
So Datei 3 wird von unseren System generiert, hier steht folgendes drin.
Auftrag / Sollmenge / Sollzeit pro Meter
SO und die 4te Datei die ich erstelle enthält die Grunddaten der 3ten Datei (die vom System)
und anschließend Summewenn Formeln die von der Logik so aussehen sollen.
Summewenn in Datei 1 Blatt 1, Blatt 2 usw und/oder in Datei 2 Blatt 1 Blatt 2 usw in den Bereich B7:B3000 folgende Auftragsnummer steht dann rechne die Tagesmenge pro Auftrag (CI7:CI3000) zusammen
Wenn ich die Grundfromel habe dann kann ich das auch auf die anderen Sachen die ich brauche übertragen aber diese Grundformel macht mir verdammt zu schaffen... ich hab im internet auch nichts brauchbares weiter gefunden...
Wäre dankbar wenn mir schnell geholfen werden kann da ich die Auswertung am besten gestern brauche..
MFG Christian Arndt

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SummeWenn mehrere Dateien
15.12.2008 18:35:00
fcs
Hallo Christian,
mit Formeln ist eine elegante Lösung in deiner jetzigen Konstellation nach meiner Einschätzung nicht machbar.
Problem Nr. 1: SUMMEWENN funktioniert nicht über mehrere Tabellenblätter, wie z.B. SUMME
Problem Nr. 2: Die Funktion INDIREKT, die den Zugriff auf Daten wia Tabellenblattnamen ermöglichen würde funktioniert nicht bei geschlossenen Datein.
Eine saubere Lösung wäre, alle relevanten Daten per Makro aus den beiden Datendateien in ein separates Blatt deiner 4. Datei zu übertragen.
So sind deine Daten wieder einer "einfachen" SUMMEWENN-Berechnung zugänglich.
Theoretisch könnte man auch die Summenberechnung per Makro machen lassen. Ist aber relativ Langsam.
Hier kleines Beispiel mit Datei 1 2 und 4:
https://www.herber.de/bbs/user/57640.zip
Gruß
Franz
Anzeige
AW: SummeWenn mehrere Dateien
15.12.2008 19:08:46
Christian
vielen vielen dank das bringt mich schonmal ne ganze ecke weiter dieses makro!!!
ich muss jetzt nur noch rausfinden wie ichs abändern muss damits die richtigen daten zieht!!! aber super klappts auch wenn viele daten noch unbrauchbar sind, der weg stimmt aber.
Ne kleine beschreibung zu den makro wie ichs im detail ändern muss hast du nicht zufällig noch?
mfg christian a
AW: SummeWenn mehrere Dateien
16.12.2008 10:46:00
Christian
Hallo Franz!?
ich habe etwas rumprobiert. aber wie hast du die spaltennamen reingekriegt in das makro? oder wie kann ich das ändern?... und in meinen 2 grunddateien fangen die zeilen erst ab zeile 7 an, davor stehen überschriften und sonstige sachen. also das makro darf erst am zeile 7 kopieren und ich muss die überschriften irgendwo eintragen können... anonsten isses klasse!
gruß christian
Anzeige
AW: SummeWenn mehrere Dateien
16.12.2008 13:49:00
fcs
Hallo Christian,
die Zeilen sind im Code fest vorgegen. Damit es etwas einfacher anzupassen ist, hab ich entsprechende Konstanten deklariert, die du ggf. anpassen muss.
Die Überschriften der Spalten ändern sich ja nicht, die muss du "nur" einmalig im Zieltabellenblatt ("Daten") eintragen. Kannst du aber auch vom Makro machen lassen, wie in meinem Beispiel.
Im Makro werden die zu kopieren Spalten über die Nummern festgelegt, nicht über die Namen. Da ja der Aufbau deiner Quelldaten-Tabellen identisch ist, kann man das so machen.
Die Zeile im Code ist:
'Array mit Nummern der zu Kopierenden Spalten
arrSpalten = Array(1, 2, 7, 8, 9)
1 = A, 2 = B, 7 = G usw.
Hier muss du die Nummern entsprechend ergänzen, ändern.
Nachfolgend der angepasste Code, geänderte/neue Zeilen sind mit ### markiert.
Gruß
Franz

Sub DatenHolen()
Dim wksData As Worksheet
Dim strdatei As String, lngZeile As Long
Const StartZeile As Long = 2 'Zeile im Blatt Daten ab der Werte eingetragen werden sollen ### _
neu
On Error GoTo Fehler
Set wksData = Worksheets("Daten")
With wksData
'Spaltentitel eintragen          '###
.Cells(1, 1) = "AuftragsNr."          '###
.Cells(1, 2) = "Feld02"          '###
.Cells(1, 3) = "Feld07"          '###
.Cells(1, 4) = "Teilsumme"          '###
.Cells(1, 5) = "Feld08"          '###
.Cells(1, 6) = "Datei"          '###
.Cells(1, 7) = "Blatt"          '###
'Altdaten löschen
lngZeile = .Cells.SpecialCells(xlCellTypeLastCell).Row
If lngZeile >= StartZeile Then                                      '#####
.Range(.Rows(StartZeile), .Rows(lngZeile)).ClearContents          '#####
End If
End With
Application.Calculation = xlCalculationManual
'Startzeile für das Einfügen, nächste freie Zeile in Spalte 1 (A)
Application.ScreenUpdating = False
With wksData
lngZeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
End With
strdatei = "C:\Lokale daten\Test\Daten\DateiNr1.xls"
Call AllesEinlesen(strdatei, wksData, lngZeile)
strdatei = "C:\Lokale daten\Test\Daten\DateiNr2.xls"
'Startzeile für das Einfügen, nächste freie Zeile in Spalte 1 (A)
With wksData
lngZeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
End With
Call AllesEinlesen(strdatei, wksData, lngZeile)
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
MsgBox "Alles eingelesen!"
Fehler:
With Err
If Err  0 Then
MsgBox "Fehler-nr.: " & .Number & vbLf & .Description
End If
End With
End Sub
Function AllesEinlesen(strDateiname As String, wksZiel As Worksheet, _
ZeileStart As Long) As Boolean
Dim Bereich As Range, wksQuelle As Worksheet, wbQuelle As Workbook
Dim ZeileZiel As Long, lngZeile As Long, arrSpalten, intSpalte As Integer, intI As Integer
Const StartDaten = 7 '1. Zeile mit Daten in den Quelltabellenblättern '#####
On Error GoTo Fehler
AllesEinlesen = True
Set wbQuelle = Workbooks.Open(Filename:=strDateiname, ReadOnly:=True)
ZeileZiel = ZeileStart
'Array mit Nummern der zu Kopierenden Spalten
arrSpalten = Array(1, 2, 7, 8, 9)
For Each wksQuelle In wbQuelle.Worksheets
Select Case wksQuelle.Name
Case "TabelleXYZ"
'do nothing, diese Tabellen sollen nicht ausgewertet werden
Case Else
intSpalte = 0 'Spaltenzähler in Zieltabelle
With wksQuelle
'letzte ausgefüllte Zeile in Spalte 1 (A)
lngZeile = .Cells(.Rows.Count, 1).End(xlUp).Row
If lngZeile >= StartDaten Then
For intI = LBound(arrSpalten) To UBound(arrSpalten)
'Zellen mit Daten Bereich zuweisen
Set Bereich = .Range(.Cells(StartDaten, arrSpalten(intI)), _
.Cells(lngZeile, arrSpalten(intI)))
With wksZiel
Bereich.Copy
intSpalte = intSpalte + 1
.Cells(ZeileZiel, intSpalte).PasteSpecial Paste:=xlPasteValues
End With
Next
'Quelldatei und Tabelle eintragen
With wksZiel
intSpalte = intSpalte + 1
.Range(.Cells(ZeileZiel, intSpalte), _
.Cells(ZeileZiel + Bereich.Rows.Count - 1, intSpalte)).Value _
= wbQuelle.Name                                     '###
intSpalte = intSpalte + 1
.Range(.Cells(ZeileZiel, intSpalte), _
.Cells(ZeileZiel + Bereich.Rows.Count - 1, intSpalte)).Value _
= wksQuelle.Name                                    '###
End With
ZeileZiel = ZeileZiel + Bereich.Rows.Count
End If
End With
End Select
Next
Fehler:
With Err
If Err  0 Then
AllesEinlesen = False
MsgBox "Fehler-nr.: " & .Number & vbLf & .Description
End If
End With
If Not wbQuelle Is Nothing Then wbQuelle.Close savechanges:=False
End Function


Anzeige
AW: SummeWenn mehrere Dateien
16.12.2008 14:49:00
Christian
Danke klappt alles wunderbar!!! warst echt ne sehr große hilfe!.
MFG Christian

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige