PDA

Vollständige Version anzeigen : Zellen variabel löschen


Julbert
30.03.2012, 09:10
Hallo,

Ich bastle gerade an einem Code für ein größeres Programm.
Dieser Code funktioniert zwar jetzt ist aber glaube ich sehr umständlich geschrieben...vielleicht kann mir jemand weiterhelfen wie ich das ganze schöner verpacke.
Der Code löscht mir in meiner Tabelle verschiedene ungenutzte Zellen vor den eigentlichen Daten. Die Länge ist variabel, deshalb habe ich keine festen Angaben verwenden können

Hier mal der Code und im Anhang die Tabelle dazu.


Sub Vorbauweg() 'löscht den Vorbau bei den Tags weg

Dim Rng As Range
Dim wks As Worksheet


Set wks = ActiveSheet

Set Rng = wks.UsedRange.Find(what:="Abfrage der Tags", lookAt:=xlPart, LookIn:=xlValues, MatchCase:=True).Offset(1, 0)

If Not Rng Is Nothing Then Rng.Offset(2, 0).Select
ActiveCell.End(xlToRight).Offset(-1, 0).End(xlDown).Offset(0, -1).Select

Range(Rng, ActiveCell).Delete

End Sub



Sub Vorbauweglist() 'löscht den Vorbau bei den listen weg

Dim Rng As Range
Dim wks As Worksheet

Set wks = ActiveSheet

Set Rng = wks.UsedRange.Find(what:="Listen", lookAt:=xlPart, LookIn:=xlValues, MatchCase:=True)

If Not Rng Is Nothing Then Rng.Offset(2, 0).Activate
ActiveCell.End(xlToRight).Offset(-1, -1).Select
Range(Cells(Rows.Count, ActiveCell.End(xlToLeft).Column), ActiveCell).Cells.SpecialCells(xlCellTypeBlanks).Offset(-1, 0).Delete

End Sub


Dankeschön

Grüße Julius

ChrisVBA
01.04.2012, 21:10
Hallo Julius,

ich konnte den VBA-Code nicht mit der Tabelle in einen Zusammenhang bekommen, weil die Suchbegriffe "Abfrage der Tags" bzw. "Listen" in der Tabelle nicht vorhanden sind.

Um dir zu helfen, wären auch Kommentare im Code sehr nützlich.

Aber gut, da man auf Activate und Select in den allermeisten Fällen verzichten kann, habe ich versucht, ein hoffentlich übersichtlicheres Makro zu basteln. Da ich nicht herausbekommen konnte, welche Zellen da genau gelöscht werden sollen, habe ich ebenfalls auf Kommentare verzichtet.

Ich hoffe, das hilft dir trotzdem weiter.

Viele Grüße!

Christian

Sub Vorbauweg() 'löscht den Vorbau bei den Tags weg
Dim Rng As Range

Set Rng = Cells.Find(what:="Abfrage der Tags", lookAt:=xlPart, LookIn:=xlValues, MatchCase:=True).Offset(1, 0)
If Not Rng Is Nothing Then Range(Rng.Offset(2, 0), Cells(Rows.Count, Columns.Count - 1)).Delete

End Sub

Sub Vorbauweglist() 'löscht den Vorbau bei den listen weg

Dim Rng As Range
Dim rng2 As Range
Dim wks As Worksheet

Set Rng = Cells.Find(what:="Listen", lookAt:=xlPart, LookIn:=xlValues, MatchCase:=True)

If Not Rng Is Nothing Then
Set rng2 = Cells(Rng.Row + 1, Columns.Count - 1)
Set rng2 = Range(Cells(Rows.Count, rng2.End(xlToLeft).Column), rng2).Cells
rng2.SpecialCells(xlCellTypeBlanks).Offset(-1, 0).Delete
End If

End Sub

Julbert
02.04.2012, 07:47
Danke für die Antwort und den Code,

habe ihn noch ein bisschen umgebastelt, aber jetzt funktioniert er schon ganz gut.

Grüße

Julius