eine leichte oder knifflige? Excel Frage, an die Experten hier.
Anbei siehe Bild, möchte ich die variablen Einträge (gehen immer von ProjektNr bis ProjektNr) in Spalte T und U, blockweise nebeneinander schreiben, (1 Block pro 2 Spalten) Ich habe meine Idee versucht anhand von 3 Beispielen farblich zu codieren, obschon ich mich auf die ganze Spalte T und U beziehen möchte. Ich sehe die Schwierigkeit darin, die Abbruchbedingung pro Block, die ja in de Länge dynamisch ist, in einer Formel zu erzeugen.
10.07.2023, 13:07 (Dieser Beitrag wurde zuletzt bearbeitet: 10.07.2023, 13:09 von Fennek.)
Hallo,
hier ein VBA-Ansatz:
Code:
Sub T_1() Dim rng As Range, r As Range, Bl As Range, ZL As Range
Set ZL = Range("V2")
Set rng = Range("U2:U" & Cells(Rows.Count, "U").End(xlUp).Row)
For Each r In rng.SpecialCells(xlCellTypeBlanks) Set Bl = Range(r.Offset(, -1), r.Offset(1).End(xlDown)) Bl.Copy ZL Set ZL = ZL.Offset(, 2) Next r End Sub
Dein Ansatz hat tatsächlich recht gut funktioniert, allerdings ist mir noch eine Unstimmigkeit aufgefallen. In Screenshot 2 siehst Du, dass leider "Projekt2" mit seinen Einträgen nochmals unter "Projekt1" kopiert wird. Das wäre noch das was nicht ganz passen würde. Ansonsten top!
Ich war so frei und habe im Code noch V2 durch W2 ersetzt (siehe Screenshot VBA), damit die kopierten Spalten etwas Abstand haben. Aber das hatte keinen Einfluss auf die verbleibende Auffälligkeit.
Sub T_1() Dim rng As Range, r As Range, Bl As Range, ZL As Range
Set ZL = Range("V2")
Set rng = Range("U2:U" & Cells(Rows.Count, "U").End(xlUp).Row)
For Each r In rng.SpecialCells(xlCellTypeBlanks) If Not VBA.IsEmpty(r.Offset(2)) Then Set Bl = Range(r.Offset(, -1), r.Offset(1).End(xlDown)) Else Set Bl = Range(r.Offset(, -1), r.Offset(1)) End If
Bl.Copy ZL Set ZL = ZL.Offset(, 2) Next r End Sub
Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:1 Nutzer sagt Danke an Fennek für diesen Beitrag 28 • MCT1979