Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
544to548
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
544to548
544to548
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Hilfe bei Worksheet_SelectionChange

Hilfe bei Worksheet_SelectionChange
13.01.2005 21:47:16
Peter
Hi Leute!
Habe folgendes Problem:
Ich bekomme einen "Laufzeitfehler 13: Typen unverträglich" bei folgendem Code:
Private Sub Worksheet_SelectionChange(ByVal target As Range)
If Target = Range("c12") Then Run "Tabelle1.Lösung1": Exit Sub
Wäre super wenn jemand von euch mir dabei helfen könnte! Einfaches If Err.Number = 13 usw. hilft mir leider auch nicht viel weiter, da es eine komplexere Abfrage werden soll.
Peter

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe bei Worksheet_SelectionChange
Reinhard
Hi Peter,
ungetestet, meinst du so:

Private Sub Worksheet_SelectionChange(ByVal target As Range)
If Target.address(0,0) = "c12" Then Run "Tabelle1.Lösung1"
End Sub

Gruß
Reinhard
AW: Hilfe bei Worksheet_SelectionChange
13.01.2005 22:17:02
Peter
Erstmal vielen vielen Dank für die unglaublich schnelle Antwort! Riesenlob!
Leider ist das Problem noch nicht gelöst, wenn ich es so mache wie du vorgeschlagen hast, passiert leider überhaupt nichts wenn c12 aktiviert wird...
Das ganze soll ungefähr so aussehen:

Private Sub Worksheet_SelectionChange(ByVal target As Range)
Dim s As Integer
s = Worksheets("Multiplikation").Range("m4").Value
If Worksheets("Multiplikation").Range("c6").Value <> "" Then Worksheets("Multiplikation").Range("b16").Value = ""
If target.Address(0, 0) = "c12" Then Run "Tabelle1.Lösung1"
If s < 3 Then GoTo 1
If s = 3 Then GoTo 2
If s = 4 Then GoTo 3
1:
If target.Address(0, 0) = "c7" Then Worksheets("Multiplikation").Range("c7").Activate
If target.Address(0, 0) = "c8" Then Worksheets("Multiplikation").Range("c10").Activate
If target.Address(0, 0) = "c12" Then Run "Tabelle1.Lösung1": Exit Sub
2:
If target.Address(0, 0) = "c7" Then Worksheets("Multiplikation").Range("c7").Activate
If target.Address(0, 0) = "c8" Then Worksheets("Multiplikation").Range("c8").Activate
If target.Address(0, 0) = "c9" Then Worksheets("Multiplikation").Range("c10").Activate
If target.Address(0, 0) = "c12" Then Run "Tabelle1.Lösung1": Exit Sub
3:
If target.Address(0, 0) = "c7" Then Worksheets("Multiplikation").Range("c7").Activate
If target.Address(0, 0) = "c8" Then Worksheets("Multiplikation").Range("c8").Activate
If target.Address(0, 0) = "c9" Then Worksheets("Multiplikation").Range("c9").Activate
If target.Address(0, 0) = "c10" Then Worksheets("Multiplikation").Range("c10").Activate
If target.Address(0, 0) = "c12" Then Run "Tabelle1.Lösung1": Exit Sub
End Sub

Das heißt das Programm soll bei verschiedenen Werten von s, andere Richtlinien für Ereignisse definieren. Ich bin Neuling in diesem Programm, also nicht auslachen wenn da was fürchterlich dummes dabei steht ;-)
Peter
Anzeige
AW: Hilfe bei Worksheet_SelectionChange
Reinhard
Hi Peter,
der Code muss im Codebereich vom Tabellenblatt stehen (Rechtsklick auf Tabellenblattname,Code anzeigen, reinkopieren, Editor schliessen)
Wenn die Adresse C12 ist wird ja anfangs schon Tabelle1.Lösung1 aufgerufen, soll es dann in der Case-Abfrage (bessere als gotos) nochmals aufgerufen werden? was steht denn in Löung1?


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim s As Integer
s = Worksheets("Multiplikation").Range("m4").Value
If Worksheets("Multiplikation").Range("c6").Value <> "" Then Worksheets("Multiplikation").Range("b16").Value = ""
If Target.Address(0, 0) = "c12" Then Run "Tabelle1.Lösung1"
Select Case s
Case Is < 3
If Target.Address(0, 0) = "c7" Then Worksheets("Multiplikation").Range("c7").Activate
If Target.Address(0, 0) = "c8" Then Worksheets("Multiplikation").Range("c10").Activate
If Target.Address(0, 0) = "c12" Then Run "Tabelle1.Lösung1"
Case Is = 3
If Target.Address(0, 0) = "c7" Then Worksheets("Multiplikation").Range("c7").Activate
If Target.Address(0, 0) = "c8" Then Worksheets("Multiplikation").Range("c8").Activate
If Target.Address(0, 0) = "c9" Then Worksheets("Multiplikation").Range("c10").Activate
If Target.Address(0, 0) = "c12" Then Run "Tabelle1.Lösung1"
Case 4
If Target.Address(0, 0) = "c7" Then Worksheets("Multiplikation").Range("c7").Activate
If Target.Address(0, 0) = "c8" Then Worksheets("Multiplikation").Range("c8").Activate
If Target.Address(0, 0) = "c9" Then Worksheets("Multiplikation").Range("c9").Activate
If Target.Address(0, 0) = "c10" Then Worksheets("Multiplikation").Range("c10").Activate
If Target.Address(0, 0) = "c12" Then Run "Tabelle1.Lösung1"
Case Else
End Select
End Sub

Gruß
REinhard
Anzeige
AW: Hilfe bei Worksheet_SelectionChange
13.01.2005 23:02:11
Peter
Hallo Reinhard!
Hab den code ausprobiert, funktioniert leider nicht, bei aktivierung eines dieser felder passiert nichts...
Das mit dem c12 doppelt ist richtig, das muss nicht sein, wenn das mit case select funktionieren würde, das steht eigentlich nur da, damit das programm notdürftig genutzt werden kann, da bei erreichen das letzten feldes c12 das ereignis in jedem fall eintreten soll, egal in welchem fall.
Lösung1 ist ein weiteres Makro, das die Werte in den Eingabefeldern überprüft.
Peter
AW: Hilfe bei Worksheet_SelectionChange
Reinhard
Hi Peter,
setze mal einen Haltepunkt bei der zeile
s = ...
(links in der zeile auf das graue klicken, es erscheint ein schwarzgefüllter Kreis,)
dann in Excel auf C12 klicken, das Editor-Fenster müßte kommen, dann mit F8 schauen was passiert.
Gruß
Reinhard
Anzeige
AW:meinst Du das
13.01.2005 22:33:37
Peter

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$2" Then Call happy
End Sub

Sub happy()
MsgBox "Dein Makro"
End Sub
AW: AW:meinst Du das
Peter
Danke erstmal für die Antwort!
Prinzipiell funktioniert das schon, nur das Problem mit den verschiedenen Fällen steht noch aus, eine Kombination aus beiden Vorschlägen bewirkt nur leider kein Ereignis bei Aktivierung eines Feldes!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige