Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1028to1032
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

mehrere Zellen in einer Zelle mit Absätzen II

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere Zellen in einer Zelle mit Absätzen II
05.12.2008 18:23:18
fcs
Hallo Christian,
der folgende angepasste Code sollte es bringen.
Die Spaltennummern muss du ggf. noch anpassen.
Gruß
Franz

Sub Zusammenfassen()
Dim ze As Long, varWert, Zeile As Long
Dim shA As Worksheet
Dim shE As Worksheet
Set shA = Sheets("Ausgangsdaten")
Set shE = Sheets("Ergebnis")
shA.UsedRange.Copy shE.Cells(1, 1)
With shE
'Spalten vertikal formatieren (zentriert)
With .Range(.Columns(1), .Columns(6))
.VerticalAlignment = xlVAlignCenter
End With
'Spalten als Text formatieren (ohne Spalten mit Dezimalwerten!)
With .Range(.Columns(1), .Columns(5))
.NumberFormat = "@"
End With
'Letzte Zeile ermitteln
Zeile = .Cells(.Rows.Count, 1).End(xlUp).Row
'Nummerischen Wert in Spalte merken und als Text in Zelle eintragen
varWert = .Cells(Zeile, 6).Text
With .Cells(Zeile, 6)
.NumberFormat = "@"
.Value = varWert
End With
'1. Vergleichswert
varWert = .Cells(Zeile, 1).Text & .Cells(Zeile, 2).Text
For ze = .Cells(Rows.Count, 1).End(xlUp).Row - 1 To 2 Step -1
'Vergleichswert mit Zellinhalten vergleichen
If varWert = .Cells(ze, 1).Text & .Cells(ze, 2).Text Then
.Cells(Zeile, 3) = .Cells(ze, 3).Text & Chr(10) & .Cells(Zeile, 3).Text
.Cells(Zeile, 4) = .Cells(ze, 4).Text & Chr(10) & .Cells(Zeile, 4).Text
.Cells(Zeile, 6) = .Cells(ze, 6).Text & Chr(10) & .Cells(Zeile, 6).Text
.Rows(ze).ClearContents
Else
Zeile = ze 'neue Zeile für "addieren" von Zellinhalten merken
'Inhalt von Zellen mit Nummerischen Werten merken und als Text in Zellen eintragen
varWert = .Cells(Zeile, 6).Text
With .Cells(Zeile, 6)
.NumberFormat = "@"
.Value = varWert
End With
'Neuer Vergleichswert
varWert = .Cells(Zeile, 1).Text & .Cells(Zeile, 2).Text
End If
Next
'Nachkomma-Nullen ersetzen
.Columns(6).Replace ",00", ",--"
'Leerzeilen löschen
.Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
End Sub


Anzeige
AW: mehrere Zellen in einer Zelle mit Absätzen II
10.12.2008 13:01:00
christian
Vielen Dank Franz!
Noch eine Kleinigkeit, kann dieser Code so umgeschrieben werden, dass nur die Zeilen betroffen sind die in Spalte 8 "Geschenkartikel" stehen haben und das zB Spalte 4 in der neuen Tabelle gelöscht wird?
Danke!
mfg
Christian
AW: mehrere Zellen in einer Zelle mit Absätzen II
10.12.2008 17:34:50
fcs
Hallo Christian,
folgende nicht getestete Version sollte funktionieren.
Die Zeilen, die nicht dem Kriterium entsprechen werden vor dem Zusammenfaqssen gelöscht.
Die nicht gewünschten Spalten werden zum Schluß gelöscht.
Gruß
Franz

Sub Zusammenfassen()
Dim ze As Long, varWert, Zeile As Long
Dim shA As Worksheet
Dim shE As Worksheet
Set shA = Sheets("Ausgangsdaten")
Set shE = Sheets("Ergebnis")
shA.UsedRange.Copy shE.Cells(1, 1)
With shE
'Alle Zeilen verschieden von Geschenkartikel in Spalte 8 löschen
varWert = "Geschenkartikel"
For ze = .Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
'Vergleichswert mit Zellinhalten vergleichen
If varWert  .Cells(ze, 8).Text Then
.Rows(ze).Delete shift:=xlShiftUp
End If
Next
'Spalten vertikal formatieren (zentriert)
With .Range(.Columns(1), .Columns(6))
.VerticalAlignment = xlVAlignCenter
End With
'Spalten als Text formatieren (ohne Spalten mit Dezimalwerten!)
With .Range(.Columns(1), .Columns(5))
.NumberFormat = "@"
End With
'Letzte Zeile ermitteln
Zeile = .Cells(.Rows.Count, 1).End(xlUp).Row
'Nummerischen Wert in Spalte merken und als Text in Zelle eintragen
varWert = .Cells(Zeile, 6).Text
With .Cells(Zeile, 6)
.NumberFormat = "@"
.Value = varWert
End With
'1. Vergleichswert
varWert = .Cells(Zeile, 1).Text & .Cells(Zeile, 2).Text
For ze = .Cells(Rows.Count, 1).End(xlUp).Row - 1 To 2 Step -1
'Vergleichswert mit Zellinhalten vergleichen
If varWert = .Cells(ze, 1).Text & .Cells(ze, 2).Text Then
.Cells(Zeile, 3) = .Cells(ze, 3).Text & Chr(10) & .Cells(Zeile, 3).Text
.Cells(Zeile, 4) = .Cells(ze, 4).Text & Chr(10) & .Cells(Zeile, 4).Text
.Cells(Zeile, 6) = .Cells(ze, 6).Text & Chr(10) & .Cells(Zeile, 6).Text
.Rows(ze).ClearContents
Else
Zeile = ze 'neue Zeile für "addieren" von Zellinhalten merken
'Inhalt von Zellen mit Nummerischen Werten merken und als Text in Zellen eintragen
varWert = .Cells(Zeile, 6).Text
With .Cells(Zeile, 6)
.NumberFormat = "@"
.Value = varWert
End With
'Neuer Vergleichswert
varWert = .Cells(Zeile, 1).Text & .Cells(Zeile, 2).Text
End If
Next
'Nachkomma-Nullen ersetzen
.Columns(6).Replace ",00", ",--"
'Leerzeilen löschen
.Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
'Spalten löschen
.Columns(4).Delete shift:=xlShiftToLeft
End With
End Sub


Anzeige
AW: mehrere Zellen in einer Zelle mit Absätzen II
11.12.2008 13:59:58
christian
Der Code funktinoiert super, nur ein Problem gibts es noch, die Zahlen in der Spalte Artikelnummer werden wissenschaftlich formatiert in der neuen Tabelle, wie kann ich das verhindern?
mfg
Christian
AW: mehrere Zellen in einer Zelle mit Absätzen II
11.12.2008 14:29:00
fcs
Hallo Christian,
formatiere in den Ausgangsdaten die Spalte mit dem Format Zahlen ohne Nachkommastellen und ohne Tausenderpunkt. Dann sollte es funktionieren.
Alternativ: Artikelnummern in Ausgamgsdaten als Text formatieren.
Gruß
Franz
AW: mehrere Zellen in einer Zelle mit Absätzen II
11.12.2008 15:43:00
christian
Danke für die rasche Antwort. Hat aber das Problem nicht gelöst, es scheint als ob die Spaltenbreite am Fehler schuld ist. Würde es etwas helfen die Spaltenbreite vorher per Makro zu verändern? Oder welche andere Lösung könnte helfen?
Anzeige

383 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige