Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1604to1608
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

ActiveCell - Target

ActiveCell - Target
31.01.2018 13:34:18
Andy
Hallo alle zusammen,
folgenden Code verwende ich, um gewisse Zellen aus einer Tabelle auszulesen... Sub Termin_eintragen() 'Variablen einlesen, die benötigt werden Dim a As String Dim d As String Dim h As String If Cells(2, ActiveCell.Column) = Cells(2, 4) Then a = Cells(2, ActiveCell.Column).Value Else a = Cells(2, ActiveCell.Column).Value & Cells(2, ActiveCell.Column - 1).Value & Cells(2, _ _ ActiveCell.Column - 2).Value End If d = Cells(ActiveCell.Row, 2).Value ' Beamter 'Abfrage, ob der Dienst tatsächlich übernommen werden soll Dim Wert As Integer Wert = MsgBox("Soll ein Termin am " & a & " für " & d & " eingetragen werden?", vbYesNo _ _ Or vbQuestion Or vbDefaultButton1, "Hinweis") If Wert = vbNo Then ActiveCell.Value = "" Exit Sub Else UserForm2.Show End If End Sub
Jetzt habe ich allerdings das Problem, dass der oft den Eintrag eine Zelle weiter verwnedet, wenn ich die aktive Zelle mit dem Cursor verlasse. Wie muss ich den Code umschreiben, damit er auch tatsäöchlich in der zuerst ausgewählten Zelle den Eintrag ausliest.
Dachte daran, dass ActiveCell wohl nicht das Richtige ist und da irgendwas mit TARGET rein muss.....

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

Betreff
Datum
Anwender
Anzeige
AW: ActiveCell - Target
31.01.2018 13:43:11
Rudi
Hallo,
wie wird der Code denn aufgerufen?
Gruß
Rudi
AW: ActiveCell - Target
31.01.2018 13:59:50
Andy
Der Code wird aufgerufen, sobald jemand in einer Tabelle in einem entsprechenden Feld das kürzel "T" eingibt (bevorzugt über ein Dropdown). wenn jemand das dropdown verwendet, klappt es auch. Wenn er aber dann mit dem Cursor das Feld verlässt, dann haben wir den salat :)
If Target.Text = "T" Then Termin_eintragen
AW: ActiveCell - Target
31.01.2018 15:00:08
Andy
Jemand eine Idee, wo der Fehler liegt?
AW: ActiveCell - Target
31.01.2018 15:08:53
Andy
Der Fehler tritt immer dann auch auf, wenn man den Buchstaben "T" in das Feld eingetragen hat und dieses dann nicht mit Enter verlässt. Also zb durch klicken in eine andere Zelle - Dann wird als Grundlage die neu angeklickte Zelle verwendet und nicht die, in der eigentlich das "T" eingetragen wurde.
Anzeige
AW: ActiveCell - Target
31.01.2018 15:16:44
Werner
Hallo Andy,
also mir ist nicht wirklich klar, was du vor hast bzw. was dein Makro erledigen soll. Vielleicht beschreibst du mal genau.
Was klar ist, dass bei Auswahl eines Dorpdown-Wertes in einer bestimmten Zelle etwas passieren soll, nur was?
Am besten mal eine kleine Beispielmappe - aber bitte ohne Makros.
Hört sich für micht jetzt erst mal nach einem Worksheet_Change Event an.
Gruß Werner
AW: ActiveCell - Target
31.01.2018 16:06:23
Andy
Auf einem Tabellenblatt ist ein Kalender hitnerlegt. Und viele nahmen in den Zeilen in spalte 1. Wenn man quasi bei Mitarbeiter 11 am 10.2 in der dortigen Zelle ein T einträgt, soll er mir den namen vom Mitarbeiter auslesen und das Datum, an dem das T eingetragen wurde. Ich muss also quasi wissen, in welcher Spalte und in welcher Zeile das T eingetragen wurde.....
Anzeige
Target nicht ActiveCell ...
31.01.2018 16:17:50
Matthias
Hallo
Nicht nachvollziehbar
Tabelle1

 EF
4hier "T" eingeben 
5 Name1
6 Name2
7 Name3
8 Name4
9 Name5


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Code in die Tabelle:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Value = "T" Then MsgBox Target.Offset(, 1).Value
End Sub
Egal wie Du die Zelle nun verlässt, wird Dir der Inhalt der Nachbarzelle ausgegeben.
Gruß Matthias
Anzeige
AW: Target nicht ActiveCell ...
31.01.2018 17:30:16
Andy
Ich hoffe, dasss es jetzt deutlicher wird. Wenn man das T auswählt und dann in eine andere leere Zelle klickt, kommt leider nicht der name und das datum des mitarbeiters, wo eigentlich normal das T eingetragen wurde
nochmal: Target nicht ActiveCell ...
31.01.2018 17:41:23
Matthias
Hallo
Die Formatierung vom Code ist wünschenswert. Da braucht man erstmal 3 Minuten
das Lesbar darzustellen.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Wert&
Dim a$
Dim d$
Dim h$
If Target.Text = "T" Then
'Variablen einlesen, die benötigt werden
a = Cells(1, Target.Column).Value
d = Cells(Target.Row, 1).Value
Wert = MsgBox("Soll der Termin am " & a & " für " & d & " eingetragen werden?", vbYesNo Or  _
vbQuestion Or vbDefaultButton1, "Hinweis")
If Wert = vbNo Then
Target.Value = ""
Exit Sub
Else
'mach was
End If
End If
End Sub
Gruß Matthias
Anzeige
AW: nochmal: Target nicht ActiveCell ...
31.01.2018 23:46:33
Andy
Hey Matthias ... das klappt schon mal... Danke :)
Jetzt ist nur die Frage : warum funktioniert Target im Worksheet-Change und nicht als extra sub ?
AW: nochmal: Target nicht ActiveCell ...
01.02.2018 09:57:57
Andy
Kann man die Variablen denn auch irgendwie über ein Modul allgemein zur Verfügung stellen?
ICh benötige die Werte nämlich auch noch über ein Userform - Da funktioniert aber Target leider nicht .....
AW: nochmal: Target nicht ActiveCell ...
01.02.2018 10:31:11
Werner
Hallo Andy,
dann muss die Deklaration der Variablen aus deinem Worksheet_Change raus und in ein allgemeines Modul -dort aber außerhalb einer Prozedur- und dort als Public deklariert werden.
Annahme:
Eine Userform mit zwei Textboxen. Du brauchst die Variablen a und d auch noch in der Userform in TextBox1 und in TextBox2.
Die Variablendeklaration dieser Variablen aus dem Worksheet_Change raus.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Wert&
If Target.Text = "T" Then
'Variablen einlesen, die benötigt werden
a = Cells(1, Target.Column).Value
d = Cells(Target.Row, 1).Value
Wert = MsgBox("Soll der Termin am " & a & " für " & d & " eingetragen werden?", vbYesNo Or _
vbQuestion Or vbDefaultButton1, "Hinweis")
If Wert = vbNo Then
Target.Value = ""
Exit Sub
Else
'mach was
End If
End If
End Sub
Die Variablendeklaration in ein allgemeines Modul, außerhalb einer Prozedur
Public a$
Public d$
Public Sub aaa()
UserForm1.Show
End Sub
Übergab der Variablen in die Textboxen
Private Sub UserForm_Initialize()
TextBox1 = a
TextBox2 = d
End Sub
Du mußt dann natürlich als erstes dein "T" auf dem Blatt eintragen, damit die Variablen befüllt werden.
Gruß Werner
Anzeige
AW: nochmal: Target nicht ActiveCell ...
01.02.2018 12:45:13
Andy
Werner perfekt - das war die Lösung. Danke allen nochmal !
Gerne u.Danke für die Rückmeldung. o.w.T.
01.02.2018 13:05:10
Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige