Intersect mit Cells

Hallo an Alle

Intersect(Target, Range(„A1:A5,C5,B1:B5“) ist möglich.

Aber sobald ich das mit Cells porbiere… läuft nichts mehr !

Intersect(Target, Range(Cells(1,1),Cells(1,5)), Cells(3,5), Cells(2,1),Cells(2,5))

Sieht jemand den Fehler ?

Danke
Snetto

Aber sobald ich das mit Cells porbiere… läuft nichts mehr !

Intersect(Target, Range(Cells(1,1),Cells(1,5)), Cells(3,5),
Cells(2,1),Cells(2,5))

Hallo Snetto,

ungetestet aus dem Bauchgefühl heraus:

Intersect(Target, Range(Cells(1,1),Cells(1,5)), Cells(3,5),Range(Cells(2,1),Cells(2,5)))

Gruß
Reinhard

ungetestet aus dem Bauchgefühl heraus:
Intersect(Target, Range(Cells(1,1),Cells(1,5)),
Cells(3,5),Range(Cells(2,1),Cells(2,5)))

funktioniert leider nicht !!

irgendwie liegt das an der Argumentformatierung, obwohl es ja Variant sein sollte, hmmm !!

Hallo Snetto,

mal grundsätzlich, „funktioniert nicht“ ist armselig, Informationsarm.
Was geschieht ist wichtig, kommt der Debugger, in welcher Codezeile, welche meldung, usw.

zeig bitte mal die ganze Sub.

Gruß
Reinhard

Hallo Reinhard,

„funktioniert nicht“ ist armselig, Informationsarm.

naja… funktioniert nicht… heisst es läuft nicht. Keine Fehlermeldung
etc. Funktioniert einfach nicht *grins*

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range(Cells(1,1),Cells(1,5)), Cells(3,5),Range(Cells(2,1),Cells(2,5)))Is Nothing Then
Target.Value =“wechsel“
End If
End Sub

Gruss

Hallo Snetto,

„funktioniert nicht“ ist armselig, Informationsarm.

naja… funktioniert nicht… heisst es läuft nicht. Keine
Fehlermeldung
etc. Funktioniert einfach nicht *grins*

ja schon. Aber von Anfragern hier wird oft als Rückmeldung gesagt, „funktioniert nicht“. Davon habe ich leider garnix.
Ein Feedback, wie „es passiert nichts“, ist da schon informativer.
Das besagt schonmal daß sich der Debugger nicht meldet.

Zum Problem.
So wie es auch in der Hilfe steht, Intersect liefert die GEMEINSAME Schnittmenge zurück, also diejenigen Zellen die in ALLEN aufgeführten Zellbereichen vorkommen.

Kurzfristige Lösung bis jmdm. was besseres einfällt ist, nacheinander mit Intersect alle Zellbereiche mit target vergleichen und das mit OR zu verbinden um dann zu handeln.

Gruß
Reinhard

Hallo Reinhard

Kurzfristige Lösung bis jmdm. was besseres einfällt ist,
nacheinander mit Intersect alle Zellbereiche mit target
vergleichen und das mit OR zu verbinden um dann zu handeln.

Jep, läuft jetzt bei mir auch nacheinander. Natürlich ohne „or“ da ich defintiv alle Zellen miteinander handeln möchte.

Na gut… dann heisst es mal abwarten :smile:

Gruss & Danke
Snetto

Grüezi Snetto

Intersect(Target, Range(„A1:A5,C5,B1:B5“) ist möglich.

Aber sobald ich das mit Cells porbiere… läuft nichts mehr !

Intersect(Target, Range(Cells(1,1),Cells(1,5)), Cells(3,5),
Cells(2,1),Cells(2,5))

Sieht jemand den Fehler ?

Du musst die einzelnen Ranges mit Union() zu einem gemeinsamen zusammenfassen, dann kannst Du gegen Target prüfen, also in etwa so:

Intersect(Target, Union(Range(Cells(1,1),Cells(1,5)), Cells(3,5),


> Cells(2,1),Cells(2,5)))

…aber warum willst Du dier hier umständliche Cells()-Notation verwenden, wenn es mit Range() doch direkter und viel lesbarer klappt?

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Grüezi Snetto

Du musst die einzelnen Ranges mit Union() zu einem gemeinsamen
zusammenfassen, dann kannst Du gegen Target prüfen, also in
etwa so:

Hey super… das hatte ich gesucht !

Intersect(Target, Union(Range(Cells(1,1),Cells(1,5)),
Cells(3,5),

Cells(2,1),Cells(2,5)))

…aber warum willst Du dier hier umständliche
Cells()-Notation verwenden, wenn es mit Range() doch direkter
und viel lesbarer klappt?
ich arbeite mit Variablen :smile:

Danke & Gruss
Snetto