Thema Datum  Von Nutzer Rating
Antwort
07.06.2019 11:12:06 Sarah
NotSolved
07.06.2019 18:57:54 Gast56370
NotSolved
Rot Mehrere Einträge zu einer Artikelnummer verketten
08.06.2019 16:57:02 Gast97933
NotSolved

Ansicht des Beitrags:
Von:
Gast97933
Datum:
08.06.2019 16:57:02
Views:
415
Rating: Antwort:
  Ja
Thema:
Mehrere Einträge zu einer Artikelnummer verketten

Mit dieser Daten-Tabelle als Beispiel : Spalte MNR muss sortiert vorliegen!

MNR KTXT SETMNR
51-7498/41   89-3329/34
51-7498/41   61-4886/30
51-7498/41   97-2348/43
51-7498/41   65-2650/78
64-7901/28   77-3895/85
64-7901/28   37-3493/28
64-7901/28   16-8818/74
26-2238/71   38-2828/18
26-2238/71   85-4956/59
26-2238/71   67-1596/53
26-2238/71   20-2569/14
26-2238/71   10-8498/26
26-2238/71   99-4325/89
26-2238/71   36-5053/84
49-1650/62   24-9814/83
49-1650/62   84-5859/81
49-1650/62   33-4095/47

und dem Makro:

Option Explicit

Public Sub BlaBlub()
  
  Dim dic         As Object
  Dim rngCell     As Excel.Range
  Dim rngCellRef  As Excel.Range
  Dim key         As String
  Dim val         As String
  
  Set rngCellRef = Range("A2")        'erste Daten-Zelle in Spalte MNR
  Set rngCell = rngCellRef.Offset(1)
  
  Set dic = CreateObject("Scripting.Dictionary")
  
  Do While rngCell.Text <> ""
    
    key = rngCell.Text              'MNR
    val = rngCell.Offset(, 2).Text  'SETMNR ... Spalte MNR -> '2 nach rechts' -> Spalte SETMNR
    
    If rngCell.Text <> rngCellRef.Text Then
    'MNR hat sich geändert!
      Set rngCellRef = rngCell
    End If
    
    'sicherstellen, dass MNR in der Liste existiert
    'und initialisiert ist
    If Not dic.Exists(key) Then
      Call dic.Add(key, CreateObject("Scripting.Dictionary"))
    End If
    
    'SETMNR zuorden zu MNR
    Call dic(key).Add(dic(key).Count, val)
    
    'nächste Zelle
    Set rngCell = rngCell.Offset(1)
  Loop
  
  Dim mnr As Variant
  
  For Each mnr In dic
    Debug.Print "'"; mnr; "'", " := "; Join(dic(mnr).items, "; ")
  Next
  
End Sub

kommt man dann zu dieser Ausgabe:

'51-7498/41'   := 61-4886/30; 97-2348/43; 65-2650/78
'64-7901/28'   := 77-3895/85; 37-3493/28; 16-8818/74
'26-2238/71'   := 38-2828/18; 85-4956/59; 67-1596/53; 20-2569/14; 10-8498/26; 99-4325/89; 36-5053/84
'49-1650/62'   := 24-9814/83; 84-5859/81; 33-4095/47

Anstatt die Ausgabe wie hier ins Direktfenster zu schreiben, schreibst du das dann halt in Spalte F.


Deinen Code habe ich nur überflogen, aber nicht weiter angesehen - sieht zudem nach Makro-Rekorder aus... was zumindest den Job erledigen sollte.

 

Grüße


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
07.06.2019 11:12:06 Sarah
NotSolved
07.06.2019 18:57:54 Gast56370
NotSolved
Rot Mehrere Einträge zu einer Artikelnummer verketten
08.06.2019 16:57:02 Gast97933
NotSolved