Anzeige
Archiv - Navigation
1656to1660
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

Verständnisfrage mit dem Befehl Target

Verständnisfrage mit dem Befehl Target
23.11.2018 09:06:05
Stefanie
Hallo,
ich habe eine kleine Frage an Euch, die ihr sicherlich beantworten könnt.
Auf einem Tabellenblatt arbeite ich unter dem Punkt:
Private Sub Worksheet_Change(ByVal Target As Range)
sehr viel mit dem Befehl Target (target.row, target.column), um die jeweils aktive Zelle zu erlangen, um mit dieser bestimmt andere Zellen abhängig von ihrem Standort ermitteln zu können.
Leider wird mein Code immer umfangreicher, denn er soll verschiedene Funktionen ausführen, wenn er in einer bestimmten Zelle ist und dort etwas bestimmtes eingibt. Auch sollen Kommentare angefügt werden usw.
zb. "E" schicke Email, trage etwas in eine andere Tabelle ein
oder "" schick wieder eine Email, lösche das auf der anderen Tabelle...
...nur um Beispiele zu benennen.
Ich wollte das ein oder andere jettz ganze gerne in ein Modul auslagern, welches ich dann einfach mit Call Modulname wieder aufgerufen hätte, um ein bisschen Übersicht zu verschaffen. Leider funktioniert in diesen Modulen dann nicht mehr mein Target-Befehl. Er erkentn dann zb. nicht mehr, welche Zelle gerade aktiv gesetzt wurde bzw. in welcher es eine Änderung gegeben hatte.
Kann mir da einer weiterhelfen ? Mache ich einen Denkfehler oder muss ich tatsächlich meinen ganzen Code alles in diesem Tabellenblatt fortlaufend weiterschreiben?

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verständnisfrage mit dem Befehl Target
23.11.2018 09:11:10
Hajo_Zi
übergebe an das Makro die Zelle als Range.

AW: Verständnisfrage mit dem Befehl Target
23.11.2018 09:16:03
Stefanie
Kannst du mir ein Beispiel dazu nennen?
AW: Verständnisfrage mit dem Befehl Target
23.11.2018 09:19:45
Bernd
Servus Stefanie,
z.B. so:
Private Sub Worksheet_Change()
Call Auslagerung(Target)
End Sub

Sub Auslagerung(ByRef Target as Range)
End Sub
Grüße, Bernd
AW: Verständnisfrage mit dem Befehl Target
23.11.2018 09:20:35
Hajo_Zi
makro1 Target
Sub Makro1( AkZelle as Range)
Gruß Hajo
Target ist kein Befehl, sondern ein Objekt-...
23.11.2018 09:27:18
Luc:-?
…Repräsentant, Stefanie,
hier der ausgewählten Zelle(n), die auch die aktive ist (bzw sie enthält). Du kannst also, wie schon Hajo bemerkte, Target direkt an deine Makros weiterreichen, die dann allerdings im Kopf eine Parameter-Deklarierung enthalten müssen (bspw Bereich As Range), ganz ähnlich wie es ja auch im Kopf der Ereignis­Prozedur zu sehen ist.
Gruß, Luc :-?
„Die Intelligenzmenge ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …
Anzeige
AW: Target ist kein Befehl, sondern ein Objekt-...
23.11.2018 09:55:35
Stefanie

Private Sub Worksheet_Change(ByVal Target As Range)
Call Auswahlereignis(Target)
End Sub

und dann.....
Sub Auswahlereignis (ByRef Target as Range)
Select Case (Cells(target.row, target.value).Value
Case "F"
MsgBox "F"
Case "K"
MsgBox "K"
Case Else
MsgBox "Nichts hinterlegt"
End Sub
bring bei mir leider Fehler. Da steht dann immer Fehler beim Kompilieren. Variable oder Prozedur erwartet.
Was wird markiert? Das sollten wir ebenfalls ...
23.11.2018 10:07:30
Luc:-?
…wissen, Stefanie;
außerdem ist dein Konstrukt Cells(target.row, target.value).Value recht merkwürdig, …
1. weil die Anfangsbuchstaben klein geblieben sind,
2. weil in Target ja nun eine SpaltenNr stehen müsste…
Luc :-?
Anzeige
AW: Target ist kein Befehl, sondern ein Objekt-...
23.11.2018 10:10:41
Daniel
Hi
da ist ne Klammer-auf zuviel, die muss weg.
Oder du schließt die Klammer, wobei du in diesem Fall diese Klammer nicht benötigst
Select Case (Cells(target.row, target.value).Value
am ende fehlt dann noch der Abschluss für den Select Case-Block das End Select
Gruß Daniel
AW: Target ist kein Befehl, sondern ein Objekt-...
23.11.2018 10:17:19
Stefanie
Der Fehler kommt immer hier
Private Sub Worksheet_Change(ByVal Target As Range)
das wird gelb markiert.Danach kommt er erst gar nicht zum Modul, um die Prozedur dort zu bearbeiten. Das target.row und target.column konnte ich vorher immer gut anwenden, bevor ich das zeug ins modul gestellt habe. Dadurch habe ich immer die Reihe und die Spalte der aktiven Zelle ermittelt. Acuh mit ergänzen der End select usw keine Besserung. Selber Fehler.
Anzeige
AW: Target ist kein Befehl, sondern ein Objekt-...
23.11.2018 10:24:49
Stefanie
Habe das Modul nochmal überarbeitet - da war echt der ein oder andere Fehler - oh es ist noch früh :) Dennoch weiterhin der Komplilierfehler wie oben gesagt
Private Sub Worksheet_Change(ByVal Target As Range)
Call Auswahlereignis (Target)
End Sub

Sub Auswahlereignis(ByRef Target As Range)
Select Case Cells(Target.Row, Target.Column).Value
Case "F"
MsgBox "F"
Case "K"
MsgBox "K"
Case Else
MsgBox "Nichts hinterlegt"
End Select
End Sub Exit Sub
AW: Target ist kein Befehl, sondern ein Objekt-...
23.11.2018 10:33:19
Stefanie
Muss es ein Modul sein oder ein Klassenmodul, wo ich die Select Anweisung einstelle? Liegt es vl daran?
Anzeige
AW: Target ist kein Befehl, sondern ein Objekt-...
23.11.2018 10:38:50
Stefanie
Ich habe den Fehler.
Was ich nicht wusste, aber gerade gegoogelt habe - ich darf dem Modul nicht den gleichen Namen geben wie dem Sub.... Das war mir auch neu...
Danke nochmal für Eure unterstützung, jetzt kann ich glaub weitermachen :) Vielen Dank Euch
na da können wir ja lange raten...
23.11.2018 10:45:02
Daniel
... vor allem, wenn du in deine Codes, die du hier zeigst, immer noch weitere echte Fehler einbaust.
mit einer kleinen Beispieldatei hätten wir dir das sofort sagen können.
Gruß Daniel
AW: Target ist kein Befehl, sondern ein Objekt-...
23.11.2018 10:42:53
Daniel
Hi
das Worksheet_Change-Makro muss natürlich ins Klassenmodul des Tabellenblatts.
das Makro Auswahlereignis kommt normalerweise in ein allgemeines Modul.
Es funktioniert aber auch, wenn du es in das Klassenmodul des Tabellenblatts schreibst, welches auch das aufrufende Change_Event-Makro enthält.
wenn du jedoch das Auswahlereignis für mehrere Blätter nutzen willst, sollte es in ein allgemeines Modul
Gruß Daniel
Anzeige
AW: Target ist kein Befehl, sondern ein Objekt-...
23.11.2018 10:38:16
Daniel
Hi
End Sub Exit Sub
was macht denn da das Exit Sub? das gehört da sicherlich nicht hin.
ansonsten funktioniert dein Code bei mir, wenn ich den Code aus deinem Beitrag kopiere und bei mir in die entsprechenden Module einfüge.
statt Cells(Target.Row, Target.Column) kannst du auch schreiben Target(1)

Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige