Thema Datum  Von Nutzer Rating
Antwort
Rot Tabellenvergleich
02.07.2019 16:17:00 KathrinZ
*****
NotSolved
02.07.2019 17:20:59 Gast61433
NotSolved
02.07.2019 19:28:06 KathrinZ
NotSolved
02.07.2019 21:20:35 Gast12345
NotSolved
03.07.2019 08:11:51 KathrinZ
NotSolved

Ansicht des Beitrags:
Von:
KathrinZ
Datum:
02.07.2019 16:17:00
Views:
835
Rating: Antwort:
  Ja
Thema:
Tabellenvergleich

Hallo zusammen,

ich hab mich hier mit demselben Thema schon mal an Euch gewandt und brauch nochmal kurz Eure Hilfe.
Alter Teil:
Ich soll für die Planung der Kostenstellen ein Makro schreiben, weil wir wegen eines Tools etwas eingeschränkt sind in der Excelbearbeitung. Und zwar generiert mir mein Tool eine Tabelle und diese will ich auf ein zweites Tabellenblatt kopieren. Auf der zweiten Seite kann ich dann mittels Copy Paste dann die Tabelle eventuell mit neuen Werten überschreiben. Das Makro soll mir jetzt folgendes ermöglichen:
Erst soll die Tabelle kopiert werden auf Tabellenblatt 2.
Mit einem Druck auf den Command Button beginnt der Tabellenvergleich:
Dabei wird Zeile pro Zeile vorgegangen: Die Kostenstelle in der ersten Zeile von der Kopie wird in eine Variable gespeichert und in der ursprünglichen Tabelle auf Tabellenblatt 1 gesucht. Daraufhin wird die komplette Zeile der Kopie mit der zugehörigen Zeile der Kostenstelle in der ursprünglichen Tabelle verglichen. - 
Sollten diese identisch sein (keine unterschiedlichen/überschriebenen Werte, wird die Zeile in Tabellenblatt Kopie gelöscht.

Sind einzelne/mehrere Werte verschieden, so wird die Zeile in Kopie kopiert und in das Tabellenblatt 1 in der Zeile der richtigen Kostenstelle eingefügt (--> überschrieben!) Die Zeile in "Kopie" wird gelöscht

Sollte es die Kostenstelle in Tabellenblatt 1 überhaupt noch nicht geben, was vorkommen kann, so wird diese einfach in der Tabelle in Tabellenblatt 1 unten angefügt. Die Zeile in "Kopie" wird gelöscht.

Somit sollten am Schluss keine Zeilen mehr im Tabellenblatt Kopie vorhanden sein und die Zeilen einzeln in das ursprüngliche Tabellenblatt übertragen worden sein. Leider geht das nur Zeile für Zeile, da aufgrund des Tools kein kompletter Datensatz mittels Copy Paste in das ursprüngliche Tabellenblatt übertragen werden können. Das wäre natürlich viel einfacher und würde kein Makro benötigen...
 

Sub Vergleich()

Dim Zelle As Range
Dim wsOr As Worksheet, wsKo As Worksheet
Dim Suchrange As Range, Kopierrange As Range

Set wsOr = ThisWorkbook.Worksheets("Tabelle1")
Set wsKo = ThisWorkbook.Worksheets("Kopie")
Set Kopierrange = wsKo.UsedRange.Columns(1).Offset(1, 0)

For Each Zelle In Kopierrange.Resize(Kopierrange.Rows.Count - 1).Cells
   Set Suchrange = wsOr.Columns(1).Find(what:=Zelle.Value, LookIn:=xlValues, LookAt:=xlWhole)
   If Suchrange Is Nothing Then
      Zelle.EntireRow.Copy wsOr.Cells(wsOr.Rows.Count, 1).End(xlUp).Offset(1, 0)
      Zelle.EntireRow.Clear
   Else
      Zelle.EntireRow.Copy Suchrange
      Zelle.EntireRow.Clear
   End If
Next Zelle

Set wsOr = Nothing
Set wsKo = Nothing
Set Kopierrange = Nothing

End Sub


Das hat mir auch schon alles gelöst. Nur verschieben sich innerhalb meines Tabellenblattes jetzt die Spalten und dann komm ich wieder nicht mehr klar, weil ich mit der Offset Funktion so meine Schwierigkeiten hab. Und zwar finde ich jetzt meine zu suchende Kostenstelle in Spalte B (2) ab Zeile 11 im Tabellenblatt Kopie und kopiere dann die Zeile in Spalte B ab Zeile 11 im Tabellenblatt Original. Wahrscheinlich total einfach, aber ich steh auf dem Schlauch. Es geht nur um die Verschiebung der Kopier und der Suchrange, soweit ich das richtig verstanden hab!
-------------------------------------------------------------------------
Folgendes Beispieldokument mit ein paar Kommentaren hab ich letztes Mal erstellt: http://www.herber.de/bbs/user/130569.xlsm


Unendlich viel Dank an die- oder denjenigen, der mir hier raushilft!!!


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Tabellenvergleich
02.07.2019 16:17:00 KathrinZ
*****
NotSolved
02.07.2019 17:20:59 Gast61433
NotSolved
02.07.2019 19:28:06 KathrinZ
NotSolved
02.07.2019 21:20:35 Gast12345
NotSolved
03.07.2019 08:11:51 KathrinZ
NotSolved