Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1528to1532
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
Makro Zeilen löschen
11.12.2016 18:51:05
HuPe
Bitte um Eure Hilfe,
Ich habe eine Mappe mit insgesamt 6 Tabellenblätter ("Übersicht", sowie Tab1 bis Tab5). In der Übersicht befinden sich in Spalte "B" ca. 400 Namen, in den anderen Tabellen jeweils ca. 50-200 Namen ebenfalls in Spalte "B". Ich möchte durch Markieren eines Namens in der "Übersicht" die gesamte Zeile sowie die Zeilen in den Tabellen 1 bis 5 löschen wenn sie den gleichen Namen beinhalten.
Optimal wäre wenn vor der Löschung ein Hinweis erfolgte:" x Einträge gefunden, alle löschen? Yes/no".
Bitte wer kann mir helfen.
Vielen Dank im voraus
HuPe

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro Zeilen löschen
11.12.2016 20:18:49
Gerd
Hallo HuPe!
Der Code läuft über alle Blätter der Datei.
'einfügen ins Codefenster von "Übersicht"
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim lngAnzahl As Long, WS As Worksheet
If Target.Column = 2 And Target.Row > 1 Then
Cancel = True
For Each WS In ThisWorkbook.Worksheets
lngAnzahl = WorksheetFunction.CountIf(WS.Columns(2), Target.Value)
If lngAnzahl > 0 Then
If MsgBox(Target & " " & lngAnzahl & " mal in Blatt " _
& WS.Name & " gefunden! Alle löschen?", vbYesNo) = vbYes Then
Call Loeschen(WS.Name, Target.Value)
End If
End If
Next
End If
End Sub
Sub Loeschen(strBlatt As String, strBegriff As String)
Dim z As Long
With Worksheets(strBlatt)
For z = .Cells(.Rows.Count, 2).End(xlUp).Row To 2 Step -1
If .Cells(z, 2) = strBegriff Then .Rows(z).Delete
Next
End With
End Sub
Gruß Gerd
Anzeige
AW: Makro Zeilen löschen
11.12.2016 21:27:16
KlausF
Hallo HuPe,
probier mal:
Sub DeleteRows()
Dim wks As Worksheet
Dim strSuche As String
Dim lastRow As Long
Dim msg As Integer
Dim i As Long
Dim b As Long
strSuche = ActiveCell.Text
If strSuche = "" Then Exit Sub
b = ActiveCell.Row
ActiveSheet.Rows(b).Delete
For Each wks In ActiveWorkbook.Worksheets
If wks.Name  "Übersicht" Then
lastRow = wks.Cells(Rows.Count, "B").End(xlUp).Row
For i = lastRow To 1 Step -1
If wks.Range("B" & i) = strSuche Then
wks.Activate
wks.Range("B" & i).Select
msg = MsgBox(wks.Name & " Zeile " & i & " löschen?", 4, "Abfrage")
If msg = vbYes Then wks.Rows(i).Delete
End If
Next i
End If
Next wks
Set wks = Nothing
End Sub
Gruß
Klaus
Anzeige

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige