Microsoft Excel

Herbers Excel/VBA-Archiv

Zählen bei ungleicher Spaltenlänge

Betrifft: Zählen bei ungleicher Spaltenlänge von: Heinz H
Geschrieben am: 31.10.2014 19:43:29

Hallo Leute
Habe ein paar Probleme mit Summe & sortieren.

Ich möchte gerne in Spalten E + G eine Summe eintragen, so wie im Beispiel E6 + G6
Nur sind die Spaltenlängen unterschiedlich.
Die Summe sollte rot sein mit weisser Schrift.

Weiters sollte B:L sortiert werden nach erstens nach Spalte B,zweite nach Spalte I

Ich weiss es ist etwas komplex das ganze.
Eventuell könnte es mit Doppelklick in Spalte A funktionieren.

Könnte die Datei eventuell jemand ansehen und mir weiterhelfen?

Danke,Heinz

https://www.herber.de/bbs/user/93481.xlsm

  

Betrifft: Teilbereich sortieren von: Heinz H
Geschrieben am: 31.10.2014 20:24:51

Hallo Leute

Habe den großteil schon geschaft,mit der Farbsumme.
NUR den Teilbereich sortieren,da komme ich nicht weiter.

Es sollte B:L sortiert werden nach erstens nach Spalte B,zweite nach Spalte I

Könnte mir dazu bitte jemand helfen?
Gruß Heinz


https://www.herber.de/bbs/user/93482.xlsm


  

Betrifft: AW: Teilbereich sortieren von: fcs
Geschrieben am: 03.11.2014 06:27:42

Hallo Heinz,

das Sortieren würde ich an deiner Stelle nicht in das vorhandenen Ereignismakro integrieren sondern in einem separaten Makro bei Bedarf ausführen.

In meinem Makro wird die Tatsache ausgenutzt, dass in Spalte B die Zelle in der Summenzeile zwischen den Datumsblöcken leer bleibt.

Gruß
Franz

Sub Sortieren()
    'Sortieren der Zeilen zu einem Datum nach Spalte B und I
    Dim wks As Worksheet
    Dim Zeile As Long, Zeile1 As Long, Zeile2 As Long, StatusCalc As Long
    
    Set wks = ActiveWorkbook.Worksheets("Gesperrte Ware")
    
    With Application
        .EnableEvents = False
        StatusCalc = .Calculation
        .Calculation = xlCalculationManual
        .ScreenUpdating = False
    End With
    
    With wks
        For Zeile = 3 To .Cells(.Rows.Count, 1).End(xlUp).Row
            If .Cells(Zeile, 2) <> "" And Zeile1 = 0 Then
                Zeile1 = Zeile
                Zeile2 = Zeile
            ElseIf .Cells(Zeile, 2) <> "" And Zeile1 > 0 Then
                Zeile2 = Zeile
            ElseIf .Cells(Zeile, 2) = "" And Zeile1 > 0 Then
                If Zeile2 - Zeile1 >= 1 Then
                With .Range(.Cells(Zeile1, 2), .Cells(Zeile2, 12))
                    .Sort Key1:=.Range("A1"), Order1:=xlAscending, _
                          Key2:=.Range("H1"), Order2:=xlAscending, Header:=xlNo
                End With
                End If
                Zeile1 = 0
                Zeile2 = 0
            End If
        Next
    End With
    
    With Application
        .EnableEvents = True
        .Calculation = StatusCalc
        .ScreenUpdating = True
    End With
End Sub



  

Betrifft: AW: Teilbereich sortieren von: Heinz H
Geschrieben am: 04.11.2014 21:41:00

Hallo Franz

Das funktioniert ja ganz wunderbar,gleich auf Anhieb.

Recht herzlichen Dank!!

Gruß Heinz


 

Beiträge aus den Excel-Beispielen zum Thema "Zählen bei ungleicher Spaltenlänge"