herbiemaster
Goto Top

Zeilen löschen wenn im Bereich einer Spalte leere Zellen sind, mit vba

hallo allerseits

da mir google und die sufu nicht weiter helfen konnten, hoffe ich dass ihr das könnt

ich habe folgende tabelle
87f4a89c20e0e6a2b817f0d4d42c2229-1

die mit den werten aus dieser gefüllt wird
acd5b036cbcf293a01989bf711a3d377-3

in der generierten tabelle sollen nun aber die zeilen bzw alle werte aus der zeile gelöscht werden,
bei denen in der spalte Y (zusammenfassung)von Y12 bis Y39 nichts steht, Y darf aber nicht gelöscht werden
und es soll dann zusammengerückt werden, also damit zwischendrin keine
leeren zeilen sind.

ich habe folgenden code zur übertragung:
        'Löschen der alten Projektstunden  
        Worksheets(1).Range(Cells(12, 1), Cells(39, 22)).Select
        Selection.ClearContents
        
        For j = 0 To 27
            If Len(Worksheets(ws).Cells(12 + j, 1).Value) <> 0 Then
                projektstunden_vorhanden = False
                For i = 0 To 6  'Tage der Woche ; 0 = Montag  
                    If Len(Worksheets(ws).Cells(12 + j, 3 + i + ((w - 1) * 8)).Value) <> 0 Then
                        projektstunden_vorhanden = True
                    End If
                Next i
                If projektstunden_vorhanden = True Then
                    LastRow_projektstunden = 11
                    For l = 12 To 39
                        If Len(Worksheets(1).Cells(l, 1).Value) <> 0 Then
                            LastRow_projektstunden = l
                        End If
                    Next l
                    Worksheets(1).Cells(LastRow_projektstunden + 1, 1).Value = Worksheets(ws).Cells(12 + j, 1).Value
                    Worksheets(1).Cells(LastRow_projektstunden + 1, 2).Value = Worksheets(ws).Cells(12 + j, 2).Value
                    Worksheets(1).Cells(LastRow_projektstunden + 1, 3).Value = Worksheets(ws).Cells(12 + j, 3).Value
                    For i = 0 To 6  'Tage der Woche ; 0 = Montag  
                        Worksheets(1).Cells(LastRow_projektstunden + 1, 4 + (3 * i)).Value = Worksheets(ws).Cells(12 + j, 5 + i + ((w - 1) * 8)).Value
                    Next i
                End If
            End If
            Worksheets(1).Cells(12 + j, 3 + (3 * i)).Interior.Color = Worksheets(ws).Cells(12 + j, 4 + i + ((w - 1) * 8)).Interior.Color
            Worksheets(1).Cells(12 + j, 3 + (3 * i)).Interior.Pattern = Worksheets(ws).Cells(12 + j, 4 + i + ((w - 1) * 8)).Interior.Pattern
            
            Next j

folgendes habe ich bereits versucht, hat aber nicht funktioniert

Worksheets(1).Range("Y12:Y39").SpecialCells(xlCellTypeBlanks).EntireRow.Delete  

vielen dank schon mal im voraus!

Content-ID: 103187

Url: https://administrator.de/contentid/103187

Ausgedruckt am: 25.11.2024 um 20:11 Uhr