VBA mehrere Zellen bei Worksheet_Change

Hallo an alle im Forum,

ich bin am verzweifeln. Beim reinkopieren oder Einfügen mehrerer Zellen in mein Arbeitsblatt, soll er diese eingefügten Werte mit anderen Werten abgleichen. Sind diese dort vorhanden, dürfen sie stehen bleiben, ansonsten soll er clearcontents machen.

Als einfaches Beispiel nochmal, ich schreibe in A1 den Wert „xyz“, ist „xyz“ in einem versteckten Tabellenblatt vorhanden, soll er es stehen lassen, ansonsten soll der Wert entfernt werden.

Beim Schreiben funktioniert es auch einwand, nur beim reinkopieren oder einfügen mehrerer Zellen spinnt er mal rum und mal nicht, ich verzweifel langsam. Code gibts natürlich auch:

Worksheet_Change

If Not Intersect(Target, Range("$A$16:blush:F$500")) Is Nothing Then
Application.EnableEvents = False
On Error GoTo Errhandling
For Each zellen In Target
Modul_Plausibilitaetspruefung.zieladresse (zellen.Address)
Next zellen
End If

Modul_Plausibilitaetspruefung.zieladresse (zellen.Address)


Sub zieladresse(prdlst As String)


If ThisWorkbook.Worksheets(„aktueller Monat“).Range(prdlst).Column = 2 Then
Modul_Plausibilitaetspruefung.pruefeProdukte (prdlst)
End If


End Sub

Modul_Plausibilitaetspruefung.pruefeProdukte (prdlst)
nur einen Auszug



ThisWorkbook.Worksheets(„aktueller Monat“).Range(prdlst).Cells(1, 1).ClearContents
ThisWorkbook.Worksheets(„aktueller Monat“).Range(prdlst).Cells(1, 0).ClearContents

Je mehr Kritik und Vorschläge kommen, umso dankbarer bin ich :wink:

Danke Chris

Je mehr Kritik und Vorschläge kommen, umso dankbarer bin ich
:wink:

Hallo Chris,

kannste haben, geht fix :smile:, Spalte 0 gibt es nicht:

Range(prdlst).Cells(1, 0)

Gruß
Reinhard

Hallo Reinhard,

ein bisschen schwerer wollte ich es Dir schon machen :wink:, danke schon mal, dann kann Cells immer nur Werte größer 0 haben und das was ich vorhabe, muss ich dann mit Offset lösen ?

Gruß Chris

ein bisschen schwerer wollte ich es Dir schon machen :wink:,
danke schon mal, dann kann Cells immer nur Werte größer 0
haben und das was ich vorhabe, muss ich dann mit Offset lösen

Hallo Chris,

da kann ich nix zu sagen weil ich nicht genau weiß was du vorhast.

Im Worksheet_Cahnge würde ich das so schreiben:

Set Target = Intersect(Target, Range("$A$16:blush:F$500"))
If Target Is Nothing Then Exit Sub
Application.EnableEvents = False
On Error GoTo Errhandling
Call Modul_Plausibilitaetspruefung.zieladresse(Target)
Errhandling:
Application.EnableEvents = True

Und, da du später noch abprüfst ob es sich um Spalte 2 handelt, kannst du das doch gleich im obigen Code beim Intersect machen.

Dann entfiele schonmal die dazwischengeschaltete Sub.

So, dann wenn alles zutrifft, was genau soll dann passieren?
Bring mal paar Beispiele, wie A20:F30 wurden gleichzeitig geändert, beschreib dann wo was passieren soll.

Gruß
Reinhard

Hallo Reinhard,

schönen Dank, es hat mir geholfen und funktioniert :wink:,

Gruß Chris