Willkommen

Pivottabelle

Spezialfilter

Formeln

Zellformate

Bedingte Formate

Gültigkeit

Programmierung

UDF - Funktionen

Tipps & Tricks

Webabfrage

Fehlersuche

Farbindex

Shortcuts

Limitationen

Downloads

Links

Kontakt

Disclaimer

Impressum

Daten neu anordnen
In Spalte A stehen mehrere gleiche Begriffe nebst verschiedener zugehöriger Werte in Spalte B. In einer neuen Spalte sollen die Begriffe aus Spalte A nur einmal und die Begriffe aus Spalte B rechts davon getrennt durch ein Komma gelistet werden.
 
Die Werte sind nach Spalte A sortiert.
 
 
Tabelle1
 ABCDE
1FirmaStandort FirmaStandort
2Fa. Müller KGHamburg Fa. Müller KGHamburg, Berlin, Bremen
3Fa. Müller KGBerlin Möbelhaus MustermannHannover, Berlin
4Fa. Müller KGBremen Stahlhandel MeierStuttgart, München
5Möbelhaus MustermannHannover   
6Möbelhaus MustermannBerlin   
7Stahlhandel MeierStuttgart   
8Stahlhandel MeierMünchen   
9     
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
 
Das Ergebnis in Spalte D und E.
 
Der Code für ein allgemeines Modul:
 
Public Sub Aufteilung_Trennzeichen_Komma()
'Code für ein allgemeines Modul
'*********************************
'Autor: Jürgen Hennekes
'*********************************
Dim DicScr As Object
Dim lngZQ As Long
Dim lngZZ As Long
 
Set DicScr = CreateObject("Scripting.Dictionary")
 
For lngZQ = 1 To Cells(Rows.Count, 1).End(xlUp).Row
  If DicScr.exists(Cells(lngZQ, 1).Value) = False Then
    DicScr.Add Cells(lngZQ, 1).Value, lngZQ
    lngZZ = lngZZ + 1
      Cells(lngZZ, 4).Value = Cells(lngZQ, 1).Value
      Cells(lngZZ, 5).Value = Cells(lngZQ, 2).Value
        Else
      Cells(lngZZ, 5).Value = Cells(lngZZ, 5).Value & ", " & Cells(lngZQ, 2).Value
   End If
Next
End Sub
 
 
 
Sollen die Werte in getrennte Zellen geschrieben werden, dann so:
 
Public Sub Aufteilung_in_neue_Zelle()
'Code für ein allgemeines Modul
'*********************************
'Autor: Jürgen Hennekes
'*********************************
Dim DicScr As Object
Dim lngZQ As Long
Dim lngZZ As Long
Dim intS As Integer
 
Set DicScr = CreateObject("Scripting.Dictionary")
'intS = 5
 
For lngZQ = 1 To Cells(Rows.Count, 1).End(xlUp).Row
  If DicScr.exists(Cells(lngZQ, 1).Value) = False Then
    DicScr.Add Cells(lngZQ, 1).Value, lngZQ
    lngZZ = lngZZ + 1
    intS = 5
      Cells(lngZZ, 4).Value = Cells(lngZQ, 1).Value
      Cells(lngZZ, 5).Value = Cells(lngZQ, 2).Value
        Else
      intS = intS + 1
      Cells(lngZZ, intS).Value = Cells(lngZQ, 2).Value
  End If
Next
End Sub
 
 
Interessant ist sicherlich auch der umgekehrte Fall.
In Spalte A steht jeder Begriff einmalig, in Spalte B sind mehrere Begriffe durch ein Komma getrennt.
Die Daten sollen in 2 Spalten ( hier D und E ) untereinander angeordnet werden.
 
 
Tabelle3
 ABCDE
1FirmaStandort FirmaStandort
2Fa. Müller KGHamburg, Berlin, Bremen Fa. Müller KGHamburg
3Möbelhaus MustermannHannover, Berlin Fa. Müller KGBerlin
4Stahlhandel MeierStuttgart, München Fa. Müller KGBremen
5   Möbelhaus MustermannHannover
6   Möbelhaus MustermannBerlin
7   Stahlhandel MeierStuttgart
8   Stahlhandel MeierMünchen
9     
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
 
Der Code:
 
Public Sub In_Spalten_anordnen()
'Code für ein allgemeines Modul
'*********************************
'Autor: Jürgen Hennekes
'*********************************
Dim SPL
Dim lngZQ As Long
Dim lngZZ As Long
Dim intZ As Integer
Dim lngLast As Long
 
lngLast = Cells(Rows.Count, 1).End(xlUp).Row
lngZZ = 1
 
For lngZQ = 1 To lngLast
  SPL = Split(Cells(lngZQ, 2), ",")
    For intZ = 0 To UBound(SPL)
      Cells(lngZZ, 4).Value = Cells(lngZQ, 1).Value
      Cells(lngZZ, 5).Value = LTrim(RTrim(SPL(intZ)))
    lngZZ = lngZZ + 1
  Next
Next
 
End Sub
 
 
 
Oder die Daten stehen wie im 2. Beispiel nach Codeausführung "Public Sub Aufteilung_in_neue_Zelle()" jeweils in einer eigenen Zelle.
 
 
Quelle
 ABCD
1FirmaStandort1Standort2Standort3
2Fa. Müller KGHamburgBerlinBremen
3Möbelhaus MustermannHannoverBerlin 
4Stahlhandel MeierStuttgartMünchen 
5    
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
 
 
Die Daten sollen aus dem Tabellenblatt "Quelle" in das Tabellenblatt "Ziel" in Spalte A und B geschrieben werden.
Die Anzahl der Spalten, hier Standorte, ist nicht relevant, da sie vom Code erkannt wird.
 
Der Code:
 
Public Sub In_Spalten_anordnen2()
''Code für ein allgemeines Modul
'*********************************
'Autor: Jürgen Hennekes
'*********************************
Dim wksQ As Worksheet
Dim wksZ As Worksheet
Dim lngZQ As Long
Dim lngZZ As Long
Dim intS As Integer
Dim lngLast As Long
 
Set wksQ = Worksheets("Quelle") '<--- Tabellenblattname bitte anpassen
Set wksZ = Worksheets("Ziel")   '<--- Tabellenblattname bitte anpassen
lngLast = wksQ.Cells(Rows.Count, 1).End(xlUp).Row
lngZZ = 1
 
With wksQ
  For lngZQ = 2 To lngLast
    For intS = 2 To .Cells(lngZQ, Columns.Count).End(xlToLeft).Column
     wksZ.Cells(lngZZ, 1).Value = .Cells(lngZQ, 1).Value
     wksZ.Cells(lngZZ, 2).Value = .Cells(lngZQ, intS).Value
     lngZZ = lngZZ + 1
    Next
  Next
End With
End Sub