Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zeitstempel bei Funktion= Wahr
#1
Hallo zusammen,

folgendes Problem liegt bei mir vor. Ich habe eine Spalte, in der die Formel

=WENN(ZÄHLENWENN(A:A;A5)>1;"x";"")

steht. Wenn hier ein "x" zurückgeben wird, soll zwei Spalten weiter ein Datumsstempel gesetzt werden.
Dafür wird ein VBA genutzt:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Value = "x" Then Cells(Target.Row, Target.Column + 1) = Now
End Sub

Die Geschichte funktioniert nicht. Vielleicht kann mir jemand helfen das Problem auf welchem
Weg auch immer zu lösen? Huh
Antworten Top
#2
Hallo,

erst mal zu deiner Formel. Du wertest die komplette Spalte A nach einem Suchkriterium aus, das auch in Spalte A steht??
Der Code kann nicht funktionieren, weil das Ergebnis einer Formelberechnung kein Change-Ereignis auslöst.

Vielleicht lädst du mal eine Beispielmappe hoch in der du verdeutlichst, was du erreichen willst und wie deine Datenstruktur aussieht. Deine Formel verwirrt mich doch etwas.

Gruß Werner
Antworten Top
#3
Moin!
Verstanden habe ich schon.
Du möchtest einen Zeitstempel ab der ersten Dublette in Spalte A haben.
Wofür dann überhaupt die Formel?

Überwache Spalte A und setze den Zeitstempel in Spalte B wie folgt:

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
  If .CountLarge = 1 And .Column = 1 Then
    If WorksheetFunction.CountIf(Me.Columns(1), .Value) > 1 Then
      .Offset(0, 1) = Now
    End If
  End If
End With
End Sub

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#4
(06.10.2017, 12:21)Werner.M schrieb: Hallo,

erst mal zu deiner Formel. Du wertest die komplette Spalte A nach einem Suchkriterium aus, das auch in Spalte A steht??
Der Code kann nicht funktionieren, weil das Ergebnis einer Formelberechnung kein Change-Ereignis auslöst.

Vielleicht lädst du mal eine Beispielmappe hoch in der du verdeutlichst, was du erreichen willst und wie deine Datenstruktur aussieht. Deine Formel verwirrt mich doch etwas.

Gruß Werner

Hallo Werner,

vielen Dank für deine Antwort. Die Formel steht nicht in Spalte A, sondern ein paar Spalten daneben. Das Problem ist aber genau so, wie du
es beschrieben hast: Das Ergebnis einer Formelberechnung löst kein Change-Ereignis aus und deswegen wird kein Stempel gesetzt. 


Meine Beispielmappe kann ich erst Montag hochladen, liegt warm und sicher auf dem Arbeitsserver. Was ich erreichen will:

Ich bekomme in einer Excel-Datei (Abruf) Nummern zugeschickt. Die Nummern dieser Excel-Datei will ich mit den Nummern einer
anderen Excel-Datei (Bestandsliste) abgleichen. Alle Nummern, die im Abruf erscheinen, sind grundsätzlich in der Bestandsliste enthalten. 

Nun will ich die Nummern des Abrufs in die Bestandsliste einkopieren, Excel soll mir ein X hinter die abgerufenen Nummern setzen und ein
Datumsstempel hinzufügen. 

Gruß, Clemens
Antworten Top
#5
(06.10.2017, 13:06)RPP63 schrieb: Moin!
Verstanden habe ich schon.
Du möchtest einen Zeitstempel ab der ersten Dublette in Spalte A haben.
Wofür dann überhaupt die Formel?

Überwache Spalte A und setze den Zeitstempel in Spalte B wie folgt:

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
 If .CountLarge = 1 And .Column = 1 Then
   If WorksheetFunction.CountIf(Me.Columns(1), .Value) > 1 Then
     .Offset(0, 1) = Now
   End If
 End If
End With
End Sub

Gruß Ralf


Moin Ralf,

vielen Dank! Es steht zu befürchten, dass auch hier kein Change-Ereignis, wie Werner das formuliert hat, durch die Formel ausgelöst werden kann ?  Huh 

gruß, clemens
Antworten Top
#6
Wie ich bereits schrieb:
Du brauchst doch überhaupt keine Formel, sondern nur Spalte A überwachen!
Wozu ein X, wenn nur bei einem X ein Timestamp erscheinen soll?
Probiere es einfach mal aus, ohne "vorsorglich" Befürchtungen zu äußern.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • clemensch
Antworten Top
#7
(07.10.2017, 08:06)RPP63 schrieb: Wie ich bereits schrieb:
Du brauchst doch überhaupt keine Formel, sondern nur Spalte A überwachen!
Wozu ein X, wenn nur bei einem X ein Timestamp erscheinen soll?
Probiere es einfach mal aus, ohne "vorsorglich" Befürchtungen zu äußern.

Gruß Ralf

Moin Ralf,

vielen Dank!! Ich stelle die Vorsorglichkeit ein, es klappt :19:
Nur eine (hoffentlich) Kleinigkeit - wenn ich einkopiere, stempelt
Excel hinter dem einkopierten Wert; ich brauche den Stempel
hinter dem Wert, der zuerst in der Liste stand.

Gruß, clemens
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste