Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

VBA Code - mehrere Zeilen löschen

Betrifft: VBA Code - mehrere Zeilen löschen von: Michel
Geschrieben am: 28.10.2014 07:55:23

Hallo zusammen

Zurzeit verwende ich diesen code;

Sub zeilenloeschen()
    Dim i As Long
    Dim letzteZeile As Long
    Dim suchBereich As Range
    Dim gefunden As Range
    Dim ersterTreffer As String
    Dim suchWert As String
    suchWert = "x" 'hier kommt dein Suchwert rein
    
    With ThisWorkbook.Sheets("Auswertung")
        letzteZeile = .Range("A" & Rows.Count).End(xlUp).Row
        Set suchBereich = .Range("A2:A50")
        Set gefunden = suchBereich.Find(What:=suchWert, LookAt:=xlPart)
        If Not gefunden Is Nothing Then
            ersterTreffer = gefunden.Address
            Do
                gefunden.Activate
                ActiveCell.EntireRow.Delete shift:=xlUp
                Set gefunden = suchBereich.Find(What:=suchWert, LookAt:=xlPart)
            Loop While Not gefunden Is Nothing
        End If
    End With
End Sub
Bei diesem kann ich nach betätigung eines Button die Zeilen Nummer eingeben, welche dann gelöscht wird.

Nun meine Bitte an die Experten, kann mir jemand einen Code geben, bei welchem ich von bis eingeben kann?

Danke für die Hilfe =)

Gruss
Mischu

  

Betrifft: AW: VBA Code - mehrere Zeilen löschen von: Matthias L
Geschrieben am: 28.10.2014 08:17:40

Hallo

Zitat:
Bei diesem kann ich nach betätigung eines Button die Zeilen Nummer eingeben, welche dann gelöscht wird.
Hab keine Eingabe gefunden, wo machst Du das denn?

Vielleicht sollst Du da ne Inputbox benutzen bzw. 2
Die musst Du aber noch auf eine korrekte Eingabe überprüfen !

Option Explicit

Sub zeilenloeschen()
    Dim i As Long
    Dim letzteZeile As Long
    Dim suchBereich As Range
    Dim gefunden As Range
    Dim ersterTreffer As String
    Dim suchWert As String
    Dim FirstRow&
    Dim LastRow&
On Error GoTo Fehler
    suchWert = "x" 'hier kommt dein Suchwert rein
    
    FirstRow = InputBox("Bitte 1.Zeile eingeben")
     LastRow = InputBox("Bitte 2.Zeile eingeben")
    
    With ThisWorkbook.Sheets("Auswertung")
        letzteZeile = .Range("A" & Rows.Count).End(xlUp).Row
        Set suchBereich = .Range("A" & FirstRow & ":A" & LastRow)
        Set gefunden = suchBereich.Find(What:=suchWert, LookAt:=xlPart)
        If Not gefunden Is Nothing Then
            ersterTreffer = gefunden.Address
            Do
                gefunden.Activate
                ActiveCell.EntireRow.Delete shift:=xlUp
                Set gefunden = suchBereich.Find(What:=suchWert, LookAt:=xlPart)
            Loop While Not gefunden Is Nothing
        End If
    End With
Fehler:
On Error GoTo 0
End Sub
Gruß Matthias


  

Betrifft: AW: VBA Code - mehrere Zeilen löschen von: Michel
Geschrieben am: 28.10.2014 10:37:56

Hallo Matthias

Stimmt, ich hatte zwei varianten mit zwei unterschiedlichen Codes.
Nun habe ich dir leider den falschen geschickt.

Habe deinen Code angepasst,

Sub zeilenloeschen()
    Dim FirstRow&
    Dim LastRow&
    
    FirstRow = InputBox("Bitte 1.Zeile eingeben")
     LastRow = InputBox("Bitte 2.Zeile eingeben")
    
    With ThisWorkbook.Sheets("Auswertung")

    ActiveCell.EntireRow.Delete
    
End With
End Sub
Nur verstehe ich nicht ganz, wieso er mir nicht die Zeilen löscht, welche ich in der Inputbox angegeben habe.

Kannst du mir weiterhelfen?

Danke schon im Voraus

Gruss
Mischu


  

Betrifft: AW: VBA Code - mehrere Zeilen löschen von: Matthias L
Geschrieben am: 28.10.2014 11:48:49

Hallo

Zitat:
Nur verstehe ich nicht ganz, wieso er mir nicht die Zeilen löscht, welche ich in der Inputbox angegeben habe.


Wenn Du sie im weitere Verauf des Makro nicht angibst, werden sie auch nicht gelöscht!
Du hast ja mit:

ActiveCell.EntireRow.Delete

nur die Zeile der aktiven Zelle gelöscht.



Probier das:
Option Explicit
Sub zeilenloeschen()
Dim FirstRow&, LastRow&
On Error GoTo Fehler

FirstRow = InputBox("Bitte 1.Zeile eingeben")
 LastRow = InputBox("Bitte 2.Zeile eingeben")
 
 With ThisWorkbook.Sheets("Auswertung")
 .Rows(FirstRow & ":" & LastRow).Delete
 End With
Exit Sub

Fehler:
MsgBox "Zeilenzahl als Eingabe erwartet!", vbCritical
On Error GoTo 0
End Sub



 

Beiträge aus den Excel-Beispielen zum Thema "VBA Code - mehrere Zeilen löschen"