Vorratliste in Excel aktualisieren/synchronisieren

Bild

Betrifft: Vorratliste in Excel aktualisieren/synchronisieren
von: Tedris
Geschrieben am: 25.09.2015 09:58:48

Hallo Zusammen,
nach stundenlanger Recherche bleibt mir leider nichts anderes mehr übrig als mich an euch zu wenden.
Meine Excel Kentnisse sind eigentlich nicht so schlecht, jedoch kenne ich mich nicht gut mit VB oder Makros aus.
Folgende Aufgabenstellung:
Es gibt eine Masterliste in der Artikel inklusive Parameter eingepflegt sind. z.B. Artikelnr. | Typ | Bezeichnung | Preis | Variante | ...
Eine zweite Liste wird immer aktuell aus dem System exportiert und soll mit der Masterliste synchronisiert werden. Diese zweite Liste hat denselben Spaltenaufbau wie oben.
Nun soll folgendes passieren. Ein Skript/Makro soll sich die zweite Liste anschauen und Artikel welche neu hinzugekommen sind an die Liste anfügen. Artikel welche in der zweiten
Liste nicht mehr auftauchen sollen in der Masterliste rot markiert werden (Ausfüllung oder Schriftfarbe). Bei übereinstimmenden Artikeln (also in beiden Listen vorhanden) soll nichts passieren.
Nun habe ich lange mit =VERGLEICH() und =VERWEIS herumexperimentiert jedoch leider zu keinem Ergebniss gekommen.
Ich hoffe ihr könnt mir hierbei eine Hilfestellung geben.
Vielen Dank im Voraus

Bild

Betrifft: AW: Vorratliste in Excel aktualisieren/synchronisieren
von: JoWE
Geschrieben am: 25.09.2015 10:14:42
Hallo,
sieh Dir mal diese Diskussion an: https://www.herber.de/forum/archiv/1264to1268/1267942_Tabellen_Alt_und_Neu_synchronisieren.html
Evtl. kann Franz bei der Anpassung auf Deine Bedürfnisse helfen
Gruß
Jochen

Bild

Betrifft: Vorschlag bei VBA
von: Tino
Geschrieben am: 25.09.2015 10:18:02
Hallo,
Vorschlag bei VBA Nein
zwei Beispieldateien aufbauen (Masterliste und die 2.) und
diese als Zip-File hier Hochladen u. rein stellen.
Gruß Tino

Bild

Betrifft: AW: Vorschlag bei VBA
von: Tedris
Geschrieben am: 28.09.2015 07:14:40
Es muss nicht unbedingt in zwei Dateien sein, es gehen auch zwei Sheets.
Ein Beispiel wie es erfolgen soll habe ich Manuell mal gemacht, siehe Dateianhang.
https://www.herber.de/bbs/user/100433.xlsx

Bild

Betrifft: ok. wenn du meinst dies reicht ...
von: Tino
Geschrieben am: 28.09.2015 18:27:13
Hallo,
habe es mal in die Datei eingebaut, kannst mal testen ob es so geht.
https://www.herber.de/bbs/user/100449.xlsm
Gruß Tino

Bild

Betrifft: AW: ok. wenn du meinst dies reicht ...
von: Tedris
Geschrieben am: 29.09.2015 08:20:15
Hallo Tino,
erstmal vielen Dank für deine Hilfe das scheint sehr gut zu funktionieren.
Wie ich deinen Code verstanden habe (als Laie) vergleicht dieser den Inhalt aus Spalte A , also der Artikelnummer. Wäre es auch möglich bspw. den Vergleich in Spalte C durchzuführen also der Bezeichnung? Vielen Dank im Voraus

Bild

Betrifft: AW: ok. wenn du meinst dies reicht ...
von: Tino
Geschrieben am: 29.09.2015 17:39:07
Hallo,
ersetze den kompletten Code durch diesen.
In varSpalte = "C" kannst du die Spalte angeben.

Option Explicit

Sub Start()
Dim oWBM As Workbook, oWBL As Workbook, SHCopy As Worksheet
Dim TabNameM$, TabNameL$
Dim rngM As Range, rngL As Range, rngTmp As Range, rngTmp2 As Range
Dim strFormel$, varSpalte

varSpalte = "C"

Set oWBM = ThisWorkbook
Set oWBL = ThisWorkbook

TabNameL = "Stückliste_alt"
TabNameM = "Stückliste_import"

varSpalte = Worksheets(1).Columns(varSpalte).Column
'Datenbereich Masterliste 
With oWBM.Sheets(TabNameM)
    Set rngM = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp)).Resize(, .UsedRange.Columns.Count)
    Set rngTmp = rngM.Columns(1).Offset(, .Columns.Count - 1)
End With

'Datenbereich Liste 
oWBL.Sheets(TabNameL).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Set SHCopy = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
With SHCopy
    Set rngL = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp)).Resize(, .UsedRange.Columns.Count)
    rngL.Interior.ColorIndex = 0
End With

strFormel = "=IF(CountIF(" & rngL.Columns(varSpalte).Address(1, 1, xlR1C1, 1) & ",RC" & varSpalte & ")=0,1,"""")"
rngTmp.FormulaR1C1 = strFormel

On Error Resume Next
Set rngTmp2 = rngTmp.SpecialCells(xlCellTypeFormulas, 1)

If Not rngTmp2 Is Nothing Then
    rngTmp2.EntireRow.Copy rngL.Cells(rngL.Rows.Count, 1).Offset(1, 0)
    rngL.Cells(rngL.Rows.Count, 1).Offset(1, 0).Resize(rngTmp2.Rows.Count, rngM.Columns.Count).Interior.Color = RGB(146, 208, 80)
End If
rngTmp.EntireColumn.Delete

With oWBL.Sheets(TabNameL)
    .Columns(.Columns.Count).Delete
    Set rngTmp = rngL.Columns(1).Offset(, .Columns.Count - 1)
    strFormel = "=IF(CountIF(" & rngM.Columns(varSpalte).Address(1, 1, xlR1C1, 1) & ",RC" & varSpalte & ")=0,1,"""")"
    rngTmp.FormulaR1C1 = strFormel

    Set rngTmp2 = rngTmp.SpecialCells(xlCellTypeFormulas, 1)
    
    If Not rngTmp2 Is Nothing Then _
        rngTmp2.Offset(, -(.Columns.Count - 1)).Resize(, rngL.Columns.Count).Interior.Color = RGB(252, 91, 0)
    
    rngTmp.EntireColumn.Delete
End With

End Sub
Gruß Tino

Bild

Betrifft: AW: ok. wenn du meinst dies reicht ...
von: Tedris
Geschrieben am: 01.10.2015 09:31:38
Werde ich morgen direkt mal testen,
vielen lieben Dank schonmal!

Bild

Betrifft: AW: Vorratliste in Excel aktualisieren/synchronisieren
von: Tedris
Geschrieben am: 28.09.2015 07:16:43
Es muss nicht unbedingt in zwei Dateien sein, es gehen auch zwei Sheets.
Ein Beispiel wie es erfolgen soll habe ich Manuell mal gemacht, siehe Dateianhang.
https://www.herber.de/bbs/user/100433.xlsx

Bild

Betrifft: AW: Vorratliste in Excel aktualisieren/synchronisieren
von: Tedris
Geschrieben am: 28.09.2015 07:20:49
Es muss nicht unbedingt in zwei Dateien sein, es gehen auch zwei Sheets.
Ein Beispiel wie es erfolgen soll habe ich Manuell mal gemacht, siehe Dateianhang.
https://www.herber.de/bbs/user/100433.xlsx

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Am kürzesten zurück liegendes Datum finden"