Daten suchen und Identische löschen

Bild

Betrifft: Daten suchen und Identische löschen
von: Holger S.
Geschrieben am: 08.11.2003 16:29:05

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.
https://www.herber.de/bbs/user/1808.xls
Danke schon mal im voraus für eure Mühe

Holger S.

Bild


Betrifft: AW: Daten suchen und Identische löschen
von: Martin Bolleter
Geschrieben am: 08.11.2003 17:41:49

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


Bild


Betrifft: AW: Daten suchen und Identische löschen
von: Holger S.
Geschrieben am: 08.11.2003 18:05:14

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.


Bild


Betrifft: AW: Daten suchen und Identische löschen
von: Martin Bolleter
Geschrieben am: 08.11.2003 19:49:03

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


Bild


Betrifft: AW: Daten suchen und Identische löschen
von: Holger S.
Geschrieben am: 08.11.2003 21:17:16

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.


Bild


Betrifft: AW: Daten suchen und Identische löschen
von: Holger S.
Geschrieben am: 08.11.2003 21:23:28

Hallo,
die Zeile funktoniert doch.
Res = Left(Res, Len(Res) - 1)
Sorry war wohl etwas zu schnell

MfG
Holger S.


Bild


Betrifft: AW: Daten suchen und Identische löschen
von: Martin Bolleter
Geschrieben am: 08.11.2003 22:28:53

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


Bild


Betrifft: AW: Daten suchen und Identische löschen
von: Martin Bolleter
Geschrieben am: 08.11.2003 22:32:37

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


Bild


Betrifft: AW: Daten suchen und Identische löschen
von: Holger S.
Geschrieben am: 09.11.2003 00:54:14

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.


Bild


Betrifft: AW: Daten suchen und Identische löschen
von: Martin Bolleter
Geschrieben am: 09.11.2003 14:05:29

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


Bild


Betrifft: Danke
von: Holger S.
Geschrieben am: 10.11.2003 16:31:27

Danke Martin,
das Makro läuft super.

MfG

Holger


Bild

Beiträge aus den Excel-Beispielen zum Thema " Daten suchen und Identische löschen"