Microsoft Excel

Herbers Excel/VBA-Archiv

Mit Schleife zusammenfassen

Betrifft: Mit Schleife zusammenfassen von: Juli
Geschrieben am: 07.12.2015 10:22:27

Hallo zusammen,

ich versuche eine Schleife zu erzeugen, die alle Werte in Spate A in eine Zelle, getrennt mit einem Komma, zusammenfasst.
Beim letzten Wert soll kein Komma mehr enthalten sein.

Beispiel ("-" dienen nur der Darstellung und sind nicht enthalten):

Spalte A ---------|Spalte B
Zeile 1 06V-------|06V, 1B2, ..., 3V4,
Zeile 2 1B2
Zeile x 3V4

Könnt ihr mir hier weiterhelfen? Bin leider etwas eingerostet in VBA...

  

Betrifft: AW: Mit Schleife zusammenfassen von: Matthias L
Geschrieben am: 07.12.2015 10:40:37

Hallo

Option Explicit
Sub Schleife()
Dim x&
For x = 1 To 7 'Ende anpassen
 If Cells(1, 2) = "" Then
    Cells(1, 2) = Cells(x, 1)
 Else
    Cells(1, 2) = Cells(1, 2) & ", " & Cells(x, 1)
 End If
Next
End Sub

Tabelle1

 AB
106V06V, 1B2, 3V4, 2J6, r5W, g8T, 7D3
21B2 
33V4 
42J6 
5r5W 
6g8T 
77D3 


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4



Gruß Matthias


  

Betrifft: AW: Mit Schleife zusammenfassen von: Daniel
Geschrieben am: 07.12.2015 10:45:36

Hi

als Schleife so:

dim erg as string
dim x

for each x in Range(Cells(1, 1), Cells(1, 1).End(xldown)).value
erg = erg & ", " & x
next
Range("B1").Value = mid(erg, 3)
der Wert in der mid-Funktion entspricht der Anzahl der Zeichen des Trennzeichen + 1 (hier ist das Trennzeichen Komma+Leerzeichen, daher 3)


es geht aber auch ohne Schleife mit einer einzigen Programmzeile:
Range("B1").Value = Join(WorksheetFunction.Transpose(Range(Cells(1, 1), Cells(1, 1).End(xlDown))), ", ")
Gruß Daniel


  

Betrifft: hier noch eine IIf -Variante von: Matthias L
Geschrieben am: 07.12.2015 11:17:34

Hallo

Option Explicit
Sub Schleife()
Dim x&
Application.ScreenUpdating = False
Cells(1, 2).ClearContents
For x = 1 To 7 'Ende anpassen/einlesen
 Cells(1, 2) = IIf(Cells(1, 2) = "", Cells(x, 1), Cells(1, 2) & ", " & Cells(x, 1))
Next
End Sub
Gruß Matthias


  

Betrifft: AW: und noch eine Ohne IF oder IIF von: Daniel
Geschrieben am: 07.12.2015 11:20:06


Sub Schleife()
Dim x&
Application.ScreenUpdating = False
Cells(1, 2) = Cells(1, 1)
For x = 2 To 7 'Ende anpassen/einlesen
 Cells(1, 2) =  Cells(1, 2) & ", " & Cells(x, 1))
Next
End Sub
Gruß Daniel


  

Betrifft: AW: und noch eine Ohne IF oder IIF von: Juli
Geschrieben am: 07.12.2015 12:25:21

Ich habe die Version mit der Formel:
Range("B1").Value = Join(WorksheetFunction.Transpose(Range(Cells(1, 1), Cells(1, 1).End(xlDown))), ", ")
getestet & es klappt!

Außerdem habe ich es auf den harten Weg folgendermaßen lösen können:
| --|A -- |B
|1 |06V |=A1
|2 |1B2 |=B1&", "&A2
|3 |3V4 |=B2&", "&A3 'runter ziehen. letzes Ergebnis ist die komplette Zusammenfassung ;)
|4 |2J6 |
|5 |r5W |
|6 |g8T |
|7 |7D3 |


Besten Dank für eure Lösungen.


  

Betrifft: AW: und noch eine Ohne IF oder IIF von: Daniel
Geschrieben am: 07.12.2015 12:31:22

Hi

die Formellösung würde ich so machen:

in B1 die Formel: =A1&Wenn(A2="";"";", "&B2)

hat den Vorteil, dass in jeder Zelle die gleiche Formel und das fertige Ergebnis immer in der ersten Zeile steht.

Gruß Daniel


 

Beiträge aus den Excel-Beispielen zum Thema "Mit Schleife zusammenfassen"