Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1920to1924
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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige