Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1340to1344
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

Mehrfachauswahl bei "Change"

Mehrfachauswahl bei "Change"
03.12.2013 08:57:24
Franz
Guten Morgen Fachleute,
ich hab in einem Blatt ein "Worksheet_Change"-Ereignis, bei dem die Zelle nach einen bestimmten Inhalt abgesucht wird:
If Target Like "*test*" Then .......
Werden nun aber mehrere Zellen markiert, z. B. durch "Runterziehen" einer Zelle über mehrere Zeilen, kommt die Fehlermeldung "Typen unverträglich"
Lässt sich dieser Fehler irgendwie abfangen, oder muss ich das mit
"On error resume next"
versuchen?
Danke schonmal und Grüße
Franz

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrfachauswahl bei "Change"
03.12.2013 09:01:08
Beverly
Hi Franz,
schreibe den Code in eine If-Anweisung:
If Target.Count = 1 Then
'... Hier dein Code
End If
Dann wird er nur ausgeführt, wenn nur in 1 Zelle etwas eignetragen wird.


AW: Mehrfachauswahl bei "Change"
03.12.2013 09:08:19
Franz
Hallo Karin,
wusste doch, dass Ihr genial seid :-)) !! Es funktioniert - vielen Dank!
Grüße
Franz

AW: Mehrfachauswahl bei "Change"
03.12.2013 09:12:03
EtoPHG
Hallo Franz,
Da target als Range definiert ist, kann diese auch mehr als nur eine Zelle umfassen.
Dass kann man zwar mit einem Test auf die Anzahl betroffener Zellen (.Count = 1) testen, was aber nicht immer sinnvoll ist. Um zu beurteilen, was du mit dem Zielbereich machst, müsste man schon deinen ganzen Code sehen, damit man dir eine Empfehlung abgeben kann!
Gruess Hansueli

Anzeige
AW: Mehrfachauswahl bei "Change"
03.12.2013 09:34:49
Franz
Hallo Hans,
mein Code ist denkbar einfach in diesem Fall, es wird nur in einem anderen Blatt eine Markierung gesetzt:
If Target Like "*test*" Then
With Tabelle17
.Unprotect
.Range("testCalMarke") = 1
.Protect
End With
End If
Ich hab's mit Target.Count = 1 probiert, und in meinem Fall funktioniert's ........
Grüße
Franz

AW: Mehrfachauswahl bei "Change"
03.12.2013 09:46:36
EtoPHG
Hallo Franz,
Und was passiert jetzt wenn du mehrere Zellen gleichzeitig änderst und in einer davon eine Teilstring "test" steht? Nichts! Der Code scheint mir irgendwie nicht sehr sinnvoll! Bei jeder Veränderung im Blatt auf den Teilstring zu prüfen um dann einen Zelle in einem anderen Blatt auf 1 zu setzen?
So würde jede veränderte Zelle geprüft:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rC As Range
For Each rC In Target
If rC.Text Like "*test*" Then
With Tabelle2
.Unprotect
.Range("testCalMarke") = 1
.Protect
End With
End If
Next rC
End Sub
, aber wie gesagt, die Anforderung ist mir zu undurchsichtig!
Gruess Hansueli

Anzeige
AW: Mehrfachauswahl bei "Change"
03.12.2013 10:01:54
Franz
Hallo Hans,
danke für Deine ausführliche Antwort, ich werd mir das durchdenken und dann mit verschiedenargigen Änderungen testen.
Zum Hintergrund: Tabelle17 wird beim Aufruf (mit Worksheet_Activate()), wenn nötig (= wenn es im Datenblatt relevante Änderungen gegeben hat), aktualisiert. Dabei werden umfangreiche von mehreren Faktoren abhängige Formatierungen durchgeführt (der Code ist ellenlang, den will ich hier nicht einstellen). Nach Durchführung der Aktivierung wird die Marke auf "0" gesetzt, damit - OHNE Änderungen im Datenblatt - bei einem erneuten Aufruf nicht die aufwendigen Formatierungen erfolgen müssen.
Grüße
Franz

Anzeige
AW: Mehrfachauswahl bei "Change"
03.12.2013 10:19:14
Beverly
Hi Franz,
ich nehme an, dass dein Code nicht beim Eintrag in alle Zellen deines Tabellenblattes ausgeführt werden soll sondern nur bei bestimmten? Das kannst du im Code eingrenzen.


AW: Mehrfachauswahl bei "Change"
03.12.2013 10:31:15
Franz
Hallo Karin,
ja, danke, das hab ich auch gemacht, in diesem Fall:
If Target.Column > 2 And Target.Column < 7 And Target.Row > 4 Then
Hab's woanders (mit Hilfe dieses Forums :-))) auch mit Intersect gemacht, dem Bereich vorher einen Namen gegeben:
If Not Application.Intersect(Target, Range("TestBereich")) Is Nothing Then
Grüße
Franz
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige