Falsche Zeile wird selektiert
 |
Betrifft: Falsche Zeile wird selektiert
von: Corinne
Geschrieben am: 30.08.2004 09:51:29
Guten Morgen
In der Tabelle soll jeweils in der Spalte AF das aktuelle Datum geschrieben werden, wenn etwas geändert wurde. Mit dem untenstehenden code gibt es ein Problem. Wenn ich einen Wert eintrage und "Pfeil nach rechts" drücke funktionierts. Wenn ich jedoch "ENTER" drücke um die Eingabe abzuschliessen, wird der Wert bereits auf die nächste Zeile geschrieben.
Wie kann ich das ändern, damit immer auf der Zeile geschrieben wird in welcher der Wert eingetragen wird?
Gruss
Co
Set Target = Application.Intersect(Target, Range("A3:AE" & mRow))
Range("AF" & mRow) = Now
Betrifft: AW: Falsche Zeile wird selektiert
von: Dan
Geschrieben am: 30.08.2004 10:34:03
Hallo Corinne,
was ist mRow hier und was fuer einen Wert es hat?
Ich nehme an, dass Dein Code sich in der Sub Workbook_SheetChange befindet?
Ich habe es mit dem unterstehenden Code versucht und es hat funktioniert :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Spalte As Range
Set Spalte = Sh.Columns("AF")
Application.EnableEvents = False
Sh.Cells(Target.Row, Spalte.Column).Value = VBA.Now
Application.EnableEvents = True
End Sub
Oder auch so waere es viellecht moeglich :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Spalte As Range
Set Spalte = Sh.Columns("A")
If (Sh.Cells(Target.Row, Spalte.Column).Value = "") Then Sh.Cells(Target.Row, Spalte.Column).Value = VBA.Now
End Sub
Gruss Dan, CZ.
Betrifft: AW: Falsche Zeile wird selektiert
von: Corinne
Geschrieben am: 30.08.2004 10:47:50
Sorry, mein ganzer Code sieht so aus. Mit Deinem Vorschlag hatte ich Mühe. Sh. ging nicht.
Kannst Du mehr sagen, wenn Du den ganzen Code siehst?
Co
Private Sub Worksheet_Change(ByVal Target As Range)
' marks the last update date in case of changes in the cell in range "Range"
'Defines the area to be checked for changes
mColumn = ActiveCell.Column
mRow = ActiveCell.Row
Set Target = Application.Intersect(Target, Range("A3:AE" & mRow))
'If not within the range, the sub is being left
If Target Is Nothing Then Exit Sub
' Activates error handling
On Error GoTo ErrorHandler
'Turns of events to avoid re-update
Application.EnableEvents = False
'Target.Offset(0, 32 - mColumn) = Now
Range("AF" & mRow) = Now
ErrorHandler:
Application.EnableEvents = True ' turns on events again
End Sub
Betrifft: AW: Falsche Zeile wird selektiert
von: mealone
Geschrieben am: 30.08.2004 11:17:47
hallo corinne,
...
mRow = ActiveCell.Row
...
Range("AF" & mRow) = Now
diese beiden zeilen sorgen dafür das du in die falsche zelle schreibst
denn enter geht standart mässig nach unten
ohne es näher geprüft zu haben sollte
Range("AF" & Target.Row) = Now
dein problem lösen
gruss mealone
Betrifft: THANKS!
von: Corinne
Geschrieben am: 30.08.2004 11:22:56
es geht - besten Dank, co
Betrifft: Anmerkung zu Enter geht Standartmäßig....
von: Holger
Geschrieben am: 30.08.2004 11:30:09
Hallo mealon ( Wer oder Was auch immer das ist )
enter geht standart mässig nach unten
Enter geht dort hin, wo es in der Option / Bearbeiten / Markierung nach dem drücken der Eingabetaste verschieben Richtung Oben-Unten-Link-Rechts eingestellt ist!!
Gruß Holger
Betrifft: AW: Anmerkung zu Enter geht Standartmäßig....
von: mealone
Geschrieben am: 30.08.2004 11:34:55
hallo holger,
ganz genau
und direkt nach der installation (standart) geht enter halt nach unten
cu mealone
Betrifft: AW: Anmerkung zu Enter geht Standartmäßig....
von: Holger
Geschrieben am: 30.08.2004 11:39:22
War ja nur ein Hinweis. Könnte mann aber beim aufruf der Datei Temporär umstellen !? Oder
Gruß Holger
Betrifft: AW: Anmerkung zu Enter geht Standartmäßig....
von: mealone
Geschrieben am: 30.08.2004 11:47:04
na sicher doch z.b
nach rechts
Application.MoveAfterReturnDirection = xlToRight
oder wieder nach unten
Application.MoveAfterReturnDirection = xlDown
cu mealone
Betrifft: AW: Falsche Zeile wird selektiert
von: Dan
Geschrieben am: 30.08.2004 11:27:29
Hallo, ja es ist deshalb so, weil nach dem Enter wird die Zelle unter dem Target aktiviert, und deshalb wird in der Variable mRow = ActiveCell.Row Zeile um 1 groesser sein, also Range("AF" & mRow) = Now schreibt Now() um 1 nach unten. Das passiert nicht wenn man nach der Eingabe den Pfeil druckt, weil dabei bleibt die Activecell in der selben Zeile wie Target-Zelle.
Koenntest Du mir beschreiben, was "genau" das Makro machen soll? Gruss Dan, CZ.
Beiträge aus den Excel-Beispielen zum Thema "Falsche Zeile wird selektiert"