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!
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.
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.
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
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
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