Clever-Excel-Forum

Normale Version: Hilfe beim Workbook Open Event
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen, 

nun muss ich doch einmal aktiv nach Hilfe fragen, da mich langes Suchen im Web oder auch das Durchforsten meines Excel Buchs nicht weitergebracht haben. 

Aber vielleicht sehe ich ja auch vor lauter Wald den Baum nicht mehr. 

Folgender Code läuft beim Öffnen der Datei durch: 

Code:
Private Sub Workbook_Open()

Dim ilng        As Long


With Sheets("Dashboard")

    For ilng = 11 To 20
        If .Range("K" & CStr(ilng)).Value = Date - 1 Then Exit For
    Next ilng
    .Range("G" & CStr(ilng)).Value = ""
    .Range("J" & CStr(ilng)).Value = ""
    .Range("K" & CStr(ilng)).Value = ""
    .Range("L" & CStr(ilng)).Value = ""
 
End With

End Sub


In den Spalten H & J befindet sich eine Formel drin, daher wird diese nicht gelöscht. 

Jetzt zu meiner Frage. 

Wie kann ich den oben stehenden Code so abändern, dass er alle Einträge die unter dem gelöschten Bereich Automatisch nach oben verschoben werden, damit es nicht zu Hässlichen Lücken kommt. 

Ich wäre für jede Hilfe sehr Dankbar und freue mich auf eure Antworten. 

Krümmelige Grüße
Butterkeks
Hallo,

Code:
    .Range("G" & CStr(ilng)).Delete xlShiftUp
    .Range("J" & CStr(ilng)).Delete xlShiftUp
    .Range("K" & CStr(ilng)).Delete xlShiftUp
    .Range("L" & CStr(ilng)).Delete xlShiftUp

Gruß Uwe
Hallo Kuwer, 

erst einmal vielen Dank für deine schnelle Antwort. 

Der Code macht was er soll, allerdings macht er mir auch die SVERWEIS Formel, die in den Spalten H und J stehen kaputt, indem er den Zellbezug auf G entfernt und durch den #BEZUG ersetzt.

Als Beispiel: 

In H11 steht jetzt drin:

=WENNFEHLER(SVERWEIS(#BEZUG!;Tabelle3!$A$2:$H$49;2;FALSCH);"")

In H12 steht nun:

=WENNFEHLER(SVERWEIS(G11;Tabelle3!$A$2:$H$49;2;FALSCH);"")

Ich habe schon versucht den Zellbezug auf G11 mittels F4 zu fixieren, aber mit dem selben Resultat. 

Ich wäre dir sehr Dankbar, und allen anderen natürlich auch, wenn man mir hier nochmal Helfen kann. 

Krümmelige Grüße
Butterkeks
Hallo nochmal, 

hier hat sich ein Schreibfehler eingeschlichen. 

In den Spalten H & I sind die Formel drin und nicht in H & J wie in den letzten beiden Posts von mir geschrieben. 

Krümmelige Grüße
Butterkeks
Hi,

test mal folgendes:
Code:
Private Sub Workbook_Open()
Dim ilng        As Long
With Sheets("Dashboard")
    For ilng = 11 To 20
        If .Range("K" & CStr(ilng)).Value = Date - 1 Then Exit For
    Next ilng
    If ilng <= 20 Then
        With Intersect(.Rows(ilng + 1 & ":21"), .Range("G:G"))
            .Copy .Offset(-1)
        End With
        With Intersect(.Rows(ilng + 1 & ":21"), .Range("J:L"))
            .Copy .Offset(-1)
        End With
    End If
End With
End Sub
Da du keine Beispieldatei geliefert hast, kann ich es selbst nicht testen!
Grüße HKindler

ich danke dir vielmals für deine tolle Hilfe. 

Dein Code macht genau das, was ich mir vorgestellt habe. 

Krümmelige Grüße
Butterkeks