Sortieren von Zeilen blockweise
#1
Star 
Hi,

ich habe folgende Tabelle:

Tabelle1
ABCD
1Sortier-KriteriumProzeßTextText 2
211a
352b
4c
5d
623e
7f
864g
945h
1036i
11j
Zellrahmen werden nur schematisch und ohne Diagonalen dargestellt

Zellrahmen 1
  Zelle     Links     Rechts     Oben  
    Linienart     Farbe     Linienart     Farbe     Linienart     Farbe  
$A$2, $A$8:$A$9dünn durchgehend      dünn durchgehend 
$A$3, $A$6, $A$10dünn durchgehend      dünn durchgehend 
$A$4dünn durchgehend         
$A$5, $A$7, $A$11dünn durchgehend         
$B$2: $C$2, $B$8:$C$9        dünn durchgehend 
$B$3: $C$3, $B$6: $C$6, $B$10: $C$10        dünn durchgehend 
$D$2, $D$8:$D$9    dünn durchgehend  dünn durchgehend 
$D$3, $D$6, $D$10    dünn durchgehend  dünn durchgehend 
$D$4    dünn durchgehend     
$D$5, $D$7, $D$11    dünn durchgehend     
Zellrahmen 2
  Zelle     Unten     Diagonale abwäts     Diagonale aufwärts  
    Linienart     Farbe     Linienart     Farbe     Linienart     Farbe  
$A$1: $D$1, $B$5: $C$5, $B$7: $C$7, $B$11: $C$11dünn durchgehend         
$A$2, $A$8:$A$9dünn durchgehend         
$A$5, $A$7, $A$11dünn durchgehend         
$B$2: $C$2, $B$8:$C$9dünn durchgehend         
$D$2, $D$8:$D$9dünn durchgehend         
$D$5, $D$7, $D$11dünn durchgehend         
Zellen ohne Rahmen werden nicht aufgeführt
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 18.19 einschl. 64 Bit


In den Spalten Text und Text 2 sind natürlich Freitexte ohne fortlaufend zu sein.
Gibt es eine Möglichkeit, die Blöcke  nach der Spalte A zu sortieren, ohne in A die Unterzeilen der Blöcke auch fortlaufend zu zählen?
Top
#2
Hi Ralf,

z.B. so:

Code:
Sub MeinSort()
 Dim rngLeer As Range
 On Error Resume Next
 With ActiveSheet.Range("A1").CurrentRegion
   For Each rngLeer In .Columns(1).SpecialCells(xlCellTypeBlanks).Areas
     rngLeer.Value = rngLeer.Offset(-1).Cells(1).Value
   Next rngLeer
   .Sort Key1:=.Cells(1), Header:=xlYes
 End With
 On Error GoTo 0
End Sub

Gruß Uwe
Top
#3
Hi Uwe,

danke, so funktionierts.

Das muß ich morgen direkt mal an der Orschinaaal-Datei testen.

Aber mit "ohne Makro" geht das nicht oder? Falls die Kollegen keine Makros zulassen wollen.
Zellen verbinden habe ich ja getestet, gibt es da sonst keinen Trick?

Dann müssen sie halt entweder das Makro zulassen oder manuell die Zahlen fortlaufend auch in die A-Leerzellen reinschreiben.


Komisch ist, wenn ich die Blöcke so mit Zellrahmen markiere und dann sortiere, egal ob mit Deinem Makro oder durch manuelles fortlaufendes Zeilen nummerieren, dann bleiben die Rahmen so stehen und nur der Inhalt wird sortiert.

.xlsb   Zellen sortieren mit Leerzeilen.xlsb (Größe: 17,64 KB / Downloads: 2)
Top
#4
Hi Ralf,

manuell mit Formelhilfsspalte und sortieren nach dieser.
Formel von E3 runterziehen.

Tabelle1

ABCDE
1Sortier-KriteriumProzeßTextText 2
211a1
352b5
4c5
5d5
623e2
7f2
864g6
945h4
1036i3
11j3
Formeln der Tabelle
ZelleFormel
E2=A2
E3=WENN(A3="";E2;A3)

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4

Gruß Uwe
Top
#5
Hi Ralf,

scheint wohl so zu sein, dass Rahmen nicht sortiert werden. Sad
Andere Zellformate wandern mit. Hab es mit E2003 und E2010 getestet.

Gruß Uwe
Top
#6
Hallo,

dann das Ganze mit einem Makro und Hilfsspalte:

Code:
Sub MeinSort()
Dim loletzte As Long
Dim Nummer As Double
Dim loa As Long
loletzte = Application.WorksheetFunction.Max(Cells(Rows.Count, 1).End(xlUp).Row, Cells(Rows.Count, 2).End(xlUp).Row, Cells(Rows.Count, 3).End(xlUp).Row, Cells(Rows.Count, 4).End(xlUp).Row)
For loa = 2 To loletzte
   If Cells(loa, 1) <> "" Then
       Cells(loa, 5) = Cells(loa, 1)
   Else
       Cells(loa, 5) = Cells(loa - 1, 5) + loa / 1000
   End If
 Next
 Range(Cells(2, 1), Cells(loletzte, 5)).Sort key1:=Cells(2, 5)
 Range("E:E").Clear
 Range(Cells(1, 1), Cells(1, 4)).Borders.LineStyle = xlContinuous
For loa = 3 To loletzte
   If Cells(loa, 1) <> "" Then Range(Cells(loa, 1), Cells(loa, 4)).Borders(xlEdgeTop).LineStyle = xlContinuous
 Next
   
 
End Sub
Die Linien kannst Du ja selbst noch in das Makro einbauen.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#7
Hallo zusammen,

das mit den Rahmen ist nicht so schlimm (glaube ich), die können wir vermutlich auch weglassen, die habe ich in der Beispieldatei ja nur für das Forum zur Darstellung der zusammengehörigen Blöcke eingefügt. Wie es in der Original-Datei ist, weiß ich grad nicht.

Ist sichergestellt, daß bei leerer Zelle in Spalte A dann auch der Block in dieser Reihenfolge bleibt? Oder werden die leeren Zell-Zeilen nach irgendwas umsortiert? Eigentlich müßte es so bleiben, da ja das einzige Sortierkriterium die Spalte A ist.

Tabelle1
ABCDE
1Sortier-KriteriumProzeßTextText 2
211a1
352b5
4c5
5d5

verwendete Formeln
Zelle Formel Bereich N/A
E2:E5=WENN(A2="";E1;A2)
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 18.19 einschl. 64 Bit

Top
#8
Hallo Ralf,

ich weiß gerade nicht, auf was Du Dich beziehst, mein Makro arbeit mit einer Hilfsspalte in E, die nach dem Sortieren gelöscht wird.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#9
Hi Edgar,

(01.03.2015, 22:23)BoskoBiati schrieb: ich weiß gerade nicht, auf was Du Dich beziehst, mein Makro arbeit mit einer Hilfsspalte in E, die nach dem Sortieren gelöscht wird.

ich hatte mich auf Uwes Beitrag bezogen. Dein Makro teste ich auch morgen mit den Originaldaten.
Top
#10
(01.03.2015, 21:15)Rabe schrieb: Ist sichergestellt, daß bei leerer Zelle in Spalte A dann auch der Block in dieser Reihenfolge bleibt? Oder werden die leeren Zell-Zeilen nach irgendwas umsortiert? Eigentlich müßte es so bleiben, da ja das einzige Sortierkriterium die Spalte A ist.

Hi Ralf,

ich konnte nichts gegenteiliges feststellen.
Auf Nummer Sicher geht Edgar mit dem Auffüllen aufsteigender Nachkommastellen.

Gruß Uwe
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste