Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Konsolidierung

Forumthread: Konsolidierung

Konsolidierung
02.03.2023 08:49:30
André
Hey liebe Forumsmitglieder,
Ich habe eine Arbeitsmappe nach dem Muster:
Spalte1(text) Spalte2 Spalte3 Spalte4
A 1 5 7
B 8 3 1
B 3 7 8
C 4 8 7
C 1 2 5
C 7 8 8
D 1 5 9
E 2 3 4
E 9 8 2
usw.
Die Daten möchte ich nun gern konsolidieren. Die gewünschten Zeilen kann ich zwar durch eine Schleife ermitteln und markieren aber ich komme
nicht dazu den Bereich/Array zum konsolidieren in der Schleife variabel zu gestalten.
Vielleicht habt ihr Input für mich...? Danke im Voraus!
Private Sub konsolidieren()
    Dim TT1 As Worksheet
    Set TT1 = Workbooks("BDD CM.xlsb").Worksheets("TT1")
    Dim TT1_KONSO As Worksheet
    Set TT1_KONSO = Workbooks("BDD CM.xlsb").Worksheets("TT1_KONSO")
    Dim Zeile_K_TT1 As Long
    Dim letzte_TT1 As Long
    Dim mc1 As Range
    Dim mc2 As Range
    
            letzte_TT1 = TT1.Cells(Rows.Count, 1).End(xlUp).Row
            
    For Zeile_K_TT1 = 6 To letzte_TT1
            Zeile_K_TT1_1 = Zeile_K_TT1
        Do While TT1.Cells(Zeile_K_TT1, 1).Value = TT1.Cells(Zeile_K_TT1_1, 1).Value _
            And Not Zeile_K_TT1 > letzte_TT1
            Zeile_K_TT1_letzte = Zeile_K_TT1
            Zeile_K_TT1 = Zeile_K_TT1 + 1
        Loop
            Zeile_K_TT1 = Zeile_K_TT1 - 1
            
             Set mc1 = TT1.Cells(Zeile_K_TT1_1, 1)
             Set mc2 = TT1.Cells(Zeile_K_TT1_letzte, 27)
             'MsgBox mc1
             
            Dim md1 As String
            Dim md2 As String
            md1 = mc1.Address(ReferenceStyle:=xlR1C1)
            md2 = mc2.Address(ReferenceStyle:=xlR1C1)
              
            frei_TT1_K = TT1_KONSO.Cells(Rows.Count, 1).End(xlUp).Row + 1
            
            TT1_KONSO.Activate
            TT1_KONSO.Range("A" & frei_TT1_K).Consolidate _
            sources:=("TT1!R2C1:R3C4"), Function:=xlAverage, LeftColumn:=True '?Wie kann ich hier den Bereich variabel gestalten?
        
        Next Zeile_K_TT1
        
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Konsolidierung
02.03.2023 09:13:11
André
Problem gelöst durch Platzhalter als String.... hätte auch früher drauf kommen können ;-)
Private Sub konsolidieren()
    Dim TT1 As Worksheet
    Set TT1 = Workbooks("BDD CM.xlsb").Worksheets("TT1")
    Dim TT1_KONSO As Worksheet
    Set TT1_KONSO = Workbooks("BDD CM.xlsb").Worksheets("TT1_KONSO")
    Dim Zeile_K_TT1 As Long
    Dim letzte_TT1 As Long
    Dim mc1 As Range
    Dim mc2 As Range
    
            letzte_TT1 = TT1.Cells(Rows.Count, 1).End(xlUp).Row
            
    For Zeile_K_TT1 = 6 To letzte_TT1
            Zeile_K_TT1_1 = Zeile_K_TT1
        Do While TT1.Cells(Zeile_K_TT1, 1).Value = TT1.Cells(Zeile_K_TT1_1, 1).Value _
            And Not Zeile_K_TT1 > letzte_TT1
            Zeile_K_TT1_letzte = Zeile_K_TT1
            Zeile_K_TT1 = Zeile_K_TT1 + 1
        Loop
            Zeile_K_TT1 = Zeile_K_TT1 - 1
            
             Set mc1 = TT1.Cells(Zeile_K_TT1_1, 1)
             Set mc2 = TT1.Cells(Zeile_K_TT1_letzte, 27)
             'MsgBox mc1
             
            Dim md1 As String
            Dim md2 As String
            md1 = mc1.Address(ReferenceStyle:=xlR1C1)
            md2 = mc2.Address(ReferenceStyle:=xlR1C1)
              
            Dim Platzhalter As String
            Platzhalter = "TT1!" & md1 & ":" & md2
            frei_TT1_K = TT1_KONSO.Cells(Rows.Count, 1).End(xlUp).Row + 1
            
            TT1_KONSO.Activate
            TT1_KONSO.Range("A" & frei_TT1_K).Consolidate _
            sources:=Platzhalter, Function:=xlAverage, TopRow:=False, LeftColumn:=True, CreateLinks:=False
        
        Next Zeile_K_TT1
        
End Sub

Anzeige
AW: Konsolidierung
02.03.2023 16:38:29
Yal
Hallo André,
warum so umstandlich? Wenn ich das gesamte richtig nachvollziehen könnte (wovon ich natürlich nicht sicher sein kann), würde folgendes genau dasselbe Ergebnis liefern:
Private Sub konsolidieren2()
Dim Adresse As String
    With Workbooks("BDD CM.xlsb")
        With .Worksheets("TT1")
            Adresse = .Name & "!" & Range(.Range("A6"), .Cells(Rows.Count, 1).End(xlUp)).Address(ReferenceStyle:=xlR1C1)
        End With
        .Worksheets("TT1_KONSO").Cells(Rows.Count, 1).End(xlUp).Offset(1).Consolidate sources:=Adresse, Function:=xlAverage
    End With
End Sub
VG
Yal
Anzeige
ach ne, Moment, Fehlerchen...
02.03.2023 16:40:45
Yal
Die Quelle ist zwischen A6 und Dx, oder anders gesagt zwischen D6 und Ax:
Private Sub konsolidieren2()
Dim Adresse As String
    With Workbooks("BDD CM.xlsb")
        With .Worksheets("TT1")
            Adresse = .Name & "!" & Range(.Range("D6"), .Cells(Rows.Count, 1).End(xlUp)).Address(ReferenceStyle:=xlR1C1)
        End With
        .Worksheets("TT1_KONSO").Cells(Rows.Count, 1).End(xlUp).Offset(1).Consolidate sources:=Adresse, Function:=xlAverage
    End With
End Sub
VG
Yal
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige