Spalteninhalte im zweiten Durchlauf löschen ... es klappt nicht

26/02/2017 - 20:40 von Jürgen Stadermann | Report spam
Guten Tag Alle.
Da definiere ich in zwei Tabellenblàttern jeweils einen Bereich (A:A)

Set Bereich = Worksheets("Chorproben").Range("A:A")
und
Set Bereich = Worksheets("Auftritte").Range("A:A")

In diesem Bereich sind Namen (Sànger) in gleicher Reihenfolge geschrieben.

Nun kommt die Situation, dass ich einen Namen Löschen muss und es
passiert folgendes:

Beim ersten Durchlauf z.Bsp. > Chorproben < , wird der Name einwandfrei
gefunden und gelöscht.

Über Sprungmarke geht der Fokus nach oben, es wird das Tabellenblatt >
Auftritte < aktiviert und die Löschprozedur làuft praktisch wie vorher
normal durch, bis, ja bis die If -Abfrage letztendlich kommt und der
Fokus jetzt zum Löschbefehl laufen muss. ja, hier kommt die Fehlermeldung:
Anwendungs objektorient fehler
also laufzeitfehler 1004.

Ich habe schon alles Mögliche /unmögliche versucht,
Alle Variablen vor dem zweiten Durchlauf mit Empty zurückgesetzt und was
weiß der Teufel für Handstànde versucht, es klappt einfach nicht.
Gegooglet natürlich auch.

Nun, das Kuriose ist,
Wenn ich die Arbeitsmappe zum Ersten-mal öffne und dann den Löschbefehl
aufrufe, klappt es einwandfrei. ja warum ???
Rufe ich innerhalb der Userform einen Code per anderer
Befehlsschaltflàchen auf, was dann alles einwandfrei klappt und dann zu
den Löschbefehl verzweige, habe ich die Kalamitàt, wie oben beschrieben.

Bitte, wer hat Rat und kann mir helfen.
Jürgen







Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
https://www.avast.com/antivirus
 

Lesen sie die antworten

#1 Claus Busch
27/02/2017 - 09:25 | Warnen spam
Hallo Jürgen,

Am Sun, 26 Feb 2017 20:40:58 +0100 schrieb Jürgen Stadermann:

Da definiere ich in zwei Tabellenblàttern jeweils einen Bereich (A:A)

Set Bereich = Worksheets("Chorproben").Range("A:A")
und
Set Bereich = Worksheets("Auftritte").Range("A:A")

In diesem Bereich sind Namen (Sànger) in gleicher Reihenfolge geschrieben.



probiere mal:

Sub Löschen()
Dim i As Integer, j As Integer, n As Integer
Dim c As Range, myRng As Range
Dim varSh As Variant, varCells() As Variant
Dim FirstAddress As String

Const strSh = "Chorproben,Auftritte"
Const strName = "Name10"

varSh = Split(strSh, ",")
For i = LBound(varSh) To UBound(varSh)
With Sheets(varSh(i)).Range("A:A")
Set c = .Find(strName, LookIn:=xlValues)
If Not c Is Nothing Then
FirstAddress = c.Address
Do
If myRng Is Nothing Then
Set myRng = .Range(c.Address)
Else
Set myRng = Union(myRng, .Range(c.Address))
End If
Set c = .FindNext(after:=c)
Loop While Not c Is Nothing And c.Address <> FirstAddress
End If
myRng.ClearContents
Set myRng = Nothing
End With
Next
End Sub


Mit freundlichen Grüßen
Claus
Windows10
Office 2016

Ähnliche fragen