Office: (Office 2007) Doppelte Einträge aus eindimensionalem Array aussortieren

Helfe beim Thema Doppelte Einträge aus eindimensionalem Array aussortieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Ich habe schon einiges jetzt gelesen wie manche doppelte Werte aus Arrays entfernen. Hierzu fand ich folgenden Schnipsel der mir am Besten gefiel:... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Tuereintreter, 6. August 2011.

  1. Doppelte Einträge aus eindimensionalem Array aussortieren


    Ich habe schon einiges jetzt gelesen wie manche doppelte Werte aus Arrays entfernen. Hierzu fand ich folgenden Schnipsel der mir am Besten gefiel:

    Code:
    den wollte ich für meinen Code in einem Modul verwenden und änderte ihn wie folgt ab:

    Code:
    Aufgerufen wird das ganze so:

    Code:
    Die MsgBox soll mir dann den neuen Inhalt des Arrays anzeigen. Leider ist er der Selbe wie zuvor. Bin nicht der Spezi in diesem Bereich von VBA und wäre um jede Hilfe dankbar.

    Gruß

    :)
     
    Tuereintreter, 6. August 2011
    #1
  2. Hallo ?,

    das geht z. B. so.

    ' **********************************************************************
    ' Modul: Modul1 Typ: Allgemeines Modul
    ' **********************************************************************

    Option Explicit

    Sub test()
    Dim vntTmp As Variant

    vntTmp = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
    vntTmp = UniqueArray(vntTmp)

    Range("B1").Resize(UBound(vntTmp, 1), 1) = vntTmp

    End Sub

    Public Function UniqueArray(src As Variant) As Variant
    'Quelle herber.de
    'Idea by ransi
    Dim SCRDIC
    Dim L As Long
    Dim bDim As Boolean

    Set SCRDIC = CreateObject("Scripting.dictionary")

    If GetArrayDimension(src) > 1 Then
    bDim = True
    src = Application.Transpose(src)
    End If

    On Error Resume Next

    For L = 1 To UBound(src)
    SCRDIC.Add src(L), 0
    Next

    On Error GoTo 0

    If bDim Then
    UniqueArray = Application.Transpose(SCRDIC.keys)
    Else
    UniqueArray = SCRDIC.keys
    End If

    Set SCRDIC = Nothing
    End Function

    Public Function GetArrayDimension(vArray As Variant) As Long
    'Dimensionen eines Arrays ermitteln
    'Quelle ActiveVB
    'by pks
    Dim i As Long, j As Long

    On Error GoTo mEnd

    For i = 1 To 65
    j = UBound(vArray, i)
    Next

    mEnd:
    GetArrayDimension = i - 1

    On Error GoTo 0
    End Function





    « Gruß Sepp »
     
    josef e, 7. August 2011
    #2
  3. Sieht gut aus funktioniert aber nicht.
     
    Tuereintreter, 7. August 2011
    #3
  4. Doppelte Einträge aus eindimensionalem Array aussortieren

    Hallo ?,

    Antworten wie "funktioniert nicht" liebe ich, da weiß man gleich woran es happert.

    Lade eine Beispieltabelle hoch, in der es nicht funktioniert.




    « Gruß Sepp »
     
    josef e, 8. August 2011
    #4
  5. Hatte es mal so versucht, klappte aber nicht. Muß mich mal 2 Tage in Dictionarys reinlesen bevor ich weiter mache. Scheint die einzige Lösung zu sein:

    Code:
     
    Tuereintreter, 9. August 2011
    #5
  6. Vielleicht sollte ich den Denkansatz verändern. Also-dann hole ich mal etwas weiter aus:

    Meine Mappe enthält Positionen für ein Angebot aka:

    Pos. Bezeichnung Einheit Menge EP GP

    Das Makro liest alle Positionen aus und listet sie in einer ListBox und pro Pos. auf einemseperaten Tab. Man kann nun einzelne Zeilen in der ListBox anklicken und dabei werden die Infos aus der LB in 4 txtB und in zwei CmbB eingetragen. Zusätzlich werden den Comboboxen alle Werte der betreffenden Pos. übergeben damit der Benutzer daraus später wählen kann. Jetzt tauchen aber in CB1 für "Einheit" auch mal doppelte Einträge auf da sie halt mal so in der Mappe stehen und in der CB2 für "Menge" eben auch sehr oft die "1". Mittels Array und einer Function wollte ich die doppelten Einträge löschen.

    Derzeit versuche ich das die doppelten Einträge erst gar nicht in der ComboBox erscheinen.

    Gruß
     
    Tuereintreter, 9. August 2011
    #6
  7. Ich hätte mal einen ganz anderen Lösungsansatz als die gezeigten Umschichtereien: In einer SQL-Anweisung kann man ganz einfach sortieren und Duplikate entfernen.

    Annahmen:
    - Arbeitsblatt heißt Tabelle1.
    - Die zu verarbeitenden Werte stehen in Spalte A (ab Zeile 1, d.h. ohne Spaltentitel).
    - Die Ausgabe des Ergebnisses erfolgt in Spalte B (ab Zeile 1)
    Code:
     
  8. Doppelte Einträge aus eindimensionalem Array aussortieren

    Hm, habe viel um die Ohren. werde aber nicht locker lassen. Wenn ich das Ergebnis habe poste ich eine Lösung. Dann hat jeder was davon.

    Gruß
     
    Tuereintreter, 9. August 2011
    #8
Thema:

Doppelte Einträge aus eindimensionalem Array aussortieren

Die Seite wird geladen...
  1. Doppelte Einträge aus eindimensionalem Array aussortieren - Similar Threads - Doppelte Einträge eindimensionalem

  2. Textverketten bei doppelten einträgen

    in Microsoft Excel Hilfe
    Textverketten bei doppelten einträgen: Hallo, unter 2. Mahnung habe ich unter Mahndatum folgende Formel: =WENN(A2="";"";TEXTVERKETTEN(", ";WAHR;FILTER(TEXT(Rechnung[1....
  3. Doppelte Einträge verhindern ohne Primärschlüssel

    in Microsoft Access Hilfe
    Doppelte Einträge verhindern ohne Primärschlüssel: Folgendes Problem: habe ein Tabellenfeld (Zahl) ohne Primärschlüssel. Wie kann ich doppelte Einträge verhindern, indem ich auswählen kann ob ja oder nein (Doppelte Einträge sollen grundsätzlich...
  4. Doppelter Eintrag einer Auftragsnummer

    in Microsoft Excel Hilfe
    Doppelter Eintrag einer Auftragsnummer: Hallo! Ich habe folgendes Problem, und zwar muss ich die Spalte O per VBA auf doppelte Einträge kontrollieren. Die Einträge sind Kombinationen aus Buchstaben und Zahlen. zB EL021018 oder S250125...
  5. Outlook 2019 - Kalenderproblem mit mehreren Mail-Adressen

    in Microsoft Outlook Hilfe
    Outlook 2019 - Kalenderproblem mit mehreren Mail-Adressen: Hallo, ich benutze Outlook von Office 2019. Dort habe ich eine Gmail-Adresse und eine weitere E-mail-Adresse über Microsoft Exchange angemeldet. Wenn ich Termine an die Gmail-Adresse gesendet...
  6. Excel-Tabelle: Spalten-Überschrift doppelt eintragen

    in Microsoft Excel Hilfe
    Excel-Tabelle: Spalten-Überschrift doppelt eintragen: Hallo, folgendes: ich erstelle eine Tabelle mit Spalten-Überschriften. Als Überschrift steht dort in drei Spalten (Beispiel) 1 - 2 - 3. In den nächsten Spalten soll ebenfalls 1 - 2 - 3 stehen....
  7. Abfrage mit mehreren Spalten, DISTINCT nur auf eine Spalte anwenden

    in Microsoft Access Hilfe
    Abfrage mit mehreren Spalten, DISTINCT nur auf eine Spalte anwenden: Hi, ich schreib gerade an einem Programm zur Arbeitszeiterfassung. Hierzu nutze ich eine Access-Datenbank. Die gespeicherten Daten stehen in der Tabelle tbl_Zeiten. [ATTACH] Nun...
  8. Liste mit doppelten Einträge

    in Microsoft Excel Hilfe
    Liste mit doppelten Einträge: Hallo :) Ich habe eine vertikale Liste mit Namen die vereinzelt mehrfach vorkommen können. Nun möchte ich zur Übersicht auf einem anderen Blatt all diese Namen in der richtigen Reihenfolge mit...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden