Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: superkot1 am März 14, 2014, 22:33:18 Nachmittag

Titel: Spalte mit mehreren Komma getrennten Daten in mehreren Zeilen vereinen !
Beitrag von: superkot1 am März 14, 2014, 22:33:18 Nachmittag
Hallo Liebe Excel Profi,

nach mehreren Kopfzerbrechenden Stunden des Nachdenken wende ich mich nun doch ans www

Ich habe eine Produktdatenbank mit über 8000 Zeilen, im Anhang habe ich einen kleinen Beispielausschnitt beigefügt.

Mein Ziel ist es die , getrennten Daten in Spalte B alle untereinander u bekommen sodass jede " K-Typ Nummer" in einer Zeile steht.

Im unteren Bereich der Datei habe ich ein Ziel einmal dargestellt wie es aussehen sollte, wer von euch hat einen kompetenten Tipp für mich?

Vielen Dank
Gruß Flo
Titel: Antw: Spalte mit mehreren Komma getrennten Daten in mehreren Zeilen vereinen !
Beitrag von: maninweb am März 15, 2014, 10:40:51 Vormittag
Hallo Flo,

ein Makro kann da behilflich sein. Anbei Deine Datei mit folgendem Makro.
Code: Visual Basic
  1.   Sub DatenSeparieren()
  2.    
  3.     Dim lngCurrent  As Long
  4.     Dim lngIndex    As Long
  5.     Dim lngRow      As Long
  6.     Dim lngLast     As Long
  7.    
  8.     Dim strSource   As String
  9.     Dim strTarget   As String
  10.    
  11.     Dim strProduct  As String
  12.     Dim strType()   As String
  13.    
  14. '   Tabellennamen...
  15.    
  16.     strSource = "Quelle"
  17.     strTarget = "Ziel"
  18.    
  19. '   Letzte Zeile...
  20.    
  21.     lngLast = ThisWorkbook.Worksheets(strSource) _
  22.              .Cells(Rows.Count, 1).End(xlUp).Row
  23.    
  24. '   Reset...
  25.    
  26.     lngCurrent = 2
  27.    
  28. '   Durchlaufen...
  29.    
  30.     With ThisWorkbook.Worksheets(strSource)
  31.    
  32.       For lngRow = 2 To lngLast
  33.        
  34.         strProduct = Trim(.Cells(lngRow, 1).Value)
  35.         strType = Split(Trim(.Cells(lngRow, 2).Value), ",")
  36.        
  37. '       Schreiben...
  38.        
  39.         For lngIndex = LBound(strType) To UBound(strType)
  40.          
  41.           If Len(Trim(strType(lngIndex))) > 0 Then
  42.            
  43.             ThisWorkbook.Worksheets(strTarget) _
  44.            .Cells(lngCurrent, 1).Value = strProduct
  45.            
  46.             ThisWorkbook.Worksheets(strTarget) _
  47.            .Cells(lngCurrent, 2).Value = Trim(strType(lngIndex))
  48.            
  49.             lngCurrent = lngCurrent + 1
  50.            
  51.           End If
  52.          
  53.         Next
  54.        
  55.       Next
  56.    
  57.     End With
  58.    
  59.   End Sub
Gruß