Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro Zeilen löschen

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
Anzeige

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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige