Hallo Weserich
 irgendwie kommen immer wieder Unterschlagungen von Programmteilen vor, wenn ich ein Makro in dieses Forum stelle. Ich weiß nicht, woran es liegt. Ich kann dies erst nach dem Absenden kontrollieren. Falls wieder Fehler auftreten, mache ich aus der Sendung mehrere Teilsendungen, die du zusammenführen musst.
 Sub Test_Kostenstellen()
 Dim b(), c()
 a = ActiveSheet.Name
 gef = False
 For Each ws In Worksheets
 If "Tabelle2" = ws.Name Then
     gef = True
     Worksheets("Tabelle2").Cells.Clear
     Exit For
 End If
 Next
 If gef = False Then
     Set NewSheet = Worksheets.Add
     ActiveSheet.Name = "Tabelle2"
 End If
 Worksheets(a).Activate
 lz = Cells(Rows.Count, 1).End(xlUp).Row
 ReDim b(lz), c(0)
 For i = 1 To lz
     b(i) = Cells(i, 1)
 Next i
 For k = 0 To lz - 1
     For i = k + 1 To lz
         If b(i)  b(i) Then
         d = d + 1
         ReDim Preserve c(d)
         c(d) = b(i)
     End If
 Next i
 For i = 1 To d
     lz2 = Worksheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Row
     If lz2 <> 1 Then lz2 = lz2 + 1
     Worksheets("Tabelle2").Cells(lz2, 1) = c(i)
     For j = 1 To lz
         If Cells(j, 1) = c(i) Then
             lz2 = lz2 + 1
             Worksheets("Tabelle2").Cells(lz2, 1) = Cells(j, 3)
         End If
     Next j
 Next i
 Worksheets("Tabelle2").Activate
 End Sub
 
 Gruß
 Holger
 
 
 Weserich schrieb am 13.08.2008 18:09:37:
 
 Hallo Holger,
 
 vielen Dank für deine Lösung.
 Leider gibt es bei der letzten for...next schleife ein problem.
 VB führt den code nicht aus, weil ihm das"next" fehlt.
 Ganz einleuchten tut mir diese Fehlermeldung nicht, weil ja die next Anweisung am ende vorliegt.
 
 Was kann ich tun?
 
 
 
 
 Holger schrieb am 12.08.2008 14:53:32:
 
 Hallo weserich,
 ich nehme an, das Ziel Tabellenblatt soll "Tabelle2" heißen. Wenn es nicht existiert, soll es erzeugt werden. Wenn es existiert, sollen die alten Werte vor dem Einfügen der neuen Werte gelöscht werden.
 
 Sub Test_Kostenstellen()
 Dim b(), c()
 a = ActiveSheet.Name
 gef = False
 For Each ws In Worksheets
 If "Tabelle2" = ws.Name Then
     gef = True
     Worksheets("Tabelle2").Cells.Clear
     Exit For
 End If
 Next
 If gef = False Then
     Set NewSheet = Worksheets.Add
     ActiveSheet.Name = "Tabelle2"
 End If
 Worksheets(a).Activate
 lz = Cells(Rows.Count, 1).End(xlUp).Row
 ReDim b(lz), c(0)
 For i = 1 To lz
     b(i) = Cells(i, 1)
 Next i
 For k = 0 To lz - 1
     For i = k + 1 To lz
         If b(i)  b(i) Then
         d = d + 1
         ReDim Preserve c(d)
         c(d) = b(i)
     End If
 Next i
 For i = 1 To d
     lz2 = Worksheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Row
     If lz2 <> 1 Then lz2 = lz2 + 1
     Worksheets("Tabelle2").Cells(lz2, 1) = c(i)
     For j = 1 To lz
         If Cells(j, 1) = c(i) Then
             lz2 = lz2 + 1
             Worksheets("Tabelle2").Cells(lz2, 1) = Cells(j, 3)
         End If
     Next j
 Next i
 Worksheets("Tabelle2").Activate
 End Sub
 
 Gruß
 Holger
 
 
 
 weserich schrieb am 11.08.2008 23:00:06:
 
 Hallo.
 Habe ein kleines Excel Problem und weiß absolut nicht weiter.
 
 Ich habe ein Tabellenblatt(1), indem in der Spalte A diverse Kostenstellen stehen (es kommen auch öfters die gleichen Kostenstellen vor). In Spalte B stehen Abteilungsnamen und in Spalte C diverse andere Inforamtionen.
 
 Wie bringe ich Excel dazu, dass mir in einem zweiten Tabellenblatt(2) 
 
 -a- die Kostenstellen in nummerischer Reihenfolge angezeigt werden und keine doppelten Kostenstellen   vorkommen 
 
 -b- zwischen den Kostenstellen die jeweiligen Informationen aus Spalte C untereinander aufgelistet werden?
 
 Beispiel:
 
 Zelle A1 - Kostenstelle 11 342
 Zelle A2 - Information A
 Zelle A3 - Information B
 Zelle A4 - Information C
 Zelle A5 - Kostenstelle 11343
 Zelle A6 - Information A
 Zelle A7 - Kostenstelle 11344
 ...usw.
 
 Da gleiche Kostenstellen im Tabellenbaltt(1) unterschiedlich oft auftreten, muss Excel selber wissen, unter welcher Kostenstelle er die ganzen Informationen zusammenfasst.
 
 Im oben genannten Beispeil kommt die Kostenstelle 11 342 im Tabellenbaltt (1) also 3mal vor und die Kostenstelle 11343 nur einmal.
 
 Es wäre echt nett, wenn ihr einem relativem Anfänger in VBA hierbei weiterhelfen könntet.
 
 Vielen Dank!!!     |