Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1488to1492
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

automatischer Übertrag von Tabelle 1 nach 2

automatischer Übertrag von Tabelle 1 nach 2
18.04.2016 09:02:19
Tabelle
Liebe Gemeinde,
folgendes Problem:
Ich habe eine Tabelle, in die Anschaffungskosten für diverse Produkte eingetragen werden. (Blatt 2). Aus dieser erstelle ich eine Pivot zur besseren Übersicht.
Wenn sich nun herausstellt, dass es einen günstigeren Preis gibt, möchte ich diesen z.B. in Zelle E6 (Blatt 1) eintragen.
Dieser Wert soll dann automatisch in Blatt 2 an der richtigen Stelle in Spalte G ersetzt werden.
Es kann auch mal vorkommen, dass es mehrere Produkte der selben Bezeichnung, jedoch von unterschiedlichen Herstellern gibt, sodass es mehrere "wenn"-Kriterien geben müsste.
https://www.herber.de/bbs/user/105040.xls
Vielen Dank und mit freundlichen Grüßen

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: automatischer Übertrag von Tabelle 1 nach 2
18.04.2016 10:14:20
Tabelle
Hi Alex
Im Anhang ein Gegenvorschlag.
https://www.herber.de/bbs/user/105041.xls
Das Blatt "Best Price" aktualisiert sich mittels folgendem Makro automatisch.
Private Sub Worksheet_Activate()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim iZeile As Long, letzteZeile As Long
' Blattnamen anpassen
Set WS1 = Worksheets("Blatt2")
Set WS2 = Worksheets("Best Price")
' Prüfen ob neue Objekte vorhanden sind
For iZeile = 3 To WS1.Cells(WS1.Rows.Count, 1).End(xlUp).Row
If WorksheetFunction.CountIf(WS2.Columns(1), WS1.Cells(iZeile, 1)) = 0 Then
letzteZeile = WS2.Cells(WS2.Rows.Count, 1).End(xlUp).Row + 1
WS2.Cells(letzteZeile, 1) = WS1.Cells(iZeile, 1)
WS2.Cells(letzteZeile, 2).Formula = "=SUMIF(" & WS1.Name & "!A:A,A" & letzteZeile & ","  _
& WS1.Name & "!F:F)"
WS2.Cells(letzteZeile, 3).Formula = "=SUMIF(" & WS1.Name & "!A:A,A" & letzteZeile & ","  _
& WS1.Name & "!G:G)"
WS2.Cells(letzteZeile, 4).Formula = "=C" & letzteZeile & "/SUM(C:C)"
WS2.Cells(letzteZeile, 5).FormulaArray = "=MIN(IF(" & WS1.Name & "!A$3:A$1000=A" &  _
letzteZeile & "," & WS1.Name & "!G$3:G$1000))"
WS2.Cells(letzteZeile, 6).FormulaArray = "=MAX(IF(" & WS1.Name & "!A$3:A$1000=A" &  _
letzteZeile & "," & WS1.Name & "!G$3:G$1000))"
End If
Next iZeile
' Wegfallende Objekte löschen
For iZeile = WS2.Cells(WS2.Rows.Count, 1).End(xlUp).Row To 2 Step -1
If WorksheetFunction.CountIf(WS1.Columns(1), WS2.Cells(iZeile, 1)) = 0 Then _
WS2.Rows(iZeile).Delete
Next iZeile
End Sub

Im Blatt "Best Price" kannst du angeben, wenn du einen günstigeren Preis findest. Dieser wird dann in Blatt2 übernommen und die Zeile rot markiert.
cu
Chris

Anzeige
AW: automatischer Übertrag von Tabelle 1 nach 2
18.04.2016 11:34:09
Tabelle
Hi Chris,
vorab: vielen Dank für deine Unterstützung. Leider ist das nicht 100% meine Idee.
Und zwar:
In Spalte G trägt ein Mitarbeiter einen Preis X für jedes Gerät ein, das er anschaffen möchte (die Tabelle kann am Ende bis zu 100 Positionen enthalten).
Wenn er die Tabelle übergibt, erstelle ich mir daraus eine Pivot zur besseren Übersicht und Sortierung (Spalte B wird zusammen gefasst).
Wir verhandeln dann mit dem Hersteller die Preise neu. Wenn sich etwas ändert, möchte ich direkt neben die Pivot-Tabelle den Betrag xy schreiben. Dieser soll dann in "Blatt2" an der richtigen Stelle übernommen werden (abhängig von Hersteller, Bezeichnung...).
Ich hoffe, dass war mehr oder minder verständlich.
Nochmal danke :)
LG Alex

Anzeige
AW: automatischer Übertrag von Tabelle 1 nach 2
18.04.2016 12:40:59
Tabelle
Hi Alex
Blatt "Best Price" ist nichts anderes wie deine Pivot Auswertung (Spalte Min/Max kannst auch löschen). Einfach nicht mit Pivot sondern mit Formeln und VBA. Daneben trägst du deinen neuen Preis ein und der wird wie gewünscht übernommen.
Wenn du dies in einer Pivot machst, hast du ein Problem mit der Aktualisierung (Zeilen können sich verschieben) und der Bezug zurück auf Blatt2 musst jedes mal neu erstellen. Eine Durchmischung von Daten und Auswertung ist problematisch. Zudem hast du auf der Pivot eine Summenbetrachtung, was sich dann mit Stückpreisen durchmischt.
Blatt2 Spalte H kannst auch wie folgt ändern:
=WENN(SVERWEIS(A3;'Best Price'!A:G;7;FALSCH)=0;G3;SVERWEIS(A3;'Best Price'!A:G;7;FALSCH))
Und wenn es unbedingt sein muss, kannst du Spalte G auch mit Spalte H überschreiben
Columns(7) = Columns(8).Value
cu
Chris

Anzeige
AW: automatischer Übertrag von Tabelle 1 nach 2
18.04.2016 15:10:51
Tabelle
Hi Chris,
das Macro funktioniert an sich, auch wenn ich den "Code" nicht ganz verstehe.
Aber das Macro mach leider das falsche. Wir bekommen insg. 11 solcher vorausgefüllten Tabellen.
Die Pivot-Tabelle wird in jedem Fall erstellt, da kann ich nichts dran ändern, derwegen möchte ich neben der Pivot eine Zelle mit einem Wert X befüllen, der wiederum in das andere Arbeitsplatz an die passende Stelle übertragen wird. Es muss nicht anderes gelöscht oder neu erstellt werden.
Die Pivot wird ein einziges mal erstellt und dann nach Gerätegruppen sortiert und innerhalb dieser nochmals nach dem Preis (absteigend).
Könntest du das Macro eventuell so umändern, dass das genau diese Ideen umsetzt?
Vielen Dank.
LG Alex

Anzeige
AW: automatischer Übertrag von Tabelle 1 nach 2
18.04.2016 16:33:17
Tabelle
Hi Alex
Hier...
Sub t()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim iZeile As Long, tempZeile As Long, tempRng As Range
Dim iiZeile As Long, letzteZeile As Long
Set WS1 = Worksheets("Blatt1")
Set WS2 = Worksheets("Blatt2")
letzteZeile = WS2.Cells(WS2.Rows.Count, 4).End(xlUp).Row
For iZeile = 7 To WS1.Cells(WS1.Rows.Count, 1).End(xlUp).Row - 1
If WS1.Cells(iZeile, 5)  "" Then
For iiZeile = 3 To letzteZeile
Set tempRng = WS2.Range(WS2.Cells(iiZeile, 4), WS2.Cells(letzteZeile, 4))
If WorksheetFunction.CountIf(tempRng, WS1.Cells(iZeile, 1)) = 0 Then
Exit For
Else
tempZeile = Application.Match(WS1.Cells(iZeile, 1), tempRng, 0) + iiZeile - 1
WS2.Cells(tempZeile, 6) = WS1.Cells(iZeile, 5)
iiZeile = tempZeile + 1
End If
Next iiZeile
End If
Next iZeile
End Sub

Ich halte es weiterhin für Quatsch und bin dann auch raus.
cu
Chris

Anzeige
AW: automatischer Übertrag von Tabelle 1 nach 2
19.04.2016 07:56:44
Tabelle
Hallo Chris,
vielen Dank für deine Mühe! Ich würde deine Variante auch bevorzugen, nur muss ich mich an die Vorgaben halten.
Dein Macro habe ich eingefügt, bin allerdings zu blöd, es ans Laufen zu bekommen.
Anbei ist die Tabelle wie wir sie aus den verschiedenen Regionen erhalten.
https://www.herber.de/bbs/user/105068.xlsm
Ich würde mich freuen, wenn du mir noch ein letztes Mal hilfst.
LG Alex

AW: automatischer Übertrag von Tabelle 1 nach 2
19.04.2016 08:23:17
Tabelle
Hi Alex
Dies ist eine neue Ausgangslage. Sorry ich bin raus und markiere die Frage als offen.
cu
Chris

Anzeige
AW: automatischer Übertrag von Tabelle 1 nach 2
21.04.2016 08:29:33
Tabelle
Bitte um Hilfe :P

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige