PDA

Vollständige Version anzeigen : Tabellen vergleichen


virus
09.04.2001, 17:59
hi,
ich hab 2 Exceltabellen.
Nun möchte ich die beiden Tabellen miteinander vergleichen lassen und die Änderungen von tabelle 2 auf 1 in eine
separate Tabelle schreiben.

Gibts in Excel eine Funktion dafür oder
muß ich ein Makro machen ???

Wenn letzeres ... wie sieht so ein Makro aus ??? :-)

Danke und viele Grüße
Virus

Klaus-Dieter
09.04.2001, 18:26
Hallo Virus,

habe schon dutzende solcher Makros geschrieben. Kann ich Dir also gerne zur Verfügung stellen. Dazu müßte ich aber wissen: was soll verglichen werden? Der Inhalt einer Spalte, die Inhalte mehrerer Spalten? Wieviele Spalten haben die Tabellen?

Wenn ich das weiß, kann ich Dir was maßgeschneidertes geben. Wenn Du willst, auch per eMail.

virus
09.04.2001, 18:41
Hallo Klaus-Dieter,

das wär SUPER von Dir.
Die Größe der Tabelle ist immer unterschiedlich. Das ganze ist so:
Ich bekomm eine Tabelle mit Daten und ca.
2 Wochen später die gleiche Tabelle aktualisiert. Nun möchte ich die Änderungen
(von den 2 Wcohen) in eine extra Tabelle
kopieren.

Grüße
Virus

virus
09.04.2001, 18:54
Ach ja, meine Mail ist:
VirenChris@gmx.de

DANKE NOCHMAL !!!

Klaus-Dieter
11.04.2001, 21:51
Hallo Forum,

hier das Makro für alle:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Sub</span> Tabellen_vergleichen()
<span class="TOKEN">Dim</span> verg1(2500, 60), verg2(2500, 60), mer(2500), titel(60)
<span class="REM">'Tabelle 1 einlesen</span>
Worksheets(&quot;Tabelle1&quot;).Activate
&nbsp;
y = 1
<span class="TOKEN">Do</span> <span class="TOKEN">While</span> Cells(1, y) &lt;&gt; &quot;&quot;
titel(y) = Cells(1, y)
y = y + 1
<span class="TOKEN">Loop</span>
<span class="TOKEN">For</span> r = 1 <span class="TOKEN">To</span> y - 1
z = 1
<span class="TOKEN">Do</span> <span class="TOKEN">While</span> Cells(z, 1) &lt;&gt; &quot;&quot;
verg1(z, r) = Cells(z, r)
z = z + 1
<span class="TOKEN">Loop</span>
<span class="TOKEN">Next</span> r
&nbsp;
<span class="REM">'Tabelle 2 einlesen</span>
Worksheets(&quot;Tabelle2&quot;).Activate
&nbsp;
yy = 1
<span class="TOKEN">Do</span> <span class="TOKEN">While</span> Cells(1, yy) &lt;&gt; &quot;&quot;
yy = yy + 1
<span class="TOKEN">Loop</span>
<span class="TOKEN">For</span> r = 1 <span class="TOKEN">To</span> yy - 1
z = 1
<span class="TOKEN">Do</span> <span class="TOKEN">While</span> Cells(z, 1) &lt;&gt; &quot;&quot;
verg2(z, r) = Cells(z, r)
z = z + 1
<span class="TOKEN">Loop</span>
<span class="TOKEN">Next</span> r
&nbsp;
<span class="REM">'&Auml;nderungen kennzeichnen</span>
<span class="TOKEN">For</span> r = 1 <span class="TOKEN">To</span> z - 1
<span class="TOKEN">For</span> s = 1 <span class="TOKEN">To</span> yy - 1
<span class="TOKEN">If</span> verg1(r, s) &lt;&gt; verg2(r, s) <span class="TOKEN">Then</span>
mer(r) = r
Cells(r, s).Select
<span class="TOKEN">With</span> Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
<span class="TOKEN">End</span> <span class="TOKEN">With</span>
Selection.Interior.ColorIndex = 3
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">Next</span> s
<span class="TOKEN">Next</span> r
Worksheets(&quot;Tabelle3&quot;).Activate
<span class="TOKEN">For</span> l = 1 <span class="TOKEN">To</span> yy - 1
Cells(1, l) = titel(l)
<span class="TOKEN">Next</span> l
zz = 2
<span class="TOKEN">For</span> m = 1 <span class="TOKEN">To</span> z - 1
<span class="TOKEN">If</span> m = mer(m) <span class="TOKEN">Then</span>
<span class="TOKEN">For</span> n = 1 <span class="TOKEN">To</span> yy - 1
Cells(zz, n) = verg2(m, n)
<span class="TOKEN">Next</span> n
zz = zz + 1
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">Next</span> m
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>

Es werden zwei Tabellen verglichen, Abweichungen in der zweiten Tabelle markiert und die Zeilen mit den Abweichungen in eine dritte Tabelle geschrieben. Anleitung auf Anfrage per eMail.

<font size="1" face="Century Gothic">Moderatorenanmerkung: die Überarbeitung dieses Beitrages ist im Zuge der Arbeiten zu sehen, die durch den Wechsel der Forensoftware zum 01.01.2003 verursacht wurden.

Es wurde in diesem Beitrag der Code für dieses Forum angepasst.<font>