PDA

Vollständige Version anzeigen : DS vergleichen auf richtigkeit


se7en
11.09.2001, 12:14
Ich habe 2 Tabellen in der einen sind Namen (richtig) und in der anderen sind namen (teilweise falsch). Jetzt sollen alle richtigen aus der Teilweise-falschen-Tabelle in eine dritte Tabelle verschoben werden. damit ich nachher ein tabelle mit falsch geschriebenen und eine mit richtig geschriebenen Datensätzen habe. Bis jetzt hab ich zwar schon ein paar sachen probiert nur leider funktioniert das nicht. Kann mir jemand helfen?

<p align="left"><font size="1" face="Century Gothic"><font color="#000000">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 ein Link entfernt.</font>

prinzeri
11.09.2001, 14:06
Hallo Se7en

Ich gehe von folgenden Gegebenheiten aus:
Keine Überschriften.
Namen stehen in Spalte A.
Namen stehen in den Tabellen "richtig" und "teilweise" in den gleichen Zeilen und Spalten.
100 Datensätze.

ansonsten musst Du das Makro entsprechend anpassen. Die falschen Namen werden in eine dritte Tabelle "falsch" geschrieben, in der Tabelle "teilweise" bleiben leere Zellen zurück.

Sub Makro1()

D = 1
For a = 1 To 100
Sheets("richtig").Select
Cells(a, 1).Select
b = ActiveCell.Value
Sheets("teilweise").Select
Cells(a, 1).Select
c = ActiveCell.Value
If c <> b Then
Selection.Cut
Sheets("falsch").Select
Cells(D, 1).Select
ActiveSheet.Paste
D = D + 1
End If
Next a

End Sub

Kommst Du zurecht oder gibt es noch Fragen?

Gruss
prinzeri

Klaus-Dieter
11.09.2001, 18:08
Hallo se7en,

schau mal auf meiner <a href="http://home.tiscali.de/excelseite/Index.html" target="_blank">Internetseite</a> vorbei. Dort gibt es eine Beispieltabelle zum Download.

<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 wurden in diesem Beitrag Link(s) korrigiert.<font>

se7en
12.09.2001, 16:24
Hallo Prinzeri

Cells(a, 1).Select

Er sagt hier Select Methode für das Range objekt fehlgeschlagen.
Kannst du mir weiterhelfen`?

Stema
12.09.2001, 16:34
Versuch mal ActiveSheet.Cells(a, 1).Select.

prinzeri
13.09.2001, 06:23
Hast Du den Tabellennamen im Makro angepasst?

prinzeri

se7en
17.09.2001, 09:35
Hallo kann mir jemand den Code erklären?
Ich möchte ja auch was lernen :-)
Danke!!
Grüße Se7en


Sub DSvergleichen()

D = 1
For a = 1 To 1511
Sheets("richtig").Select
Sheets("richtig").Cells(a, 1).Select
b = ActiveCell.Value
Sheets("teilweise").Select
Sheets("teilweise").Cells(a, 1).Select
c = ActiveCell.Value
If c <> b Then
Selection.Cut
Sheets("falsch").Select
Sheets("falsch").Cells(D, 1).Select
ActiveSheet.Paste
D = D + 1
End If
Next a

End Sub

jinx
17.09.2001, 22:20
<font size="2" face="Century Gothic">Moin, se7en,

warum übernimmst Du nicht den Code, so wie er Dir lauffähig präsentiert wurde?

Ich weiß ja nicht, wo Du die Bezeichnungen herbekommst, aber einiges erscheint mir überarbeitungsbedürftig.

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Sub</span> WieAuchImmer()
<span class="REM">' Makro zum Ausschneiden von doppelten Werten</span>
&nbsp;
<span class="REM">' Hier sollte dann eigentlich die Deklaration der Variablen stehen</span>
<span class="REM">' inklusive der Erkl&auml;rung, wof&uuml;r sie genutzt werden</span>
&nbsp;
<span class="REM">' Bildschirmanzeige ausschalten</span>
Application.ScreenUpdating = <span class="TOKEN">False</span>
<span class="REM">' Z&auml;hler f&uuml;r die Zeilen auf dem Blatt &quot;falsch&quot; auf 1 setzen</span>
D = 1
<span class="REM">' Schleife mit Angabe des Wertebereiches auf den Bl&auml;ttern</span>
<span class="TOKEN">For</span> a = 1 <span class="TOKEN">To</span> 1511
<span class="REM">' Die Firma MS weist in der Online Hilfe darauf hin, das Tabellenblatt</span>
<span class="REM">' wie folgt zu aktivieren</span>
Worksheets(&quot;richtig&quot;).Activate
<span class="REM">' Nun erfolgt Auswahl der Daten in Spalte A, Zeile i</span>
<span class="REM">' mit Zuweisung des Wertes der Zelle an die Variable b</span>
Cells(a, 1).Select
b = ActiveCell.Value
<span class="REM">' Nun wird das Ganze f&uuml;r das Blatt teilweise wiederholt, hier hei&szlig;t Variable c</span>
Worksheets(&quot;teilweise&quot;).Activate
Cells(a, 1).Select
c = ActiveCell.Value
<span class="REM">' Nun folgt der Vergleich, bei Abweichung wird der Wert der Zelle a, 1 auf</span>
<span class="REM">' Blatt &quot;teilweise&quot; ausgeschnitten, das Blatt &quot;falsch&quot; aktiviert, die entsprechende</span>
<span class="REM">' Zelle D in Splate 1 angesprungen und der Wert eingef&uuml;gt. Anschlie&szlig;end wird der</span>
<span class="REM">' Z&auml;hler D um eins erh&ouml;ht und die Schleife beendet</span>
<span class="TOKEN">If</span> c &lt;&gt; b <span class="TOKEN">Then</span>
Selection.Cut
Worksheets(&quot;falsch&quot;).Activate
Cells(D, 1).Select
ActiveSheet.Paste
D = D + 1
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="REM">' Und nun springen wir wieder nach oben, solange die Zeile 1511 nicht erreicht ist</span>
<span class="TOKEN">Next</span> a
<span class="REM">' Da wir ja sehen m&ouml;chten, welche Werte falsch sind, wird nach Abschlu&szlig; die Zeile</span>
<span class="REM">' unter der letzten Eintragung auf dem Blatt &quot;falsch&quot; aktiviert</span>
Worksheets(&quot;falsch&quot;).Activate
Cells(D, 1).Select
<span class="REM">' Die Bildschirmanzeige anschalten</span>
Application.ScreenUpdating = <span class="TOKEN">True</span>
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

Alle Befehle lassen sich im VBA-Editor über den Objektkatalog und die Online Hilfe (so verfügbar) abrufen.

Beispiel ist mit Excel2000 erstellt worden. Um die Beachtung der Einschränkungen von prinzeri wird gebeten, wurden entsprechend übernommen...

<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 wurden in diesem Beitrag der Code für dieses Forum und die Signatur angepasst.<font>

se7en
17.09.2001, 22:38
Ers ma danke für die erklärung.
Übrigens hab ich den Code so übernommen wie er dastand. Ausser das ActiveSheet hab ich verändert. Dann hats korrekt funktioniert.
Danke Jinx und prinzeri natürlich.

jinx
17.09.2001, 23:02
<font size="2" face="Century Gothic">Moin,

ich habe mal den Bildschirm geputzt (ich weiß, ich bin gerade in diesem Bereich sehr genau):

Code prinzeri:
Sheets("richtig").Select
Cells(a, 1).Select

Code se7en:
Sheets("richtig").Select
Sheets("richtig").Cells(a, 1).Select

"so übernommen wie er dastand" - ich weiß nicht, ich weiß nicht....ich glaube nicht!!!

<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 die Signatur angepasst...</font>

se7en
18.09.2001, 15:22
Ah jo sell isch ja net so schlimm.
Hab Excel 97 weisch du...
und de Code vum prinzeri het it funktuniert un dann han i sell do inni gschriebe ;-)
Olles Kloar?

jinx
18.09.2001, 16:18
<font size="2" face="Century Gothic">Moin,

@ all:

Da es sich bei diesem Problem gem. se7en um ein Access-Problem handelt (siehe hier (http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=49070)), wird dieser Beitrag geschlossen.

Access-Problem sollten in dem dafür vorgesehenen Forum gestellt werden!

<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 wurden in diesem Beitrag Links korrigiert, die auf falsche Adressen zeigten und die Signatur angepasst...</font>