Leerzeile zwischen "Gruppen"

Bild

Betrifft: Leerzeile zwischen "Gruppen"
von: muehli
Geschrieben am: 28.10.2015 08:52:55

Guten Morgen,
ich habe eine Tabelle in folgender Form:
Spalte C | Spalte D | Spalte E
Stecker | +Platz1 | 4
Buchse | +Platz1 | 2
Schalter | +Platz2 | 3
Stecker | +Platz2 | 3
Buchse | +Platz2 | 2
Knopf | +Platz2 | 1
Hebel | +Platz3 | 5
[Artikel] | [Ort] | [Anzahl]
ich hätte gerne, dass zwischen jedem anderen [Ort] ein Absatz entsteht.
Es soll jedoch keine Zeile eingefügt werden (also vielleicht mit kopieren?),
da ich sonst die Befürchtung habe, dass etwas mit meinem restlichen VBA-Code durcheinander kommt.
Beispiel:
Spalte C | Spalte D | Spalte E
Stecker | +Platz1 | 4
Buchse | +Platz1 | 2
Schalter | +Platz2 | 3
Stecker | +Platz2 | 3
Buchse | +Platz2 | 2
Knopf | +Platz2 | 1
Hebel | +Platz3 | 5
[Artikel] | [Ort] | [Anzahl]
Wie kann ich das per Makro realisieren?
Freundliche Grüße und danke
muehli

Bild

Betrifft: AW: Leerzeile zwischen "Gruppen"
von: matthias
Geschrieben am: 28.10.2015 09:21:13
Hallo muehli,
ein Zeilenumbruch würde einen optischen Absatz erschaffen, dieser lässt sich mit Chr(10) erzeugen.

Sub Absatz()
Dim x As Long
With Sheets("Import")
    For x = 2 To .Cells(.Rows.Count, 4).End(xlUp).Row
        If .Cells(x, 4) <> .Cells(x - 1, 4) Then 'Prüfung Spalte D
            .Cells(x, 10) = Chr(10) 'Zeilenumbruch
        End If
    Next x
End With
End Sub
In einer leeren Spalte (hier Spalte 10) wird dann ein Absatzzeichen eingefügt.
lg Matthias

Bild

Betrifft: AW: Leerzeile zwischen "Gruppen"
von: muehli
Geschrieben am: 28.10.2015 10:14:41
Hi matthias,
erstmal danke für die schnelle Antwort.
Deine Variante funktionert schon ansatzweise, wie ich es möchte.
Jedoch sieht das Ganze recht "unsauber" aus, da ich Ränder für die Zellen benutze.
Gruß und danke
muehli

Bild

Betrifft: AW: Leerzeile zwischen "Gruppen"
von: muehli
Geschrieben am: 28.10.2015 10:18:08
Vielleicht gibt es eine Möglichkeit, die wie folgt aussieht:

Dim x As Long
With Sheets("Import")
    For x = 2 To .Cells(.Rows.Count, 4).End(xlUp).Row
        If .Cells(x, 4) <> .Cells(x - 1, 4) Then 'Prüfung Spalte D
            'Kopiere alles unterhalb und füge in .Cells(x + 1, 4) ein
        End If
    Next x
End With


Bild

Betrifft: AW: Leerzeile zwischen "Gruppen"
von: matthias
Geschrieben am: 28.10.2015 10:34:53
Was genau hast du denn für Code dass du keine Zeile einfügen kannst, aber eine Leerzeile schaffen durch Kopieren kein Problem darstellt?
lg Matthias

Bild

Betrifft: AW: Leerzeile zwischen "Gruppen"
von: daniel
Geschrieben am: 28.10.2015 10:50:01
Hi
lade doch mal eine Beispieldatei hoch, in der du zeigst, wie die Daten im Original vorliegen und daneben oder auf einem zweiten Blatt wie sie hinterher aussehen sollen (von Hand erstellt).
wenn du keine Leerzeilen einfügen willst, dann bleibt dir nichts anderes übrig, als in den Randzeilen (dh Zeilen, bei denen in der Nachbarzeile ein anderer Ort steht) die Zeilenhöhe zu erhöhen.
es sollte dir aber auch klar sein, dass du Rahmenlinien immer nur am Zellrand einfügen kannst (ausnahme: Diagonallinien, aber die helfen dir hier nicht weiter)
Gruß Daniel

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Leerzeile zwischen "Gruppen""