Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
332to336
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
332to336
332to336
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Daten suchen und Identische löschen

Daten suchen und Identische löschen
08.11.2003 16:29:05
Holger S.
Hallo,
hatte mich heute morgen schon mal an euch gewendet, aber hatte da einen fehler
gemacht, deshalb versuche ich es nochmal.
Ich hoffe ihr könnt mir helfen
Ich brauch für meine Tourenplanung, zu der gehörigen Tour Nr. alle Kunden die auf der Tour sind. Leider haben unsere Kunden Nachbestellungen und kommen öfters auf der Tour vor. Diese möchte ich in meiner Tourenplanung verhindern, dort brauche ich nur den Kunden einmal.Jetzt möchte ich über ein Makro alle Kunden zu der Tour von einem anderen Blatt suchen und doppelte Namen nicht wieder geben.
Das Makro sollte alle TourenNr. überprüfen und die Kunden ausgeben.
schaut euch mal meine Tabelle an dann seht ihr mein Problem.

Die Datei https://www.herber.de/bbs/user/1808.xls wurde aus Datenschutzgründen gelöscht

Danke schon mal im voraus für eure Mühe

Holger S.

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten suchen und Identische löschen
08.11.2003 17:41:49
Martin Bolleter
Hallo Holger

ich hab mir deine Tabelle angeschaut, aber da sind verschiedene Dinge noch unklar. Vieleicht solltest du versuchen, genau zu beschreiben, was das Makro Schritt für Schritt tun soll, nicht nur das Ergebnis.
Folgendes ist mir zB unklar:
In der Tabelle Tourenplanung stehen in der Spalte TourNr praktisch keine Einträge. Woher also soll das Makro wissen, nach welcher TourNr es suchen soll?
In der Tabelle SAP hast du irgendwie ein Problem mit den Umlauten, es stehen dafür seltsame Zeichen. Was ist damit?
Ausserdem gibt es in der Tabelle SAP "doppelte" Einträge für Kunden, die sich allerdings doch leicht unterscheiden. zB: "AKZENTA MARKT H SCHWELM" und "AKZENTA MARKT ( SCHWELM". Das dürfte zwar wohl der gleiche Kunde sein, ein Makro würde die beiden Einträge aber nicht als "gleich" betrachten!

Gruss
Martin
Anzeige
AW: Daten suchen und Identische löschen
08.11.2003 18:05:14
Holger S.
Hallo Martin,
die Tabelle SAP bekomme ich von SAP überspielt.
In der Spalte TourNr. steht jewiels eine sechsstellige Tour Nr. ( Spalte G) neben dem Namen.
Diese Nr. ist die Tour die der Fahrer fährt und alle Kunden auf der Tour haben diese Tour NR..
Das Makro sollte aus Spalte G in der Tabelle Tourenplanung die Tour Nr. einlesen,
und alle Kunden mit dieser Tour Nr. aus dem Tabellenblatt SAP einlesen, wobei die doppelten nicht eingelesen werden sollen ( Identische Kunden ).
Diese Kunden sollte mir das Makro auf dem Tabellenblatt Tourenplanung in Spalte H ( 1. Tour ) in eine bzw. in zwei Zellen hinter der Tour Nr. schreiben.
Und das das ganze Blatt mit der Tour Nr. die Kzunden raussuchen vom Blatt SAP.
Holger S.
Anzeige
AW: Daten suchen und Identische löschen
08.11.2003 19:49:03
Martin Bolleter
Hallo Holger

leider hast du meine Fragen nicht beantwortet :-(
Wie kommen die TourNr in die Tabelle Tourenplanung? Die Spalte G ist nämlich leer!
Was ist mit den "fast gleichen" Kundennamen? Und den falschen Umlauten?

Ich habe mal trotzdem ein makro versucht, das folgendes macht:
Setze den Cursor in Tabelle Tourenplanung in eine Zeile, in der die Spalte G (TourNr) ausgefüllt ist, und starte das Makro. Es sucht dir die Kunden zusammen und füllt sie in Spalte H:


Sub KundenSuchen()
Dim i&, j%, letzte&, Tour, Kunde$(100), Anz%, Res$, found As Boolean
Tour = Cells(ActiveCell.Row, 7).Value
letzte = Worksheets("SAP").Cells(65536, 8).End(xlUp).Row
For i = 3 To letzte
If Worksheets("SAP").Cells(i, 8).Value = Tour Then
found = False
For j = 1 To Anz
If Worksheets("SAP").Cells(i, 9).Value = Kunde(j) Then
found = True
Exit For
End If
Next j
If Not found Then
Anz = Anz + 1
Kunde(Anz) = Worksheets("SAP").Cells(i, 9).Value
End If
End If
Next i
For i = 1 To Anz
Res = Res & Kunde(i) & vbCr
Next i
Res = Left(Res, Len(Res) - 1)
Cells(ActiveCell.Row, 8).Value = Res
End Sub


Melde dich, wie's weiter gehen soll.
Gruss
Martin
Anzeige
AW: Daten suchen und Identische löschen
08.11.2003 21:17:16
Holger S.
Hallo Martin,

das Makro läuft,bis auf diese Zeile
Res = Left(Res, Len(Res) - 1)
Kann man dem Makro noch sagen es soll die Spalte G ( Tour Nr. )
abarbeiten. Es soll eine Tour Nr. nach der anderen abgearbeitet werden.
Jetzt muss ich die Zelle mit der Tour Nr. aktivieren dann läuft das Makro nur für diese Tour Nr.. Das müsste in einer Schleife gehen bis ich in Zelle G 70 ankomme.
G 70 wiel auch die fahrer Urlaub oder Krank sind dann steht in der Zelle keine Tour Nr.
Nun zu den Antworten
Die Tour Nr. muss man von Hand eingeben.Wird bei der Tourenplanung in SAP festgelegt.
Die Umlaute rühren daher, das Blatt SAP sind Daten die von SAP überspielt werden, ich vermute das Excel und SAP bei den Umlauten sich nicht verstehen.

Ich hoffe Du kannst mit meinen angaben was anfangen.

Super das Du dir soviel Zeit für mich nimmst.
Danke für deine Mühe.

Holger S.
Anzeige
AW: Daten suchen und Identische löschen
08.11.2003 21:23:28
Holger S.
Hallo,
die Zeile funktoniert doch.
Res = Left(Res, Len(Res) - 1)
Sorry war wohl etwas zu schnell

MfG
Holger S.
AW: Daten suchen und Identische löschen
08.11.2003 22:28:53
Martin Bolleter
Hallo Holger

ich habe das Makro abgeändert, so dass es in tabelle Tourenplanung alle Zellen in Spalte G abläuft, und wenn etwas darin steht, sucht es die zugehörigen Kunden. Aktuell lasse ich es bei Zeile 12 beginnen (wegen deiner Beispieltabelle), du musst das evtl anpassen in der Zeile "For k=12 to letzteT":


Sub KundenSuchen()
Dim i&, j%, k&, letzte&, letzteT&, Tour, Kunde$(100), Anz%, Res$, found As Boolean
letzte = Worksheets("SAP").Cells(65536, 8).End(xlUp).Row
letzteT = Cells(65536, 7).End(xlUp).Row
For k = 12 To letzteT
If Not IsEmpty(Cells(k, 7)) Then
Tour = Cells(k, 7).Value
For i = 81 To letzte
If Worksheets("SAP").Cells(i, 8).Value = Tour Then
found = False
For j = 1 To Anz
If Worksheets("SAP").Cells(i, 9).Value = Kunde(j) Then
found = True
Exit For
End If
Next j
If Not found Then
Anz = Anz + 1
Kunde(Anz) = Worksheets("SAP").Cells(i, 9).Value
End If
End If
Next i
For i = 1 To Anz
Res = Res & Kunde(i) & vbCr
Next i
If Res <> "" Then Res = Left(Res, Len(Res) - 1)
Cells(k, 8).Value = Res
Cells(k, 8).Rows.AutoFit    'Passt die Zeilenhöhe an
End If
Next k
End Sub


Hoffentlich klappt's.
Gruss
Martin
Anzeige
AW: Daten suchen und Identische löschen
08.11.2003 22:32:37
Martin Bolleter
Hallo Holger
sorry, war noch ein Fehler drin!


Sub KundenSuchen()
Dim i&, j%, k&, letzte&, letzteT&, Tour, Kunde$(100), Anz%, Res$, found As Boolean
letzte = Worksheets("SAP").Cells(65536, 8).End(xlUp).Row
letzteT = Cells(65536, 7).End(xlUp).Row
For k = 12 To letzteT                   ' alle Zellen in Tourenplanung Spalte G
If Not IsEmpty(Cells(k, 7)) Then
Tour = Cells(k, 7).Value
For i = 3 To letzte
If Worksheets("SAP").Cells(i, 8).Value = Tour Then
found = False
For j = 1 To Anz
If Worksheets("SAP").Cells(i, 9).Value = Kunde(j) Then
found = True
Exit For
End If
Next j
If Not found Then
Anz = Anz + 1
Kunde(Anz) = Worksheets("SAP").Cells(i, 9).Value
End If
End If
Next i
For i = 1 To Anz
Res = Res & Kunde(i) & vbCr
Next i
If Res <> "" Then Res = Left(Res, Len(Res) - 1)
Cells(k, 8).Value = Res
Cells(k, 8).Rows.AutoFit        'Passt die Zeilenhöhe an
End If
Next k
End Sub


Gruss
Martin
Anzeige
AW: Daten suchen und Identische löschen
09.11.2003 00:54:14
Holger S.
Hallo Martin,
Das Makro löscht sein ersten Satz nicht,es übernimmt die daten weiter und hängt die neuen hinten dran.
z.b die ersten Kunden sind Wal Mart, Kaufpark Hagen diese Kunden bleiben immer vorne stehen.
Müssen aber gelöscht werden weil bei der nächsten Tour Nr. sind es ja andere Kunden.
Finde ich Super das Du mir hilfst.
MfG

Holger S.
AW: Daten suchen und Identische löschen
09.11.2003 14:05:29
Martin Bolleter
Hallo Holger

du hast recht, da fehlte noch eine Rückstellung am anfang der ersten Schleife. Jetzt sollte es besser klappen:


Sub KundenSuchen()
Dim i&, j%, k&, letzte&, letzteT&, Tour, Kunde$(100), Anz%, Res$, found As Boolean
letzte = Worksheets("SAP").Cells(65536, 8).End(xlUp).Row
letzteT = Cells(65536, 7).End(xlUp).Row
For k = 12 To letzteT                   ' alle Zellen in Tourenplanung Spalte G
If Not IsEmpty(Cells(k, 7)) Then
Tour = Cells(k, 7).Value
Res = ""
Anz = 0
For i = 3 To letzte
If Worksheets("SAP").Cells(i, 8).Value = Tour Then
found = False
For j = 1 To Anz
If Worksheets("SAP").Cells(i, 9).Value = Kunde(j) Then
found = True
Exit For
End If
Next j
If Not found Then
Anz = Anz + 1
Kunde(Anz) = Worksheets("SAP").Cells(i, 9).Value
End If
End If
Next i
For i = 1 To Anz
Res = Res & Kunde(i) & Chr(10)
Next i
If Res <> "" Then Res = Left(Res, Len(Res) - 1)
Cells(k, 8).Value = Res
Cells(k, 8).Rows.AutoFit        'Passt die Zeilenhöhe an
End If
Next k
End Sub


Gruss
Martin
Anzeige
Danke
10.11.2003 16:31:27
Holger S.
Danke Martin,
das Makro läuft super.

MfG

Holger

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige