Löschen von Zeilen
 |
Betrifft: Löschen von Zeilen
von: Erich M.
Geschrieben am: 12.09.2004 09:44:05
Hallo EXCEL-Freunde,
ich suche eine VBA-Lösung für folgendes Problem:
In nachstehender Tabelle 2 sollen alle Zeilen gelöscht werden, deren Nr. der Spalte A in Tabelle 1 in der Spalte B mit erledigt gekennzeichnet ist. Die Zahlen sind nicht in irgendeiner Form sortiert.
Besten Dank für eine Hilfe!
|
Tabelle1 |
| A | B | 1 | Nr | Status | 2 | 1234 | neu | 3 | 2345 | erledigt | 4 | 4567 | neu | 5 | 6789 | erledigt | |
|
Tabelle2 |
| A | B | 1 | Nr | | 2 | 6789 | löschen ?? | 3 | 2345 | | 4 | 4567 | | 5 | 1234 | | 6 | 6750 | | 7 | 2345 | löschen ?? | 8 | 5430 | | |
|
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen Excel Jeanie HTML 3.0 Download mfg
Erich
Betrifft: AW: Löschen von Zeilen
von: Mike E.
Geschrieben am: 12.09.2004 10:21:24
Hallo Erich,
so z.B.:
diesen Code mußt du in die Selection_Change-Eigenschaft des Tabellenblattes im VBA-Editor zuweisen:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Zeile As Integer, Zeile1 As Integer, i As Integer
Zeile1 = 2
i = 2
While Sheets(1).Cells(i, 1) <> ""
i = i + 1
Wend
For Zeile = 2 To i
If Cells(Zeile, 2) = "erledigt" Then
Sheets(1).Range(Cells(Zeile, 1), Cells(Zeile, 2)).Delete shift:=xlUp: Exit Sub
End If
Next Zeile
End Sub
Grüße
Mike
Betrifft: AW: Löschen von Zeilen
von: Erich M.
Geschrieben am: 12.09.2004 11:28:21
Hallo Mike,
leider läuft der Code nicht durch; zudem wäre die Frage in welcher Tabelle.
Code von Annett ist aber super.
mfg
Erich
Betrifft: AW: Löschen von Zeilen
von: Peter
Geschrieben am: 12.09.2004 10:25:36
Probiere mal das:
Sub ZeileLöschen()
Dim intZeile As Integer, intI As Integer
intZeile = Sheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).Row
For intI = intZeile To 1 Step -1
If Sheets("Tabelle1").Cells(intI, 2).Value = "erledigt" Then Rows(intI).Delete
Next intI
End Sub
Betrifft: AW: Löschen von Zeilen
von: Erich M.
Geschrieben am: 12.09.2004 11:29:21
Hallo Peter,
besten Dank - leider löscht der code aber die gleiche Zeile in der Tabelle - darf
aber nicht sein.
Code von Annett läuft aber.
mfg
Erich
Betrifft: AW: Löschen von Zeilen
von: Peter
Geschrieben am: 12.09.2004 11:43:19
Du hast Recht, ich habe die Aufgabenstellung nicht richtig gelesen.
Betrifft: AW: Löschen von Zeilen
von: Annett
Geschrieben am: 12.09.2004 10:27:02
Hallo Erich,
Sub Zeilen_loeschen()
Dim I As Long
Dim J As Long
Dim Letzte1 As Long
Dim Letzte2 As Long
Letzte1 = 65536
With Worksheets("Tabelle1")
If .Range("A65536") = "" Then Letzte1 = .Range("A65536").End(xlUp).Row
End With
Letzte2 = 65536
With Worksheets("Tabelle2")
If .Range("A65536") = "" Then Letzte2 = .Range("A65536").End(xlUp).Row
End With
For I = Letzte1 To 1 Step -1
For J = 1 To Letzte2
If Worksheets("Tabelle1").Cells(I, 1) = Worksheets("Tabelle2").Cells(J, 1) And _
Worksheets("Tabelle1").Cells(I, 2) = "erledigt" Then
Worksheets("Tabelle2").Rows(J).Delete
End If
Next J
Next I
End Sub
Gruß Annett
Betrifft: AW: Löschen von Zeilen
von: Erich M.
Geschrieben am: 12.09.2004 11:27:24
Hallo Annett,
Volltreffer! War genau das was ich gesucht habe.
Allerdings habe ich in meinen Tabellen das Problem der doppelten Nrn. entdeckt.
Erste Teillösung:
iRowL = Cells(Cells.Rows.Count, 1).End(xlUp).Row
For iRow = iRowL To 1 Step -1
If WorksheetFunction.CountIf(Columns(1), Cells(iRow, 1)) > 1 Then
MsgBox "Problem, es bestehen doppelte Nummern in Spalte A"
Exit Sub
End If
Next iRow
Damit kann ich den Vorgang abfangen, damit bei doppelten Nrn. keine falschen Löschungen
stattfinden.
Mein Problem jetzt:
Dieser Vorgang bezieht sich auf die aktivierte Tabelle - leider schaffe ich es nicht,
den Code so zu steuern, dass er
- zuerst die Tabelle 1, Spalte A
- dann die Tabelle 2, Spalte A
durchsucht undnur dann der Löschvorgang ausgeführt wird, wenn in den jeweiligen
Spalten keine Doppelten sind.
(Hast da sicher eine Idee)
Als Komfortlösung wäre dann die Anzeige der betroffenen Zeilen in der MsgBox mit den
Doppelten; da habe ich aber bestimmt was in meinem Fundus (von herber) und kann das
ergänzen.
Besten Dank nochmal.
mfg
Erich
Betrifft: AW: Löschen von Zeilen
von: Annett
Geschrieben am: 12.09.2004 15:30:38
Hallo Erich,
kannst Du das Problem genauer erklären, vielleicht mit Beispieldatei. Ich habe den Code ohne Beispieldatei erstellt und habe jetzt keine Lust Extra eine zu erstellen. Wobei mir Dein Problem auch nicht ganz klar ist.
Gruß Annett
Betrifft: AW: Löschen von Zeilen
von: Erich M.
Geschrieben am: 12.09.2004 17:16:09
Hallo Annett,
mittlerweile habe ich eine Lösung gefunden, ohne zu wissen ob die optimal ist:
https://www.herber.de/bbs/user/10810.xlsmfg
Erich
Betrifft: AW: Löschen von Zeilen
von: Annett
Geschrieben am: 12.09.2004 17:19:26
Hallo Erich,
Activate und Select ist zu 99% in VBA nicht notwendig.
Gruß Annett
Betrifft: Danke - Annett; o.T. (vergess ich immer wieder)
von: Erich M.
Geschrieben am: 13.09.2004 08:14:52
.
Beiträge aus den Excel-Beispielen zum Thema "Löschen von Zeilen"