Microsoft Excel

Herbers Excel/VBA-Archiv

Excel Makro - Gruppierte Zeilen


Betrifft: Excel Makro - Gruppierte Zeilen
von: Jack
Geschrieben am: 20.12.2018 10:18:34

Hallo Zusammen,

ich habe folgenden Fall: Daten werden aus einem Sheet "Source" in ein anderes Sheet "Target" geschrieben per Makro. Nun habe ich aber einige Gruppierungen von Zellen und Spalten im Sheet "Source".

Klappe ich alle Gruppierungen auf, klappt es einwandfrei und alle Daten werden raus geschrieben. Klappe ich aber alle Daten ein bis auf den obersten Titel, dann erhalte ich keine Daten.

Beispiel
1. - (aufgeklappt)
1.1 - (aufgeklappt)
1.1.1
1.1.2
1.2 - (aufgeklappt)
1.2.1
1.3 - (aufgeklappt)
1.3.1

Klappe ich nur Level 2 ein, gibt er mir die Daten für 1.1. und 1.2 aus aber nicht für 1.3

Beispiel
1. - (aufgeklappt)
1.1 + (eingeklappt)
1.2 + (eingeklappt)
1.3 + (eingeklappt)

Klappe ich alles ein, dann erhalte ich keine Daten
Beispiel
1. + (eingeklappt)

Gibt es eine Möglichkeit, dass dem Makro egal ist, ob die Gruppe der Daten gerade eingeklappt ist?

Danke & beste Grüße,
Jack

'#
'## IF Bedingungen
For aZ = 2 To Range("B" & Rows.Count).End(xlUp).Row
If Cells(aZ, 2) <> "" Then
Select Case Cells(aZ, 2)
Case 1
Level1Titel = Cells(aZ, 3)
Level1Beschr = Cells(aZ, 7)
Level2Titel = ""
Level2Beschr = ""
Level3Titel = ""
Level3Beschr = ""
Case 2
Level2Titel = Cells(aZ, 3)
Level2Beschr = Cells(aZ, 7)
Level3Titel = ""
Level3Beschr = ""
Case 3
Level3Titel = Cells(aZ, 3)
Level3Beschr = Cells(aZ, 7)
Case 4
larr = larr + 1
ReDim Preserve arrDaten(43, larr)

'## Daten
arrDaten(0, larr) = Level1Titel 'Titel 1
arrDaten(1, larr) = Level1Beschr 'Titel 1 Beschreibung
'Titel 1 Von
'Titel 1 Bis
arrDaten(4, larr) = Level2Titel 'Titel 2
arrDaten(5, larr) = Level2Beschr 'Titel 2 Beschreibung
'Titel 2 Von
'Titel 2 Bis
arrDaten(8, larr) = Level3Titel 'Titel 3
arrDaten(9, larr) = Level3Beschr 'Titel 3 Beschreibung
'Titel 3 Von
'Titel 3 Bis
arrDaten(12, larr) = Cells(aZ, 4) 'Titel 4
arrDaten(13, larr) = Cells(aZ, 7) 'Titel 4 Beschreibung
arrDaten(14, larr) = Cells(aZ, 3) 'Aktiv?
arrDaten(15, larr) = Cells(aZ, 5) 'Funktionsbereich
arrDaten(16, larr) = Cells(aZ, 6) 'Rolle
arrDaten(17, larr) = Cells(aZ, 8) 'Titel 4 Von
arrDaten(18, larr) = Cells(aZ, 9) 'Titel 4 Bis
arrDaten(19, larr) = Cells(aZ, 10) 'Arbeitstage
arrDaten(20, larr) = Cells(aZ, 11) 'Wochen
arrDaten(21, larr) = Cells(aZ, 12) 'Monate
arrDaten(22, larr) = Cells(aZ, 16) 'Finale PT
arrDaten(23, larr) = Cells(aZ, 17) 'Finale h
arrDaten(24, larr) = Cells(aZ, 18) 'Finale Kosten
arrDaten(25, larr) = Cells(aZ, 19) 'Verantwortlicher

End Select
End If
Next

'## Insert
Sheets("Output").Range("A1:ar" & larr + 1) = Application.WorksheetFunction.Transpose(arrDaten)

  

Betrifft: AW: Excel Makro - Gruppierte Zeilen
von: Torsten
Geschrieben am: 20.12.2018 10:25:38

Hallo Jack,

heb doch die Gruppierung auf vor dem Kopieren.

.Rows.Ungroup
.Columns.Ungroup
Gruss Torsten


  

Betrifft: AW: Excel Makro - Gruppierte Zeilen
von: Jack
Geschrieben am: 20.12.2018 11:56:00

Danke für den Tipp.

Ja, wenn ich per Makro alles aufklappen lasse zieht er natürlich alle Daten.

Die Frage ist, ob das zwingend notwendig ist oder es eine schönere Lösung gibt. Gerade wenn man viele Gruppen hat und nur Änderungen in bestimmten vornimmt. Möchte man nach Ausführung des Makros ja wieder die selbe Sicht auf die Gruppen haben wie vorher und nicht wieder alles einklappen müssen.


  

Betrifft: AW: Excel Makro - Gruppierte Zeilen
von: Torsten
Geschrieben am: 20.12.2018 12:05:00

Was mir noch einfaellt, waere, die Daten Zelle fuer Zelle fuer jede zu kopierende Zeile in einer Schleife abzufragen und in die Zielzelle zu kopieren.


  

Betrifft: AW: Excel Makro - Gruppierte Zeilen
von: Rudi Maintaire
Geschrieben am: 20.12.2018 12:23:16

Hallo,
lege eine benutzerdefinierte Ansicht an.

Sub aaaa()
Const strCW As String = "DieAnsicht"
ActiveWorkbook.CustomViews.Add strCW, True, True
ActiveSheet.Outline.ShowLevels RowLevels:=2, ColumnLevels:=2
'dein Code
ActiveWorkbook.CustomViews(strCW).Show
ActiveWorkbook.CustomViews(strCW).Delete
End Sub

Gruß
Rudi


  

Betrifft: AW: Excel Makro - Gruppierte Zeilen
von: Jack
Geschrieben am: 20.12.2018 14:26:48

Hallo,

danke für den Input.

Leider bekomme ich noch einen Laufzeitfehler und finde den Fehler nicht, wobei ich mich mit solchen Views noch nicht auskenne. Wäre das Ziel den aktuellen Stand (wie die Gruppen gerade ein oder ausgeklappt sind) einzufrieren und später wieder herzustellen oder ist das Ziel im Makro einen festen View z.B. alles eingeklappt zu speichern?

Beste Grüße,
Jack


  

Betrifft: AW: Excel Makro - Gruppierte Zeilen
von: Rudi Maintaire
Geschrieben am: 20.12.2018 21:34:35

Hallo,
Wäre das Ziel den aktuellen Stand (wie die Gruppen gerade ein oder ausgeklappt sind) einzufrieren und später wieder herzustellen
genau das.

Die Tabelle muss natürlich aktiv sein.

Gruß
Rudi