Microsoft Excel

Herbers Excel/VBA-Archiv

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"