Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
440to444
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
440to444
440to444
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Löschen eines Tabellenbereiches

Löschen eines Tabellenbereiches
18.06.2004 15:43:11
Stef
Hallo zusammen!
Habe ein Problem. Ich bekomme verschiedene Tabellen bei denen ich nur einen bestimmten Teil brauche, den rest will ich über ein Makro löschen. Die Tabellen sehen von der Spalteneinteilung alle gleich, nur die Länge ist verschieden.
Das Makro soll die Tabelle dursuchen und soll die Zeilen bis in der Spalte E das Wort Aufmachung zum "2-ten mal" eingetragen ist. Dann soll es den dursuchten Teil und den unteren Teil, ab der Zeile wo das Wort Aufmachung zum "3ten mal" steht, löschen. Den Teil zwischen dem 2. und 3. Teil brauche ich!!!
Kann mir irgendjemand helfen???
Danke und Gruß Stef

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Löschen eines Tabellenbereiches
18.06.2004 16:20:27
joel
hallo stef
alles halb so wild


Sub BereichLoeschen()
Const SPALTE = 5
Const GESUCHTER_WERT = "Aufmachung"
Dim i As Integer
Dim iWert() As Integer
'bereiche suchen
ReDim iWert(1 To 1)
i = 1
Do
If Feuil1.Cells(i, SPALTE).Value = GESUCHTER_WERT Then
iWert(UBound(iWert)) = i
ReDim Preserve iWert(1 To UBound(iWert) + 1)
End If
i = i + 1
Loop While UBound(iWert) <= 3
'bereiche löschen
Range(Feuil1.Cells(1, 1), _
Feuil1.Cells(iWert(2), SPALTE)).ClearContents
Range(Feuil1.Cells(iWert(3), 1), _
Feuil1.Cells(Feuil1.UsedRange.Rows.Count, SPALTE)).ClearContents
End Sub


ersetze noch "Feuil1" mit "Tabelle1" o.ä.
falls Feuil1.UsedRange.Rows.Count falsche werte ausgibt, ersetze dies mit der der untersten zeile, die du löschen willst.. oder halt mit einer grossen zahl (z.b. 10'000)
gruss joel
Anzeige
AW: Löschen eines Tabellenbereiches
21.06.2004 08:46:50
Stef
Danke dir!!!
Wo soll ich das einfügen? bringt immer Laufzeitfehler. und wie mach ich das damit ich das auch immer mit einer Tastenkombination mache?
Gruß Stef
AW: Löschen eines Tabellenbereiches
21.06.2004 09:57:03
joel
hallo
füg es im VBA-editor unter Tabelle1 ein
dann in excel unter extras..makro..makros die sub suchen (Bereich loeschen), anschliessend unter "optionen" einen kürzel hinzufügen
damit du keine laufzeitfehler erhälst, musst du den code noch anpassen:
die konstanten (Spalte und GesuchterWert)
ersetze Feuil1 überall mit Tabelle1 (oder dem namen der entsprechenden Tabelle im VBA-editor, achtung, enspricht nicht unbedingt dem angezeigten namen in excel..)
hoffe, das hilft dir weiter
ansonsten beschreib mal deinen laufzeitfehler
gruss joel
Anzeige
AW: Löschen eines Tabellenbereiches
21.06.2004 10:20:25
Stef
Jetzt kommt Objekt erfoderlich als Meldung! Habe das Feuil1 geändert,der Rest hat gestimmt und habe ein Kürzel hinzugefügt.
AW: Löschen eines Tabellenbereiches
21.06.2004 10:24:34
joel
klicke debuggen und schreib mir die zeile, bei der der cursor steht.. ansonsten ich nur raten, woran es liegt
gruss joel
AW: Löschen eines Tabellenbereiches
21.06.2004 10:33:30
Stef
Da ist kein Button zum Debuggen.
Ich lade mal die datei hoch...dann kannst du es ja selbst sehn!!!
https://www.herber.de/bbs/user/7566.htm
AW: Löschen eines Tabellenbereiches
21.06.2004 11:40:10
Stef
So hier ist jetzt die XLS-Datei. Vielleicht kannst du mit dieser mehr anfangen als mit der HTM-Datei.

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

Anzeige
AW: Löschen eines Tabellenbereiches
21.06.2004 12:11:51
joel
hallo
du hattest den code am falschen ort. dann hab ich doch geschrieben, dass du nicht den namen verwenden sollst, der in excel angezeigt wird, sondern den namen aus dem VBA-editor (bei dir Tabelle1).
https://www.herber.de/bbs/user/7568.xls

dass du zellbereiche hast, die verbunden sind wusste ich nicht, deshalb ein leicht abgeändertes makro.
die frage bleibt jedoch, was du mit dem makro bezwecken möchtest, denn zur zeit ist es genau für tabelle 1 sinnvoll, für andere tabellen musst du es erst wieder den code abändern. oder importierst du diese daten etwa?
übrigens, falls du mehr als nur die ersten 5 spalten löschen möchtest, musst du das makro leicht anpassen.. das solltest du schaffen, ansonsten frag halt wieder :-)
gruss joel
Anzeige
AW: Löschen eines Tabellenbereiches
21.06.2004 12:55:57
Steff
Danke dir Joel!
Ich brauche es nicht nur für diese Tabelle, es werden noch andere gelöscht, die aber genau gleich dargestellt werden, nur die länge der tabellen ändert sich.
Aber ich glaub du hast da was falsch verstanden. es sollen nicht die ersten 5 Spalten gelöscht werden, sondern die Zeilen bis das Wort "Aufmachung" zum 2Mal in der Spalte E (Spalte 5) auftaucht löschen und auch den teil, wo das Wort zum 3mal auftaucht.
Ich lade mal einmal die Datei im zugeschickten Zustand und einmal im fertigen zustand!! Zur Hilfe welchen Teil ich brauche, schreibe ich vor Aufmachung die Reihenfolge.
Bekomme sie so: https://www.herber.de/bbs/user/7570.xls
So soll sie dann aussehn:

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

Anzeige
AW: Löschen eines Tabellenbereiches
21.06.2004 13:38:43
joel
hallo steff
alles klar.. ersetz einfach den code
Option Explicit

Sub BereichLoeschen()
Const SPALTE_GESUCHTER_WERT = 5
Const GESUCHTER_WERT = "Aufmachung"
Dim l As Long
Dim lWert() As Long
'bereiche suchen
ReDim lWert(1 To 1)
l = 1
Do
If Tabelle1.Cells(l, SPALTE_GESUCHTER_WERT).Value = GESUCHTER_WERT Then
lWert(UBound(lWert)) = l
ReDim Preserve lWert(1 To UBound(lWert) + 1)
End If
l = l + 1
Loop While UBound(lWert) <= 3
'bereiche löschen
Tabelle1.Rows(1 & ":" & lWert(1) - 1).Delete
Tabelle1.Rows(lWert(2) - lWert(1) & ":" & Tabelle1.UsedRange.Rows.Count).Delete
End Sub

gruss joel
ps: in spalte E hast du teilweise verbundene zellen. aufmachung steht z.b. optisch (unten ausgerichtet) in zeile 5. durch den zellenverbund erhält jedoch die zelle E4 den wert "aufmachung", weshalb er vom makro auch dort gefunden wird. das heisst, die zeile 4 wird nicht gelöscht, obschon sie eigentlich "vor" aufmachung steht..
Anzeige
AW: Löschen eines Tabellenbereiches
21.06.2004 14:01:50
Steff
Vielen Dank!!!
Das funktioniert echt klasse!!!
Kannst du mir noch sagen wie ich es mache das es auch geht wenn ich eine weitere, andere Tabelle öffne ohne das Makro in jede Tabelle einzufügen?
Bin Praktikant und lerne mich grad in EXCEL und VBA ein....deswegen bin ich noch neuling auf diesem Gebiet und bin für jede Hilfe dankbar!!!
AW: Löschen eines Tabellenbereiches
21.06.2004 14:09:41
joel
hallo stef... genau das hab ich ja gemeint, als ich dich fragte, inwiefern dir das makro von nutzen ist.
du musst im code jetzt Tabelle1 mit "ActiveSheet" ersetzen. dann brauchst du das file, in dem das makro definiert ist lediglich geöffnet zu haben, die jeweilige Tabelle auswählen (muss also aktiv sein) und per "Ctrl + ??" dein makro ausführen (?? steht für dein kürzel)
gruss joel
ps: hab das nicht getestet, sollte aber funzen
Anzeige
AW: Löschen eines Tabellenbereiches
21.06.2004 14:51:54
Steff
Vielen Dank!!!
So das funktioniert echt gut!!! Für das erste ist die arbeit getan...den rest versuch ich jetzt erstmal selber und sonst melde ich mich einfach wieder hier im Forum!!!
Danke und schönen Tag

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige