Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Nummern aus 2 Tabellen abgleichen, doppelte löschen,oder makieren





Frage

Hallo folgendes problem, ich habe 2 tabellen in es stehen jeweils in A, B, C, D, E Zahlen drin ich muss sozusagen tabelle 1 mit tabelle 2 abgleichen In Tabelle 1 stehen die Abzugleichenden Zahlen in Spalte "E" drin in tabelle 2 stehen die zahlen in Spalte D drin es sind ca. 11000 einträge ( zeilen) es sollten die doppelten in tabelle 1 gelöscht werden, dies bedeutet, sobald er findet das in tabelle 1 "E2" in tabelle 2 vorkommt, soll er die komplette zeile in der die nr steht in tabelle 2 löschen, so das ich sozusagen nur noch die aktuellen in tabelle 2 stehen habe die noch nicht in meiner datenbank sind, ich hoffe ich habe nicht zuviel geschrieben, und ich hoffe das es einen lösungsweg gibt. Grüße aus Mittelhessen! P.s das Forum ist genial, es sind schon sehr viele gute Makros gepostet worden nur nicht das was ich brauche

Antwort 1 von schnallgonz

Moin Sloeffler,
das ist was für die VBA-Profis, läßt sich mit Sicherheit lösen.
Es gibt allerdings auch reichlich Futter zum Thema "Tabellen vergleichen".
Eine Super-Lösung gibt´s auch unter
http://home.arcor.de/excelseite/Werkzeugkiste/indwerkz.html,
sowie weitere Beschreibungen.
Man könnte die o.g. Lösung von dort einsetzen, die dafür sorgt, dass die Zeile mit einem Doppler mit einem Text wie "Dublette" versehen wird.
Dann wäre noch eine Kontrolle möglich.
Anschließend Schleife, die nach dem Text "Dublette" sucht und diese Zeile löscht.
Habe leider keine fertige Lösung gebunkert, wenn unsere VBA-Genies keine Lösung aus dem Ärmel schütteln, versuche in der nächsten arbeits- und kinderfreien Phase einen Code zu basteln.
MfG
schnallgonz

Antwort 2 von schnallgonz

Nachtrag

http://home.arcor.de/excelseite/Werkzeugkiste/indwerkz.html

dann links Tabellen vergleichen eine Spalte wählen

und....

supi, was?

Antwort 3 von Sloeffler

hy, ich bin gerade an der Arbeit, wollte gerade dein Macro versuchen.

Nur leider nimmt er das irgendwie nicht als exe an, sondern will es mit winzip self extractor entpacken, somit wird dann eine .excel datei draus, und ich kann damit nichts mehr anfangen.

trotzdem danke, ich werds nachher nochmal versuchen.
Wenn jemand weiß wie ich das mit dem zip abstellen kann( das ist das zip von windows) kein zusätzlich installiertes, dann kann ich es testen.

Ich muss die tabellen bis Montag fertig haben, also wäre sehr gut wenn ichs hinbekommen würde

schon mal vielen dank

Antwort 4 von schnallgonz

Moin Sloeffler,
das mit dem ZIP ist schon i.O., Du hast alles richtig gemacht.
Ist ein selbstentpackendes Archiv, Ergebnis = Exceltabelle.

Allerdings hat der gute Mann vergessen, ein Makro zum Aufruf der Eingabemaske beizustellen. So siehst Du nur eine leere Mappe. Umdas Eingabefenster aufzurufen, fehlt folgendes Makro:

Sub FensterZeigen()
UserForm1.Show
End Sub


Also mit ALT+F11 in die Makroumgebung, dort obigen Code in ein Modul rein und starten.
VBA-Erfahrung wenigstens rudimentär vorhanden?
Hilfe gibt´s hier:
http://www.excelbeispiele.de/ dann
Anleitung zum VBA Projekt “Modul" anschauen

Wenn die Nerven blank liegen, gib Deine email-Adresse in meinen Pager, ich maile Dir dann eine funktionfähige Version ohne VBA-Basteleien für Dich.
MfG
schnallgonz

Antwort 5 von Sloeffler

Folgendes bei meinen über 11000 einträgen erscheint nach einer gewissen anzahlt ( Laufzeitfehler 9 )

die programme funktionieren zwar, aber nur wenn ich ca. bis 1000 einträge habe, aufteilen kann ich es aber nicht, da in der einen tabelle der eintrag in zelle a3 steht und in tabelle b könnte er in b5000 stehen!!

kann mir jemand weiterhelfen?

ansonsten das mit dem fenster ausführen hat geklappt!

Antwort 6 von nostalgiker6

Ich könnte das wahrscheinlich mit einem "richtigen" Programm (klassische Programmiersprache) lösen,
wenn du mir die xls-Datei schickst an

mail@ntes.de

Gruss R.A.

Antwort 7 von Sloeffler

sorry das ist zwar ein schönes angebot, aber das sind firmeninterne daten, die will und kann ich nicht versenden.

Antwort 8 von nostalgiker6

Mit VB müsste es eigentlich auch gehen:
Tabelle unter zwei Namen als csv-Datei exportieren,
dann zu jedem Satz der 1. Datei die gesamte 2. durchsuchen;
entsprechend kennzeichnen und in neue csv-datei ausgeben.

Antwort 9 von schnallgonz

Salve
Ändere das Listing ab
ALT+F11 in die Makroumgebung
links im Fenster unter "Formulare" auf "UserForm1" rechter Mausklick, "Code anzeigen";
dort dann folgenden Eintrag suchen:

Private Sub CommandButton2_Click()


darunter alle "Integer" durch "Long" ersetzen und Wort auf 20000, also so:

Dim zelle, adre As String
Dim Wort(20000), wo(20000) As String, ad(20000) As String, ziel As Long
Dim r As Long, zeil As Long, t As Long, rr As Long


MfG
schnallgonz

Antwort 10 von Sloeffler

Also folgendes vielleicht geht es jetzt leichter,

ich habe jetzt 2 tabellen

in Tabelle 1 stehen in zeile A die zoll tarif nr.
und in Tabelle 2 stehen in zeile A die toll tarif nr.

das problem ist, in tabelle 2 die zoll tarif nr. sind aus der datenbank die haben hinten 4 nullen dran

in tabelle 1 die nr. haben 4 "0"en zuviel oder die in tabelle 2 zuwenig, um den abgleich mit dem programm zumachen!!!! habe ich eben erst gemerkt da mein chef mir falsche zahlen vorgegeben hatte!

wie kann ich bei den zahlen in tabelle 1 4 "0"en wegmachen

oder wie kann ich in tabelle 2 "4" nullen dazumachen!!

ich was das problem ist etwas größer aber ich muss es lösen! sonst muss ich 11000 datensätze per hand eingeben

grrrr!! p.s danke für die zahlreiche hilfe@all

Antwort 11 von schnallgonz

Hi,
ich hoffe, Du wirst Montag nicht entlassen, falls die Liste nicht steht.
Soll doch Dein höher besoldeter Chef selber machen, den Sch.... ;-)

So, mal weiter zur Sache:

Wenn es Zahlen sind, einfach alles x 10.000, oder?
Dazu 10.000 in eine freie Zelle tippen, kopieren,
Zielbereich markieren (Deine ZollNr mit zuwenig Nullen)
BEARBEITEN-IHALTE EINFÜGEN -- MULTIPLIZIEREN

Wenn es Textformate sind, fällt mit auf die Schnelle nur die Krücke VERKETTEN ein.
Du fügst 2 Hilfsspalten ein, schreibst in die erste
=VERKETTEN(A1;"0000"), also in B1
Formel runterziehen
anschließend diese Spalte kopieren und in die nächste Hilfsspalte BEARBEITEN-INHALTE EINFÜGEN -- nur Werte

dann hast Du die Nullen ergänzt und kannst die ersten beiden Spalten löschen (Original und VERKETTEN-Spalte).

Ob das Vergleichen-Tool 100% läuft, habe ich nicht komplett getestet.
Also immer schön die Originaldateien sichern!!
MfG
schnallgonz

Antwort 12 von Sloeffler

:D mahlzeit!
erst ma was spachteln :D dann weiter sehen!

das sau ding macht mir kopf zerbrechen, aber so langsam habe ich die ersten erfolge zu verzeichnen, z. B. das ich alle 11000 nr. machen kann thx, @schnallgonz

hast mir sehr geholfen!

und dank deinen tipps klappt es auch so langsam, ich denke bis heute nachmittag habe ich das!

p.s eigentlich sollte ich die 11000 dinger per hand eingeben, ( " bin noch azubi" )

und dazu hatte ich nun wirklich keine lust, das hätte tage wenn nicht wochen gedauert!!

Antwort 13 von schnallgonz

Ich nochmal,
Coros hat auf seiner HP
http://www.excelbeispiele.de/
als Beispiel Nr. 48 Lösungen, die Dir helfen könnten
(das erste Listing).
Viel Glück
schnallgonz

Antwort 14 von schnallgonz

Noch ein Link zu einer erweiterten Lösung:
http://www.downloadcounter.de/counter.pl?page=http://home.arcor.de/...

ich hab´s noch nicht ausprobiert

mfg schnallgonz

Antwort 15 von Sloeffler

Hy vielen dank, das programm ist mir gleich am Anfang aufgefallen, damit arbeite ich die ganze zeit schon, oder versuche es zumindest! meine 11000 nr gleicht es jetzt schon ab ohne probleme

zurzeit nach Zoll Nr.

nur da mehrere Artikel die gleiche Zoll nr haben, dafür aber eine andere artikel nr. versuche ich das es beide abgleicht! probeweise bei 20 gleichformatierten nr. usw.

klappt alles perfekt, aber sobald eine unregelmäßigkeit in der großen tabelle ist macht er es nicht mehr!!

aber ich mache schon fortschritte *g*


hoffen wir mal das beste!

wenn ich das hinbekomme, wirds de chef vom stuhl hauen weil das schon seit Juni bei ihm auf em schreibtisch lag und er nie lust dazu hatte es zu amcehn :D

Antwort 16 von Sloeffler

Dank euch habe ich sogut wie die Lösung das mit den Nullen usw. hat geklappt jetzt muss ich nur noch einmal was formatieren

Die zoll nr sind jetzt alle gleich,

Jetzt habe ich noch das problem mit den ArtNr.

in der einen liste sind vorne 3 nullen an der 11 stelligen art nr.

wenn ich z.b in b4 klicke wo die nr steht und dann entweder klicke sind sie weg und er sprint in b5

also vorher steht da 00014370270
dann klicke ich ins feld und klicke enter danach ist nur noch 14370270
da und genau so brauche ich die nr.


mit formatieren klappt es nicht, habe ich schon versucht! ich will aber auch nicht jede zahl einzelnd anklicken.

Wäre euch dankbar, wenn ihr mir nocheinmal helfen könntet wie bisher, dann kann ich mit einem ruhigen gefühl ins weekend gehen *g*

Antwort 17 von schnallgonz

Salve Sloeffler,
wegen solcher Sachen würde ich weder meine Nachtruhe noch das Wochenende stören lassen :-)

Excel erkennt nach der Eingabe den Zellinhalt als Wert und kegelt folgerichtig die führenden Nullen raus.

Folgendes Makro automatisiert Deine Aktion.
Du markierst die betroffenen Zellen und startest das Makro.

Sub F2ImBereich() ´F2 und Enter für Zellen mit Datumfehler senden
Dim Zelle As Object
Dim i As Integer
i = MsgBox("Datum reparieren:" & Chr(13) & _
        "Makro sendet Tasten F2 und ENTER an jede markierte Zelle." & Chr(13) & _
        "" & Chr(13) & _
        "Haben Sie die Zellen mit nicht erkanntem Wert markiert?" & Chr(13), 1 + vbQuestion, "Markierenabfrage")
If i = 2 Then Exit Sub
For Each Zelle In Selection
    SendKeys "{F2}", True
    SendKeys "{ENTER}", True
Next Zelle
End Sub

Viel Erfolg und ruhiges WE
MfG
schnallgonz