Anzeige
Archiv - Navigation
1732to1736
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Intersect Schleifen

Intersect Schleifen
17.01.2020 16:55:44
Alexander
Hallo Community:
brauch für die intersect-abfrage zwei befehle
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(ActiveCell, Range("B2:D40")) Is Nothing Then Exit Sub
Range("K5").Value = ActiveCell.Value
Range("K5").NumberFormat = ActiveCell.NumberFormat
If Intersect(ActiveCell, Range("F2:I40")) Is Nothing Then Exit Sub
Range("L5").Value = ActiveCell.Value
Range("L5").NumberFormat = ActiveCell.NumberFormat
funktioniert so natürlich nicht
Danke

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Intersect Schleifen
17.01.2020 17:01:49
Hajo_Zi

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(ActiveCell, Range("B2:D40")) Is Nothing Then
Range("K5").Value = ActiveCell.Value
Range("K5").NumberFormat = ActiveCell.NumberFormat
ElseIf Not Intersect(ActiveCell, Range("F2:I40")) Is Nothing Then
Range("L5").Value = ActiveCell.Value
Range("L5").NumberFormat = ActiveCell.NumberFormat
End If
End Sub

AW: Intersect Schleifen
17.01.2020 17:06:35
Alexander
Weltklasse, danke Hajo
Warum ActiveCell und nicht Target? owT
17.01.2020 17:17:44
Werner
AW: Warum ActiveCell und nicht Target? owT
17.01.2020 17:21:57
Hajo_Zi
da hat der Fragesteller mehr Ahnung als Du.
Target kann ein Bereioch sein und es soll nur die Active Zelle geprüft werden.
Gruß Hajo
Anzeige
AW: Warum ActiveCell und nicht Target? owT
17.01.2020 17:40:37
Luschi
Hallo Hajo,
Deine Begründung ist totaler Blödsinn. Events, die Parameter übergeben, sollten auch ausgewertet werden, sonst macht das doch überhaupt keinen Sinn.
Wenn beim Markieren einer Zelle mehrere Zellen selektiert werden, weil der User die Maustaste nicht rechtzeitig losgelassen hat, dann darf kein Code ausgeführt werden - und das kann man mit Target.Cells.Count überprüfen.
Der User darf nicht machen was er will und mit der Maus rumhantieren, wie er will, sondern in dem Programmablauf, den ich bereitstelle, muß schon eine gewisse Ordnung herrschen.
Und darin ist die Benutzung von ActiveCell ein NoGo!
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Warum ActiveCell und nicht Target? owT
17.01.2020 17:44:45
Werner
Hallo Luschi,
lass gut sein, dürfte sinnlos sein, weshalb ich darauf auch nicht mehr geantwortet habe.
Ich werde zukünftig einfach nicht mehr auf ihn reagieren, ist vergebene Liebesmüh.
Gruß Werner
AW: Warum ActiveCell und nicht Target? owT
17.01.2020 18:11:44
Luschi
Hallo Werner,
danke für die tröstenden Worte, aber vielleicht gibt es noch Hoffnung, denn steter Tropfen höhlt den Stein - sagt man!
Gruß von Luschi
aus klein-Paris
Absolut richtige Begründung von Hajo
17.01.2020 20:45:53
Hajo
Dieser Teil des Codes war nicht teil der Fragestellung bzw des Problems, als gibt es keinen Grund, daran was zu ändern.
Man kann das zwar tun wenn man will, aber dann muss man dem Fragesteller das auch erklären, warum man das geändert hat und welcher Teil des geänderten Codes sich auf die eigentliche Fragestellung bezieht. Wenn einem das zu aufwendig ist, beschränkt man dich besser auf den Teil des Codes, der für die Fragestellung relevant ist und belässt den Rest so, wie vom Fragesteller vorgegeben. Alles andere würde mehr verwirren als helfen, und vielleicht gibt es ja einen Grund, warum der Fragesteller das genau so gemacht hat.
Gruß Daniel
Anzeige
Hajos Begründung mag plausibel sein und ...
18.01.2020 05:08:37
Luc:-?
…ebenfalls der von dir genannte Grund, Daniel (& Co),
trotzdem ist zweifelhaft, ob der PgmErsteller das wirklich besser weiß. Es gibt nämlich noch einen Grund, ggf nicht ActiveCell zu verwenden → irgendein Nutzer könnte ja mal umgekehrt selektieren. Dann wäre ActiveCell eine andere als Target.Cells(1). Soll es aber immer Letztere sein, entstünde so ggf ein Fehler, da ActiveCell ja auch woanders liegen und ihr Wert (und uU Format) irrelevant sein könnten.
Das wäre im anderen Fall nicht möglich, wenn tatsächlich, wie normalerweise zu erwarten, stets die linke obere Zelle die Ausgangszelle der Auswahl wäre. Die Angabe ganzer QuellBereiche für nur jeweils ein Ziel deutet aber eher darauf hin, dass hier eine EinzelAuswahl erfolgen und somit die Verwendung von ActiveCell nur „Ausrutscher“ bei der Auswahl abfangen soll. Da diese aber in beide Richtungen erfolgen können, wäre so ActiveCell tatsächlich von Vorteil ggüber Target.Cells(1) (natürlich unter der Annahme, dass nicht verklickt wurde).
Insofern läge es tatsächlich im Ermessen des Pgmmierers, was er verwendete, denn nur er sollte ja wissen, was er auf diese Weise abfangen wollte.
Morhn, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Deshalb Intelligenz steigern mit …

Anzeige
Es spielt keine Rolle, ob der Fragesteller das wei
18.01.2020 11:26:53
Daniel
Solange der Code zur Zufriedenheit des Fragesteller funktioniert, darf man den Code nicht ändern, wenn sich dabei auch das Ergebnis des Makros ändern würde und das wäre hier der Fall.
Das KÖNNTE der Fall sein, ...
18.01.2020 14:46:45
Luc:-?
…Daniel;
es ist aber schon signifikant, das Wissen des FrageStellers zu hinterfragen, zumal der ja nur Basiskenntnisse in VBA angegeben hatte. Das lernt man als Office-Berater quasi mit als Erstes, nämlich genau genommen den Sinn des Konstrukts zu hinterfragen. Es ist also fraglich, ob er hier überhaupt etwas abfangen wollte. Üblich ist es in einer EreignisProzedur idR nicht, Target, so vorhanden, nicht zu verwenden.
Es liegt in diesem Fall wohl eher am Aufwand, den ein AWer zu treiben willens ist…
Luc :-?
Anzeige
AW: Das KÖNNTE der Fall sein, ...
19.01.2020 14:01:43
Daniel
1. Luc ist das hier ein Forum, wenn jemand die Qualität eines Office-Beraters haben will, dann sollte er sich auch an einen solchen wenden.
2. sollte man respektien, wenn sich ein Antwortet darauf beschränkt, einfach nur die Frage zu beantworten.
Wenn man meint, dass der Fragesteller noch mehr Informationen braucht, dann kann man sich ja an diesen direkt wenden, anstatt den anderen Antwortet damit zu belästigen.
Dacht' ich's doch!
21.01.2020 19:26:03
Luc:-?
Auch, wenn dir in antik-mittelalterlicher Manier in einer Diskussion immer noch eine AW einfällt, heißt das weder, dass du diese auch zu deinen Gunsten entscheidest, noch, dass du recht hast. Wenn du aus diesem Grund uneinsichtig bis zum St.Nimmerleinstag diskutieren willst, solltest du dich mit den Diskussions-„Spezia­listen“ auf Telepolis messen, die gern immer wieder bereits zigfach widerlegte Argumente neu anbringen, und sich wie ein gewisser R.F.T. Schopenhauers Eristischer Dialektik bedienen (inkl Argumenten ad hominem und ad personam), um als Sieger zu erscheinen.
Hier jedoch ist es durchaus angemessen, einen Anfänger auf den eigentlichen Sinn einer EreignisProzedur und ihrer zV gestellten Parameter hinzuweisen, auch, wenn sich das formal an einen anderen AWer richtet, was dann durchaus auch als Kritik aufgefasst wdn darf.
Luc :-?
Anzeige
AW: Dacht' ich's doch!
21.01.2020 19:57:05
Daniel
Ja Luc hast recht wie immer
Der Papst mag fehlbar sein, Luc ist es nie.
Zahlst du mir dann auch den Tagessatz für einen Officeberater?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige