Anzeige
Archiv - Navigation
1108to1112
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

Sverweis mehrere Dateien?

Sverweis mehrere Dateien?
MaxKuba
Hallo Experten,
Koennt Ihr mir helfen einen Sverweis ueber mehrere Dateien zu erstellen?
Die Dateien enthalten jeweils viele Arbeitsblaetter.
Referenzspallte sollte A sein.
Der Pfad der Dateien ist H:\India\Analyse\Neuer Ordner
Hab schon einiges gegoogelt, aber leider keine passenede Loesung fuer mein Problem gefunden...
Inder Datei1 ist die Referenz, in der Bspl Datei2 ist wie alle Arbeitsblaetter aussehen.
https://www.herber.de/bbs/user/65040.xls
https://www.herber.de/bbs/user/65041.xls
Viele Gruesse,
Max

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Sverweis mehrere Dateien?
12.10.2009 12:01:05
fcs
Hallo Max,
ein SVERWEIS müsse hier für jede Datei und jedes Blatt angelegt werden und dann entsprechende Summen berechnet werden.
Das ist sehr aufwendig. Für jedes Tabellenblatt müsste eine entsprechende SVERWEIS-Formel angelegt werden, wobei zusätzlich noch geprüft werden muss, ob dass entsprechende Teil überhaupt in der Liste vorhanden ist.
Basis-Formel-Beispiel:
=WENN(ISTFEHLER(SVERWEIS(A4;'H:\India\Analyse\Neuer Ordner\[65041.xls]151020230'!$C:$H;6;FALSCH));
0;SVERWEIS(A4;'H:\India\Analyse\Neuer Ordner\[65041.xls]151020230'!$C:$H;6;FALSCH))
Bei dieser Formel-Länge müsste für jedes Produkt (=Tabellenblatt) eine Spalte mit Formeln ausgefüllt werden. Somit wären in Excel 2003 max. 255 Tabellenblätter möglich. ggf. könnte man die Tabelle um 90° drehen und die Referenz-Teilenummern in einer Zeile listen, um mehr Tabellen zu verarbeiten.
Eigentlich macht hier nur eine makro-unterstützte Lösung Sinn.
Dabei gibt es mehrere Varianten:
1. Die Daten aller Produkt-Stücklisten werden in einem Tabellenblatt untereinander kopiert, ggf ohne die Summen-Zeilen.
Diese Daten kann man dann per Pivot-Tabellenbericht auswerten nach Summe der Stückzahlen je Teilenummer. bzw. du kannst mit SUMMEWENN für die in der Referenzliste genannten Teile die Spalte "Amount" auswerten.
2. Die in der Referenzliste angegebenen Teilenummern werden in allen Dateien + Tabellen per Makro gesucht und dabei die Werte für "Amount" summiert.
Für die 1. Variante gibt es hier im Archiv mit Sicherheit eine Lösung, um aus allen Dateien eines Verzeichnisses die Daten der Tabellen in einem Tabellenblatt zusammenzufassen.
Die 2. Variante erfordert eine maßgeschneiderte Lösung.
Gruß
Franz
Anzeige
AW: Sverweis mehrere Dateien?
12.10.2009 12:21:31
MaxKuba
Hallo Franz,
danke fuer die schnelle Antwort. Ich werde mal suchen ob ich ein Makro finde das mir alle Dateien untereinander kopiert.
Gruesse aus Indien,
Max
AW: Sverweis mehrere Dateien?
12.10.2009 13:04:59
MaxKuba
Hab einen super code zum zusammenfuehren von Exceldateien gefunden:
Option Explicit
Sub Dateien_Zusammenfuehren()
'Als erstes Ordner im Explorer selectieren!!
' Führt die Tabellen aus den Dateien in Verzeichnis in einer Datei zusammen
' Dabei werden die Daten aus den Tabellen der Quell-Dateien in eine oder mehr Ziel-Tabelle(n) _
_
_
kopiert
' Dabei werden in den Tabellen alle Formeln in Werte verwandelt
Dim Verzeichnis As String
Dim wbQuelle As Workbook, wksQuelle As Worksheet, wbZiel As Workbook, wksZiel As Worksheet
Dim Datei As String, ZeileDaten As Long, Zeile As Long, wksListe As Worksheet
Dim Spaltenformat As Boolean, i As Integer, Blatt As Integer
'Neue Datei zum Zusammenführen der Tabellen Dateien anlegen
Set wbZiel = Workbooks.Add(Template:=xlWBATWorksheet)
Set wksZiel = wbZiel.Sheets(1)
Blatt = 1 'Zählnummer für Blätter mit Daten
wksZiel.Name = "Tabelle" & Blatt
wbZiel.Worksheets.Add After:=Sheets(1) 'Blatt das die zusammengefassten Tabellen _
protokolliert
Set wksListe = ActiveSheet
wksListe.Name = "Importprotokoll"
Zeile = 1
wksListe.Cells(Zeile, 1) = "Import-Protokoll"
Zeile = 2
wksListe.Cells(Zeile, 1) = "Quell-Datei"
wksListe.Cells(Zeile, 2) = "Quell-Tabelle"
wksListe.Cells(Zeile, 3) = "eingefügt in Blatt"
ZeileDaten = 1
Application.ScreenUpdating = False
'Exceldateien im Verzeichnis Öffnen
Datei = Dir(Verzeichnis & "*.xls")
Spaltenformat = False
Do Until Datei = ""
Application.StatusBar = "Die " & Zeile - 1 & ". Datei wird bearbeitet, Dateiname: " & _
Datei
Set wbQuelle = Workbooks.Open(Filename:=Verzeichnis & Datei, ReadOnly:=True)
For Each wksQuelle In wbQuelle.Worksheets 'Variante für alle Tabellenblätter
With wksQuelle
If ZeileDaten + .UsedRange.Rows.Count > wksZiel.Rows.Count Then
Blatt = Blatt + 1
wbZiel.Worksheets.Add After:=Sheets(Blatt - 2) 'weiteres Blatt für Daten
Set wksZiel = wbZiel.Sheets(Blatt)
wksZiel.Name = "Tabelle" & Blatt
Spaltenformat = False
ZeileDaten = 1
End If
If Spaltenformat = False Then
'Aus der 1. Tabelle der nächsten, Datei werden die Spaltenbreiten ausgelesen und in _
die Ziel-Tabelle übertragen
For i = 1 To .UsedRange.Column + .UsedRange.Columns.Count - 1
wksZiel.Columns(i).ColumnWidth = .Columns(i).ColumnWidth
Next i
Spaltenformat = True
End If
Zeile = Zeile + 1
wksListe.Cells(Zeile, 1) = wbQuelle.FullName
wksListe.Cells(Zeile, 2) = wksQuelle.Name
wksListe.Cells(Zeile, 3) = Blatt
'Formeln durch Werte ersetzen
.UsedRange.Copy
.Range(.UsedRange.Address).PasteSpecial Paste:=xlPasteValues
.UsedRange.EntireRow.Copy Destination:=wksZiel.Cells(ZeileDaten, 1)
ZeileDaten = ZeileDaten + .UsedRange.Rows.Count
End With
Next wksQuelle
wbQuelle.Close Savechanges:=False
Datei = Dir
Loop
Application.StatusBar = False
Application.ScreenUpdating = True
wbZiel.Activate
'Protokollliste Formatieren
wksListe.Select
wksListe.Columns("A:B").AutoFit
wksListe.Range("A3").Select
ActiveWindow.FreezePanes = True
' Datei-Speichern Dialog anzeigen
Application.Dialogs(xlDialogSaveWorkbook).Show
End Sub

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige