Thema Datum  Von Nutzer Rating
Antwort
02.11.2022 15:49:26 Philipp
NotSolved
Blau VBA Vergleich und Ausgabe
02.11.2022 16:53:51 Gast26089
*****
Solved
03.11.2022 08:13:23 Philipp
NotSolved
03.11.2022 11:47:30 Gast23559
NotSolved

Ansicht des Beitrags:
Von:
Gast26089
Datum:
02.11.2022 16:53:51
Views:
271
Rating: Antwort:
 Nein
Thema:
VBA Vergleich und Ausgabe
Option Explicit

Sub Test()
  
  Dim rngName As Excel.Range
  Dim dicData As Object
  
  Set dicData = CreateObject("Scripting.Dictionary")
  
'Daten sammeln
  With Worksheets("Tabelle1")
    For Each rngName In .Range("C2", .Cells(.Rows.Count, "C").End(xlUp))
      
      If dicData.Exists(rngName.Value) = False Then
        Call dicData.Add(Key:=rngName.Value, Item:=CreateObject("Scripting.Dictionary"))
      End If
      
      Dim rngManufacturer As Excel.Range
      Dim rngDevices As Excel.Range
      Dim rngDevice As Excel.Range
      
      Set rngManufacturer = rngName.Offset(0, -1)
      
      With Worksheets("Tabelle2")
        Set rngDevice = .Range("A1", .Range("A1").End(xlToRight)) _
                          .Find(rngManufacturer.Value, , xlValues, xlWhole, xlByColumns, , False)
        If rngDevice Is Nothing Then
          GoTo Continue_ForEach_Name
        End If
        Set rngDevices = .Range(rngDevice.Offset(1), rngDevice.End(xlDown))
      End With
      
      For Each rngDevice In rngDevices
        dicData(rngName.Value)(rngDevice.Value) = dicData(rngName.Value)(rngDevice.Value) + 1
      Next
      
Continue_ForEach_Name:
    Next
  End With
  
'Ausgabe
  Dim rngOutput As Excel.Range
  Dim vntName As Variant
  Dim vntDevice As Variant
  
  Set rngOutput = Worksheets("Tabelle3").Range("A1:C1")
  rngOutput.Value = Array("Name", "Was ist Doppelt", "Anzahl Doppelt")
  
  For Each vntName In dicData
    For Each vntDevice In dicData(vntName)
      If dicData(vntName)(vntDevice) > 1 Then
        Set rngOutput = rngOutput.Offset(1)
        rngOutput.Value = Array(vntName, vntDevice, dicData(vntName)(vntDevice))
      End If
    Next
  Next
  
  rngOutput.EntireColumn.AutoFit
  
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
02.11.2022 15:49:26 Philipp
NotSolved
Blau VBA Vergleich und Ausgabe
02.11.2022 16:53:51 Gast26089
*****
Solved
03.11.2022 08:13:23 Philipp
NotSolved
03.11.2022 11:47:30 Gast23559
NotSolved