Microsoft Excel

Herbers Excel/VBA-Archiv

Zellinhalte vergleichen und in 3. Spalte ausgeben


Betrifft: Zellinhalte vergleichen und in 3. Spalte ausgeben
von: egome90
Geschrieben am: 29.11.2018 13:55:52

Hallo zusammen,

Ich bin mit meinen eher rudimentären VBA-Kenntnissen bei folgendem Problem nun wirklich am Ende. Ich habe folgendes Problem vorliegen und benötige darin dringend Unterstützung.

In der ersten Spalte (SpalteA) stehen in jeder Zelle mehrere dreistellige Zahlenwerte welche mit einem "|" voneinander getrennt werden.

In der zweiten Spalte (SpalteB) stehen erneut in jeder Zelle mehrere dreistellige Zahlenwerte wieder durch ein "|" voneinander getrennt.

Die Dritte Spalte sollte nun zeilenweise die Zahlenwerte anzeigen, welche in Spalte B vorhanden und nicht in der SpalteA vorhanden sind.

Eine Beispieldatei habe ich angehängt.

Super, Danke
Gruß

http://www.herber.de/bbs/user/125765.xlsx

  

Betrifft: AW: Zellinhalte vergleichen und in 3. Spalte ausgeben
von: Rudi Maintaire
Geschrieben am: 29.11.2018 14:25:58

Hallo,

Function NotUsed(txtA As String, txtB As String) As String
  Dim objA As Object, objB As Object, oObj
  Dim arrTmp
  Dim i As Integer

  Const strDELIM As String = "|"
  Set objA = CreateObject("scripting.dictionary")
  Set objB = CreateObject("scripting.dictionary")

  arrTmp = Split(txtA, strDELIM)
  For i = 0 To UBound(arrTmp)
    objA(arrTmp(i)) = 0
  Next i

  arrTmp = Split(txtB, strDELIM)
  For i = 0 To UBound(arrTmp)
    objB(arrTmp(i)) = 0
  Next i

  For Each oObj In objB
    If objA.exists(oObj) Then objB.Remove (oObj)
  Next oObj

  NotUsed = Join(objB.keys, strDELIM)

End Function

Gruß
Rudi


  

Betrifft: AW: Zellinhalte vergleichen und in 3. Spalte ausgeben
von: egome90
Geschrieben am: 30.11.2018 11:22:57

Hallo Rudi,

Danke für deine schnelle Rückmeldung. Den Ablauf des Makros kann ich ungefähr nachvollziehen, jedoch gelingt es mir nicht die Function zum Laufen zu bringen.

Wärst du noch so freundlich und würdest mir Beispielhaft den VBA-Code in die Beispieldatei integrieren, damit ich die dir eine hoffentlich positive Rückmeldung zur Funktion des Codes geben kann ?

Die Funktion würde ich gerne in Modul packen. Wie steuer ich die Funktion dann an ?

Danke, Gruß Erich


  

Betrifft: AW: Zellinhalte vergleichen und in 3. Spalte ausgeben
von: egome90
Geschrieben am: 30.11.2018 11:34:26

Hallo Rudi,

Habs nun hinbekommen! Besten Dank dir das Makro funktioniert herrlich.

Wünsche dir ein schönes Wochenende!!

Gruß Erich


  

Betrifft: AW: Zellinhalte vergleichen und in 3. Spalte ausgeben
von: Günther
Geschrieben am: 29.11.2018 14:27:10

Moin,
wenn ich etwas wie dieses lese: "...und benötige darin dringend Unterstützung" dann lies dir doch einmal das hier durch: http://www.excel-ist-sexy.de/forenhilfe/eilt-wichtig/

... und welch Zufall, der Betreiber dieses Forums ist ein Dienstleister in Sachen Excel!


  

Betrifft: AW: ohne Dictionary
von: Fennek
Geschrieben am: 29.11.2018 15:39:58


Sub Asculap()
Z = Split(Cells(1, 2), "|")
L = Split(Cells(1, 1), "|")

For i = 0 To UBound(L)
    Z = Filter(Z, L(i), False)
Next i

Debug.Print Join(Z, "|")
End Sub