Anzeige
Archiv - Navigation
1172to1176
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

Datenblätter zusammenführen und auswerten

Datenblätter zusammenführen und auswerten
Heiko
Liebe Excelprofis,
Ich verzweifle gerade an folgendem Problem. Ich habe eine Exceldatei mit mehreren Tabellenblättern die unterschiedliche Jahre darstellen (Blattname = Jahreszahl)
In Spalte A sind Artikelnummern angegeben, in Spalte B der Preis (siehe Bsp-Tabelle ohne Blatt "Ziel")
https://www.herber.de/bbs/user/71220.xls
Ich möchte nun automatisch ein weiteres Tabellenblatt erstellen, indem die vorherigen zusammengefügt werden (Aussehen s. Blatt "Ziel"). Dabei sollen die Artikelnummern verglichen werden, wenn diese identisch sind soll der Preis des Artikels in die entsprechende Jahresspalte des Ziel-Blattes eingetragen werden.
Vielen Dank schonmal für eure Hilfe,
Gruß Heiko

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

Betreff
Benutzer
Anzeige
AW: Datenblätter zusammenführen und auswerten
24.08.2010 09:01:07
Mike
Hey Heiko,
füge bei B3 auf der Zieltabelle folgende Formel ein:
=WENN(ISTNV(SVERWEIS($A3; '2010'!$A$2:$B$7; 2; FALSCH)); 0; SVERWEIS($A3; '2010'!$A$2:$B$7; 2; FALSCH))
Sind bei den leeren Artikelnummern keine €-Zeichen gewünscht, ändere den Wert 0; auf "";. Für die
weiteren Jahre ist denn lediglich 2010 durch 2011 / 2012 zu ersetzen.
Gruss
Mike
AW: Datenblätter zusammenführen und auswerten
24.08.2010 09:28:12
Heiko
Hallo Mike,
Deine Funktion funktioniert, vielen Dank.
Allerdings fehlt mir eher ein Automatismus, in dem zusätzlich die Artikelnummern aus den Blättern 2010, 2011, 2012,... in das Zielblatt eingetragen, sortiert und doppelte Einträge gelöscht werden. Außerdem ändern sich die Blattbezeichnungen und Anzahl der Inputblätter. Bei Nutzung der Funktion WENN(ISTNV(...)) müsste ich dann immer die Verweise händisch abändern.
Viele Grüße,
Heiko
Anzeige
AW: Datenblätter zusammenführen und auswerten
24.08.2010 09:41:02
EvilRik
Hallo Heiko,
versuch das mal.
Option Explicit
Sub Blatteinfügen()
Dim wks, ArtikelNr, ArtikelPreis, zae1, zae2, zae3, Anz
On Error Resume Next
With ThisWorkbook
.Worksheets.Add , Worksheets(.Sheets.Count), 1, xlWorksheet
.ActiveSheet.Name = "Ziel"
.Worksheets("Ziel").Cells(2, 1) = "ArtikelNummer"
For Each wks In ThisWorkbook.Worksheets
zae1 = zae1 + 1
If wks.Name  "Ziel" Then
.Worksheets("Ziel").Cells(1, zae1 + 1) = "Preis"
.Worksheets("Ziel").Cells(2, zae1 + 1) = wks.Name
For zae2 = 1 To 10000
ArtikelNr = .Worksheets(wks.Name).Cells(zae2 + 1, 1)
ArtikelPreis = .Worksheets(wks.Name).Cells(zae2 + 1, 2)
If IsEmpty(ArtikelNr) Then Exit For
Anz = " "
Anz = WorksheetFunction.Match(ArtikelNr, .Worksheets("Ziel").Range("A3: _
A10000"), 0)
If IsNumeric(Anz) And Anz > 0 Then
.Worksheets("Ziel").Cells(Anz + 2, zae1 + 1) = ArtikelPreis
Else
zae3 = zae3 + 1
.Worksheets("Ziel").Cells(zae3 + 2, 1) = ArtikelNr
.Worksheets("Ziel").Cells(zae3 + 2, zae1 + 1) = ArtikelPreis
End If
Next zae2
End If
Next
End With
End Sub
Gruß Henrik
Anzeige
AW: Datenblätter zusammenführen und auswerten
24.08.2010 11:26:41
EvilRik
Hallo Heiko,
versuch das mal.
Option Explicit
Sub Blatteinfügen()
Dim wks, ArtikelNr, ArtikelPreis, zae1, zae2, zae3, Anz
On Error Resume Next
With ThisWorkbook
.Worksheets.Add , Worksheets(.Sheets.Count), 1, xlWorksheet
.ActiveSheet.Name = "Ziel"
.Worksheets("Ziel").Cells(2, 1) = "ArtikelNummer"
For Each wks In ThisWorkbook.Worksheets
zae1 = zae1 + 1
If wks.Name  "Ziel" Then
.Worksheets("Ziel").Cells(1, zae1 + 1) = "Preis"
.Worksheets("Ziel").Cells(2, zae1 + 1) = wks.Name
For zae2 = 1 To 10000
ArtikelNr = .Worksheets(wks.Name).Cells(zae2 + 1, 1)
ArtikelPreis = .Worksheets(wks.Name).Cells(zae2 + 1, 2)
If IsEmpty(ArtikelNr) Then Exit For
Anz = " "
Anz = WorksheetFunction.Match(ArtikelNr, .Worksheets("Ziel").Range("A3: _
A10000"), 0)
If IsNumeric(Anz) And Anz > 0 Then
.Worksheets("Ziel").Cells(Anz + 2, zae1 + 1) = ArtikelPreis
Else
zae3 = zae3 + 1
.Worksheets("Ziel").Cells(zae3 + 2, 1) = ArtikelNr
.Worksheets("Ziel").Cells(zae3 + 2, zae1 + 1) = ArtikelPreis
End If
Next zae2
End If
Next
End With
End Sub
Gruß Henrik
Anzeige
AW: Datenblätter zusammenführen und auswerten
24.08.2010 11:44:08
Heiko
Hallo Henrik,
Vielen Dank, funktioniert super. Habe noch folgenden Code zum Sortieren eingefügt:
ActiveSheet.Range("A3:F60000").Select
Selection.Sort Key1:=ActiveSheet.Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Damit ist mein Tag gerettet.
Viele Grüße
Heiko

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige