Letzte Zeile mit bestimmten Bereichen löschen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Letzte Zeile mit bestimmten Bereichen löschen
von: Silvia
Geschrieben am: 21.09.2003 14:32:30

Hallo Excelgemeinde,
ich habe folgenden Code, für den ich bei
der Anpassung Unterstützung benötige:


Sub LetzteZeileLöschen()
Dim A As String
    Worksheets("Firmenliste").Activate
    Sheets("Firmenliste").Unprotect ("123")
    Sheets("Firmenliste").Protect UserInterfaceOnly:=True
            A = MsgBox("Wollen Sie die letzte Zeile wirklich löschen?", vbYesNo + vbDefaultButton2)
         If A = vbNo Then Exit Sub
         Cells(Rows.Count, 1).End (xlUp) `<- hier muß jetzt noch die Range-Anweisung kommen
                                            'für die Zellen B:I und K:L
                                            'anschließend löschen
End Sub


Danke für Eure Mithilfe
Gruß Silvia
Bild


Betrifft: AW: Letzte Zeile mit bestimmten Bereichen löschen
von: Christoph
Geschrieben am: 21.09.2003 14:43:58

Hi Silvia,
meinst du so:


Sub LetzteZeileLöschen()
Dim A As String
Dim lRow As Integer
lRow = Cells(Rows.Count, 1).End(xlUp).Row
    Worksheets("Firmenliste").Activate
    Sheets("Firmenliste").Unprotect ("123")
    Sheets("Firmenliste").Protect UserInterfaceOnly:=True
            A = MsgBox("Wollen Sie die letzte Zeile wirklich löschen?", vbYesNo + vbDefaultButton2)
         If A = vbNo Then Exit Sub
         Else
            Range(Cells(lRow, 2), Cells(lRow, 9)).ClearContents
            Range(Cells(lRow, 11), Cells(lRow, 13)).ClearContents
         End If
End Sub


Gruß
Christoph


Bild


Betrifft: sorry, war ein Fehler drin
von: Christoph
Geschrieben am: 21.09.2003 14:54:47

Hi Silvia,
das Else und End if muss natürlich weg.
ausserdem ist die Spalte L die 12. Spalte und nicht die 13.
also:

Sub LetzteZeileLöschen()
Dim A As String
Dim lRow As Integer
lRow = Cells(Rows.Count, 1).End(xlUp).Row
    Worksheets("Firmenliste").Activate
    Sheets("Firmenliste").Unprotect ("123")
    Sheets("Firmenliste").Protect UserInterfaceOnly:=True
            A = MsgBox("Wollen Sie die letzte Zeile wirklich löschen?", vbYesNo + vbDefaultButton2)
         If A = vbNo Then Exit Sub
            Range(Cells(lRow, 2), Cells(lRow, 9)).ClearContents
            Range(Cells(lRow, 11), Cells(lRow, 12)).ClearContents
                        
End Sub

Gruß
Christoph


Bild


Betrifft: AW: Letzte Zeile mit bestimmten Bereichen löschen
von: Hajo_Zi
Geschrieben am: 21.09.2003 14:49:07

Hallo Silvia


mal ohne Activate


Sub LetzteZeileLöschen()
    Dim A As String
    Dim Loletzte As Long
    With Worksheets("Firmenliste")
        .Unprotect ("123")
        A = MsgBox("Wollen Sie die letzte Zeile wirklich löschen?", vbYesNo + vbDefaultButton2)
        If A = vbYes Then
            Loletzte = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
            .Range(.Cells(Loletzte, 2), .Cells(Loletzte, 8)).ClearContents
            .Range(.Cells(Loletzte, 11), .Cells(Loletzte, 12)).ClearContents
            'für die Zellen B:I und K:L
        End If
        .Protect ("123")
    End With
End Sub





Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.

Zurzeit gibt es wieder Probleme mit der E-Mail Benachrichtigung.

Ich bekomme Mails zu Beiträgen an denen ich nicht beteiligt bin und zusätzlich noch Mails zu meinen eigenen Beiträgen.
Das Problem mit den eigenen Benachrichtigung kann gelöst werden durch Lösche und Neuanmelden. Dieses möchte ich aber nicht jeden Tag machen.
Um dieses Problem erstmal zu beseitigen habe ich die automatische Mailbenachrichtigung abgeschaltet.
Aus diesem Grunde ist es dem Zufall überlassen ob auf Rückfragen Antworten von mir kommen.


http://home.media-n.de/ziplies/



Bild


Betrifft: Nachtrag
von: Silvia
Geschrieben am: 21.09.2003 18:40:47

Hallo Exceluser,
liebe Helfer,
erst einmal vielen Dank für Eure Unterstützung.

Bei der Umsetzung ist mir mir etwas aufgefallen, das ich vorher übersehen hatte.
Es befinden sich bereits Formelfelder in der Tabelle, die leider als letzte Pos.
gefunden und entsprechend auch, nach meinen bisherigen Angaben, richtigerweise gelöscht werden. Also muß ich mich korrigieren.
Vielleicht könnt Ihr mich nochmal unterstützen.
Also Code wie bisher, aber gesucht wird nicht die letzte Zeile, sondern der letzte
Zelleintrag der Spalte A, der Rest bleibt wie in den Helferbeiträgen dargestellt.
Ich finde beide Vorschläge sehr gut, daher könnt Ihr Euch einen zur Anpassung aussuchen.
Viele herzliche Grüße
Silvia

Hajo`s Vorschlag:


Sub LetzteZeileLöschen()
    Dim A As String
    Dim Loletzte As Long
    With Worksheets("Firmenliste")
        .Unprotect ("123")
        A = MsgBox("Wollen Sie die letzte Zeile wirklich löschen?", vbYesNo + vbDefaultButton2)
        If A = vbYes Then
            Loletzte = .UsedRange.SpecialCells(xlCellTypeLastCell).Row '<-Ersetzen durch Letzte Eintragung in der Spalte A
            .Range(.Cells(Loletzte, 2), .Cells(Loletzte, 8)).ClearContents
            .Range(.Cells(Loletzte, 11), .Cells(Loletzte, 12)).ClearContents
            'für die Zellen B:I und K:L
        End If
        .Protect ("123")
    End With
End Sub


Oder Christop`s Vorschlag:


Sub LetzteZeileLöschen()
Dim A As String
Dim lRow As Integer
lRow = Cells(Rows.Count, 1).End(xlUp).Row '<-Ersetzen durch Letzte Eintragung in der Spalte A
    Worksheets("Firmenliste").Activate
    Sheets("Firmenliste").Unprotect ("123")
    Sheets("Firmenliste").Protect UserInterfaceOnly:=True
            A = MsgBox("Wollen Sie die letzte Zeile wirklich löschen?", vbYesNo + vbDefaultButton2)
         If A = vbNo Then Exit Sub
            Range(Cells(lRow, 2), Cells(lRow, 9)).ClearContents
            Range(Cells(lRow, 11), Cells(lRow, 12)).ClearContents
                        
End Sub



Bild


Betrifft: AW: Nachtrag
von: Hajo_Zi
Geschrieben am: 21.09.2003 18:54:36

Hallo Silvia

die Letzte Zelle in Spalte A wird wie folgt festgestellt

Dim Loletzte as Long
LoLetzte = 65536
If Range("A65536") = "" Then LoLetzte = Range("A65536").End(xlUp).Row



Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.

http://home.media-n.de/ziplies/



Bild


Betrifft: AW: Nachtrag
von: Christoph
Geschrieben am: 21.09.2003 19:40:34

hi Silvia,
die Code-Zeile: lRow = Cells(Rows.Count, 1).End(xlUp).Row bedeutet:

"gehe in der Spalte A von der letzten Zeile (Zeile65536)aus nach oben und suche nach einer Zeile mit Eintrag. Die Spalte A wird hier durch die Spaltennummer festgelegt SpalteA = Spalte1 in: Cells("Zeilen","Spalten")
Insofern ist es genau das, was du willst.
Hajo sucht im benutzten Bereich nach der letzten Zelle, die muss sich aber nicht in Spalte A befinden. alles Klar
Gruß
Christoph


Bild


Betrifft: AW: Nachtrag
von: Hajo_Zi
Geschrieben am: 21.09.2003 19:44:57

Hallo Christoph

den Kommentar habe ich vergessen zu löschen. Im Orignalcode suche ich nach der letzten Zeile im Benutzten Bereuich.



Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.

http://home.media-n.de/ziplies/



Bild


Betrifft: Ich habe fertig :-) D A N K E
von: Silvia
Geschrieben am: 21.09.2003 19:57:28

Klasse Helfer, many thanks!
Jetzt ist es genau so, wie ich es haben wollte.

Grüße S I L V I A


Bild


Betrifft: Danke für die Rückmeldung oT
von: Hajo_Zi
Geschrieben am: 21.09.2003 19:57:50




 Bild

Beiträge aus den Excel-Beispielen zum Thema " Letzte Zeile mit bestimmten Bereichen löschen"