Mkro um best. Zeilen automatisch zu löschen

Hallo zusammen,

bin auf der Suche nach einem Makro, welches in einem Excelsheet in der ersten Spalte nach Bezeichnungen sucht und dann die dazugehörige Spalte löscht. Es handelt sich in Summe um 90 Bezeichnungen, die es zu löschen gilt.
Habe leider meine Zugangsdaten verschlampt, darum stell ich diese Frage nocheinmal. Vorab vielen Dank für eure Hilfe!

Gruß
Titus Mimler

Hallo Titus,

bin auf der Suche nach einem Makro, welches in einem
Excelsheet in der ersten Spalte nach Bezeichnungen sucht und
dann die dazugehörige Spalte löscht.
Es handelt sich in Summe
um 90 Bezeichnungen, die es zu löschen gilt.

mit „dazugehörige Spalte“ meinst du „dazugehörige Zeile“!?

Willst du die 90 bezeichnungen in das makro reinschreiben, oder stehen die itgendwo in einer Liste, wo?

Habe leider meine Zugangsdaten verschlampt, darum stell ich
diese Frage nocheinmal.

?

Gruß
Reinhard

Hallo Reinhard,

ja du hast recht. ich meine natürlich dazugehörige Zeile.

Die Bezeichnungen habe ich auf eine Liste zusammengefasst, können aber genau so gut auch in den Code integriert werden.

Leider habe ich es nicht geschafft dein Makro zu integrieren, obwohl ich die Codeanpassung deiner Vorgabe nach gemacht habe.

Für deine Hilfe vorab vielen Dank!

Gruß
Titus Mimler

Hallo Titus,

Die Bezeichnungen habe ich auf eine Liste zusammengefasst,
können aber genau so gut auch in den Code integriert werden.

Und was wäre dir lieber? Eine Liste ist leichter zu pflegen als im Code rumzueditieren.

Leider habe ich es nicht geschafft dein Makro zu integrieren,
obwohl ich die Codeanpassung deiner Vorgabe nach gemacht habe.

? Da habe ich dir wohl als du mit anderen Zugangsdaten hier angefragt hast, ein Makro gebastelt.
Hast du den Code noch, dann zeige ihn mal.
Dann ist zu lösen warum du ihn nicht integrieren konntest.

Gruß
Reinhard

Dann würde ich auf die Kanäle in der Liste verweisen.

Anbei der Code:

Option Explicit

Sub Loesch()
Dim Zei As Long
Zei = Cells(Rows.Count, 1).End(xlUp).Row
Range(„M1:M“ & Zei).FormulaLocal =
„=Wenn(Zählenwenn(Weg;A1);1;“""")"
Range(„A1:BE“ & Zei).Sort Key1:=Range(„BE1“), Order1:=xlAscending,
Header:=xlNo, _
OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom
Zei = Application.Sum(Range(„BE1:BE“ & Zei))
If Zei >= 1 Then Range(„A1:BE“ & Zei).Delete
Columns(57).ClearContents
End Sub

die freie Spalte rechts neben der Daten lautet BE und müsste nach meiner Zählung Nummer 57 sein.
Wenn ich das Makro benutze, dann steht in der Spalte BE #NAME

Vielen Dank für deine Hilfe!!!

Hallo Titus,

die freie Spalte rechts neben der Daten lautet BE und müsste
nach meiner Zählung Nummer 57 sein.
Wenn ich das Makro benutze, dann steht in der Spalte BE #NAME

ja, ist korrekt, weil „Weg“ nicht bekannt ist.

Schreib mal deine 90 Begriffe in eine Spalte auf einem Hilfsblatt und vergib den Namen Loesch dafür.
Kannst auch anderen Namen wählen, dann aber auch im Code abändern.

Der Code benutzt aus Schnelligkeitsgründen eine Hilfsspalte, hier BH , da gilt das Gleiche wie für den Namen, also bei einer anderen Spalte auch überall im Code abändern.
Die Spalte muß nur frei sein und rechts vom benutzen Bereich liegen.

Option Explicit
'
Sub Loeschen()
Dim Zei As Long, Formel As String
Formel = "=Wenn(Zählenwenn(Loesch;A1);1;"""")"
With Worksheets("Tabelle1")
 Zei = .Cells(Rows.Count, 1).End(xlUp).Row
 Range("BH1:BH" & Zei).FormulaLocal = Formel
 Range("A1:BH" & Zei).Sort Key1:=Range("BH1"), Order1:=xlAscending, \_ 
 Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
 Zei = Application.Sum(Range("BH1:BH" & Zei))
 If Zei \>= 1 Then Range("A1:BH" & Zei).Delete
 .Columns(57).ClearContents
End With
End Sub

Gruß
Reinhard

Hallo Reinhard,

irgendwie stell ich mich scheinbar zu dumm an…

hab den code eingepflegt, die Bezeichnungen in ein seperates Tabellenblatt mit dem Namen „Loesch“. habe als freie Spalte BH gewählt, die Nummer 60 vergeben.
Starte ich dann das makro kommt die meldung, Laufzeitfehler 13 und wenn ich dann auf Debugger gehe zeigt er mir einen Fehler in folgender Zeile an:
Zei = Application.Sum(Range(„BH1:BH“ & Zei))

Mein gesamter code sieht nun wie folgt aus:

Option Explicit

Sub Loeschen()
Dim Zei As Long, Formel As String
Formel = „=Wenn(Zählenwenn(Loesch;A1);1;“""")"
With Worksheets(„Tabelle1“)
Zei = .Cells(Rows.Count, 1).End(xlUp).Row
Range(„BH1:BH“ & Zei).FormulaLocal = Formel
Range(„A1:BH“ & Zei).Sort Key1:=Range(„BH1“), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Zei = Application.Sum(Range(„BH1:BH“ & Zei))
If Zei >= 1 Then Range(„A1:BH“ & Zei).Delete
.Columns(60).ClearContents
End With
End Sub

Danke für die Hilfe!

Gruß Titus