Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1396to1400
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeile löschen von bis

Zeile löschen von bis
14.12.2014 11:47:55
bis
Hallo zusammen
Leider fand ich keine Hilfe im Internet...
Ich habe zum Beispiel in der Spalte A mehrer Texte/Zahlen in den Zellen abgelegt. A1=text01 A2=Text02 A3=Start A4=Heinz A5=Peter A6=Ende A7=Text07 A8=Text08 usw.
Suche nun ein Macro, dass mir alle Zeilen unter dem Eintrag "Ende" und nach dem Eintrag "Start" löscht. Die Zeilen A4 & A5 (Heinz, Peter) zwischen Ende und Start dürfen auch nicht gelöscht werden. Also die Zeilen A3 bis A6 sollten am Schluss noch vorhanden.
Ich danke Euch jetzt schon für die Hilfe. :-)
Albin

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile löschen von bis
14.12.2014 12:15:01
bis
Hallo Albin,
so gemeint?

Die Datei https://www.herber.de/bbs/user/94399.xlsm wurde aus Datenschutzgründen gelöscht


Gruß Matze

AW: Zeile löschen von bis
14.12.2014 14:22:48
bis
Das ging aber Schnell
Leider passt es noch nicht so ganz. Der Text "Start" und "Ende" kommt nur einmal vor. Am Schluss sollte sollte es so aussehen:
A:
1:Start
2:Heinz
3:Peter
4:Ende
Gruss und Dank, Albin

Rückfrage,..
14.12.2014 14:34:40
Matze
Hallo Albin.
ist der Startpunkt in A3 Fix oder ist der flexibel das "Start" irgendwann in A9 beginnt?
Dann wird's aufwendiger.
Gruß Matze

Anzeige
AW: Rückfrage,..
14.12.2014 14:40:54
albin
Hallo Matze
Der der Text "Start" kann auch z.B. erst in Zeile A564 kommen. Es geht darum, ich inporte eine ganze Internetseite mit einer List, wo ich nur einen bestimmten Teil benötige.

AW: Zeile löschen von bis
14.12.2014 14:40:25
bis
Moin
Dim rngLast As Range
Dim rngFirst As Range
Set rngLast = Range("A:A").Find(what:="Ende", after:=Range("A1"), searchdirection:=xlPrevious) _
Set rngFirst = Range("A:A").Find(what:="Start", after:=rngLast, searchdirection:=xlNext)
Range(rngFirst.Offset(2, 0), rngLast.Offset(-2, 0)).EntireRow.Delete

Ohne Pruefung ob Start und Ende vorhanden.
gruss hary

Anzeige
AW: Zeile löschen von bis
14.12.2014 15:02:44
bis
Hoi hary
Kannst Du mir bitte das ganze Macro senden. Ich habe Probleme mit If. Bin (noch) in der Ausbildung. Sorry

AW: Zeile löschen von bis
14.12.2014 15:11:45
bis
Moin
Das ist das Makro.
Ansicht/Makros/Name eingeben/erstellen und den Code rein.
gruss hary

AW: besser...
14.12.2014 15:16:36
hary
Moin nochmal
.. du beziehst den Code auf das Blatt.
Dim rngLast As Range
Dim rngFirst As Range
with Worksheets("Tabelle1")'---Name anpassen
Set rngLast = .Range("A:A").Find(what:="Ende", after:=.Range("A1"), searchdirection:= _
xlPrevious) _
Set rngFirst = .Range("A:A").Find(what:="Start", after:=rngLast, searchdirection:=xlNext)
.Range(rngFirst.Offset(2, 0), rngLast.Offset(-2, 0)).EntireRow.Delete
End with

gruss hary

Anzeige
AW: Zeile löschen von bis
14.12.2014 15:19:51
bis
Hi hary,
ich hatte das auch falsch verstanden, er möchte das von Start bis Ende alles stehen bleibt und die restlichen Zeilen der spalte A gelöscht werden.
Ich bekomms nicht hin, hilf mir mal.
Gruß Matze

AW: Zeile löschen von bis
14.12.2014 16:07:24
bis
Ja ja hary
Du hast es fast geschaft. Es sollte einfach noch die Zeile mit dem Text "Ende" stehen bleiben. Jetzt kommt auch noch ein Fehler Laufzeitfehler 91 beim zweit Durchlauf.
Albin

AW: Zeile löschen von bis
15.12.2014 06:11:49
bis
Moin
Teststart:



Tabelle1
 A
1x
2x
3x
4start
5hugo
6q
7q
8q
9peter
10ende
11x
12x

http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://hajo-excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 14.02 einschl 64 Bit

nach Makrolauf:



Tabelle1
 A
1start
2hugo
3q
4q
5q
6peter
7ende

http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://hajo-excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 14.02 einschl 64 Bit

Wieso zweter Durchlauf? Gibt es noch mehr Start und Ende?
gruss hary

Anzeige
AW: Zeile löschen von bis
14.12.2014 15:23:49
bis
Genau Matze
Von "Start" bis "Ende" muss alles bleiben.
Danke für Deutsch - Hilfe.

AW: Zeile löschen von bis
14.12.2014 15:46:18
bis
Moin
Dann so.
Dim rngLast As Long
Dim rngFirst As Long
Dim letzte As Long
With Worksheets("Tabelle1") '---Name anpassen
letzte = .Cells(Rows.Count, 1).End(xlUp).Row
rngLast = .Range("A1:A" & letzte).Find(what:="Ende", after:=.Range("A1"), searchdirection:= _
xlPrevious).Row
rngFirst = .Range("A1:A" & letzte).Find(what:="Start", after:=.Cells(rngLast, 1),  _
searchdirection:=xlNext).Row
.Rows(rngLast + 1 & ":" & letzte).Delete
.Rows("1:" & rngFirst - 1).Delete
End With

Anzeige
AW: Zeile löschen von bis
15.12.2014 22:08:22
bis
Hallo, da die Lösung. Grossen Dank an Alle. Albin
Sub StartEndeWeg()
Dim rngLast As Long
Dim rngFirst As Long
Dim letzte As Long
With Worksheets("Tabelle1")
For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
.Cells(i, 1) = Trim(.Cells(i, 1))
Next i
letzte = .Cells(Rows.Count, 1).End(xlUp).Row
Set s = .Columns(1).Find(What:="Start", LookIn:=xlValues, LookAt:=xlWhole)
If Not s Is Nothing Then zs = s.Row
Set P = .Columns(1).Find(What:="Ende", LookIn:=xlValues, LookAt:=xlWhole)
If Not P Is Nothing Then zp = P.Row
.Rows(letzte & ":" & zp + 1).Delete
.Rows("1:" & zs - 1).Delete
End With
End Sub

Anzeige
Jo iss klar,...
16.12.2014 10:45:37
Matze
Hallo Albin,
du solltest dir angewöhnen mit Option Explicit zu arbeiten.
Dies gehört über den Code in die erste Zeile.
Gut deine Erweiterung ist nix anderes wie harys Zeilen, ausser das du Trim Funktion dazu geholt hast.
Auch dein Code sollte nicht mehrfach ausgeführt werden, teste es mal selbst, spätesten der 3te Versuch gibt dir Ernüchterung.
Hab eine Prüfung der ersten Zelle auf "Start" mit eingebaut:
Option Explicit

Sub StartEnde()
Dim rngLast As Long
Dim rngFirst As Long
Dim letzte As Long
Dim i As Variant

Application.ScreenUpdating = False
'Wenn Start in der ersten Zelle steht dann Makro verlassen 
If Range("a1").Value = "Start" Then Exit Sub

With ActiveSheet

For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
.Cells(i, 1) = Trim(.Cells(i, 1))
Next i


letzte = .Cells(Rows.Count, 1).End(xlUp).Row
 rngLast = .Range("A1:A" & letzte).Find(What:="Ende", after:=.Range("A1"), searchdirection:= _
xlPrevious).Row
 rngFirst = .Range("A1:A" & letzte).Find(What:="Start", after:=.Cells(rngLast, 1), _
searchdirection:=xlNext).Row
 .Rows(rngLast + 1 & ":" & letzte).Delete
 If .Range("a1").Value = "Start" Then Exit Sub
 .Rows("1:" & rngFirst - 1).Delete
End With

Application.ScreenUpdating = True
End Sub
[size=8]Code eingefügt mit [url=http://vbahtml.origo.ethz.ch] VBA in HTML 2.3[/url][/size]
Gruß Matze

Anzeige
AW: Jo iss klar Matze
16.12.2014 12:59:52
hary
Moin Matze
"Hab eine Prüfung der ersten Zelle auf "Start" mit eingebaut:"
Sogar 2x
;-)
gruss hary

Das weise Zeug zu Weihnachten,..nit gut owT
16.12.2014 14:07:29
Matze

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige