Makro erstellen, Sortierung von Datenwerten

Bild

Betrifft: Makro erstellen, Sortierung von Datenwerten
von: Adrian
Geschrieben am: 29.07.2015 11:39:16

Hallo Liebes Forum,
leider reichen meine Makro Fähigkeiten nicht aus un ich hoffe Ihr könnt mir bei diesem Problem helfen.
Es handelt sich um eine Tabelle mit Bestellnummern, Artikeln und dazugehörigen Preisen.
Die Anfordorderungen sind nun die folgenden:
1: Suche den teuersten Artikel einer Bestellnummer
2. Lösche die anderen Artikel bzw. Zeilen mit der gleichen Bestellnummer, die nicht am teuersten sind
3. Schreibe in die Spalte Beschreibung alle Artikel einer Bestellnummer und trenne sie durch ein Komma
Ich habe unter dem folgenden Link die beiden Tabellen, sprich die Vorher und Nachher Sicht eingestellt. Die Spaltennamen sind noch nicht klar, aber man kann Sie dann ja später im Snippet durch die richtigen ersetzen.
Es wäre klasse, wenn mir einer helfen kann.
https://www.herber.de/bbs/user/99145.xlsx
Viele Grüße,
Adrian

Bild

Betrifft: AW: Makro erstellen, Sortierung von Datenwerten
von: Daniel
Geschrieben am: 29.07.2015 12:33:03
Hi
ich hoffe dir ist klar, dass du Schritt 3 vor Schritt 2 ausführen musst ;-)
bei "Excel-gut/VBA-nein" ist es am hilfreichsten, wenn du dir erstmal überlegst, wie du die Aufgabe mit Excel am schnellsten und einfachsten löst.
Das nachstellen dieser Schritte mit VBA ist dann oft gar nicht so kompliziert.
1. sortiere die Liste nach Bestellnummer und Artikelpreis-absteigend, so dass innerhalb einer Bestellnummerngruppe der höchste Preis oben steht.
2. füge am Tabellenende folgende Formel an, welche die Artikel zu einer Bestellnummer nach oben hin sammelt (Formel für D8)
=$B8&WENN($A8=$A9;", "&D9;"")
ziehe die Formel bis zum Tabellenende , kopiere sie und füge sie an gleicher Stelle als Wert ein
3. wende auf die Tabelle die Funktion DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN an, mit Spalte Bestellnummer als Kriterium
sieht als Code dann so aus (für dein Beispiel)


Sub test()
With Cells(8, 1).CurrentRegion
    .Sort Key1:=.Cells(1, 1), order1:=xlAscending, _
          Key2:=.Cells(1, 3), order2:=xlDescending, Header:=xlNo
    With .Columns(.Columns.Count).Offset(0, 1)
        .FormulaR1C1 = "=RC2&IF(RC1=R[1]C1,"", ""&R[1]C,"""")"
        .Formula = .Value
        .EntireRow.RemoveDuplicates 1, xlNo
    End With
End With
End Sub
Gruß Daniel

Bild

Betrifft: AW: Makro erstellen, Sortierung von Datenwerten
von: Adrian
Geschrieben am: 29.07.2015 13:52:32
Vielen Dank!!! Ich teste das gleich mal.

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Makro erstellen, Sortierung von Datenwerten"