Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
640to644
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
640to644
640to644
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

per Klick das aktuelle Datum in Zelle einfügen

per Klick das aktuelle Datum in Zelle einfügen
25.07.2005 19:00:42
TeiZei
Hallo zusammen,
ich hab da mal ein Problem:
Ich möchte in einer rel. großen Excel-Datei (ca. 5000 Datensätze - nebst Auswertungsdatenblättern) in definierten Feldern nur durch anklicken des entsprechenden Feldes das aktuelle Datum einfügen und zwar so, dass auch am folgenden Tag immer noch das ursprüngliche Datum in der geklicken Excel-Zelle ist (und nicht der dann gültige Tag).
Klingt kompliziert aber es muss doch einen geben, der mir bei diesem Problem helfen kann!!!!!
Vielen Dank für euren investierten Hirnschmalz
TeiZei

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: per Klick das aktuelle Datum in Zelle einfügen
25.07.2005 19:21:13
Christoph
Hallo
folgenden Code in das Klassenmodul des Tabellenblattes eingeben (Rechtsklick auf Tabellenreiter - "Code anzeigen" auswählen - und Code einfügen)
Bei Doppelklick in Spalte A wird das Datum eingetragen. Wenn du das in allen Zellen brauchst, dann lass die Zeile: "If Target..." weg
Gruß
Christoph
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 1 Then Exit Sub 'nur in SpalteA
Target = Date
End Sub

AW: per Klick das aktuelle Datum in Zelle einfügen
25.07.2005 19:25:05
Peter
Servus,
genauso ungenaue Antwort, wie Fragestellung ;) welche definierten Felder, usw.?
Muss vermutlich angepasst werden.


      
'Code mit Alt+F11 in das Tabellenblat kopieren, in dem es ausgelöst
'werden soll
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Hier wird bestimmt in welchen "definierten Bereichen" das Ereignis ausgelöst wird
If Target.Row <> 1 And Target.Column <> 1 Then Exit Sub
Target.Value = Date
Cancel = 
True
End Sub 


MfG Peter
Anzeige
AW: per Klick das aktuelle Datum in Zelle einfügen
25.07.2005 19:25:25
Reinhard
Hi teizei,
ungetestet:

Alt+F11,Doppelklick auf Tabelle1, Code reinkopieren, Editor schliessen
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim zellen 'k.A. wie man die deklariert
Dim n As Integer, vorh As Boolean
zellen = Array("A1", "A5", "A7")
For n = 0 To UBound(zellen)
If Target.Address(0, 0) = zellen(n) Then vorh = True
Next n
If vorh = False Or Target <> "" Then Exit Sub
Target = Date
End Sub

Gruß
Reinhard
nur mein Code erfüllt alle Beding. ;-)o.w.T
25.07.2005 19:27:42
Reinhard
Gruß
Reinhard
Richtig, vorallem das Ereignisauslösende Klick ;)
25.07.2005 19:55:46
Peter
o.w.t.
MfG Peter
Ich dachte mehr an das "feste" Datum :-) o.w.T.
25.07.2005 20:00:38
Reinhard
Gruß
Reinhard
dann warte mal bis morgen (owT)
25.07.2005 21:41:24
Christoph
Gruß
Christoph
AW: dann warte mal bis morgen (owT)
25.07.2005 23:05:59
Reinhard
Hallo Cristoph,
bei mit ist 27.7.2005
Frankfurt, 23:03, Frisur sitzt *g
und vor allem der Code funktioniert, habe nur die IF-Abfrage erweitert.
Wobei ich den Fehler nicht verstehe als ich zufällig A8:A9 auswählte, kam Fehler 13 in der If-Abfrage, aber warum, meiner Kenntnis nach wird vorjh=false abgefragt, da es falsch war müßte doch m.E. die Sub sofort verlassen werden ohne die andere Or Bedungung durhczuführen.
Wäre nett wenn mir das mal jmd. hier erklären könnte.
Gruß
Reinhard

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim zellen 'k.A. wie man die deklariert
Dim n As Integer, vorh As Boolean
zellen = Array("A1", "A5", "A7")
For n = 0 To UBound(zellen)
If Target.Address(0, 0) = zellen(n) Then vorh = True
Next n
If vorh = False Or Target <> "" Or Target.Cells.Count > 1 Then Exit Sub
Target = Date
End Sub

Anzeige
AW: dann warte mal bis morgen (owT)
26.07.2005 20:45:51
Christoph
Hallo Reinhard,
mein Kommentar "dann warte mal bis morgen" war meine Antwort auf deinen Kommentar "Ich dachte mehr an das feste Datum". Das "feste" Datum wird mit "Target = Date" gesetzt, und das ist bei Peters, deiner und meiner Lösung der Fall.
Zu deinem "Fehler 13":
In einer If-Abfrage werden zuerst alle Fälle geprüft und anschließend mit dem Operator verknüpft.
Daher:

If vorh = False Then exit Sub
If Target <> "" Then exit Sub
If Target.Cells.Count > 1 Then Exit Sub

läuft
ebenso auch:

If Target <> "" Then exit Sub
If vorh = False Or Target.Cells.Count > 1 Then Exit Sub

aber nicht:

If vorh = False Or Target  "" Or Target.Cells.Count > 1 Then Exit Sub

da Target "" bei mehr als einer ausgewählten Zelle zu einem Fehler führt
Gruß
Christoph
Anzeige
AW: dann warte mal bis morgen (owT)
27.07.2005 15:18:59
Reinhard
Hallo Christoph,
dann hatte ich bisher völlig falsch gedacht.
Ich dachte (unabhängig von If), bei Or wird von links nach rechts "abgearbeitet"
Du hast Recht, aber wiederum verstehe ich Bills Logik nicht.
Als Pseudocode
Heute=Mi
Wenn Heute = Mi Oder Heute=xyz....
Aus welchem Grund wird, wennn doch schon die erste Bedingung zutrifft, noch die zweite überprüft.
Irgendwo in Dos-Batches, basic ist das so wie ich es denke.
Aber okay, ist halt so anscheinend.
Bill prüft die erste Bedingung dann die zweite Bedingung bis zur letzten Bedingung und wenn das die Millionste Bedingunng ist, dann fällt ihm auf dass die erste schon zutrifft und er führt den Dann-Zweig aus, kein Wunder dass MS-Programme so langsam sind.
Gruß
Reinhard
Anzeige
AW: per Klick das aktuelle Datum in Zelle einfügen
25.07.2005 20:13:30
Erich
Hallo TeiZei,
noch ein Angebot:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim myListe, myBereich
If InStr(Target.Address, ":") Then Exit Sub
If Target <> "" Then Exit Sub
myListe = Array("A1", "A5", "A7", "B1:C5")
For Each myBereich In myListe
If Not Intersect(Target, Range(myBereich)) Is Nothing Then Target = Date
Next myBereich
End Sub

In myListe können auch ganze Bereiche vorgegeben werden, in denen bei Selektion das Datum rein soll.
Hi Reinhard, deine Lösung ist noch nicht ganz perfekt - sie läuft auf einen Fehler in der Zeile

If vorh = False Or Target  "" Then Exit Sub
wenn gleichzeitig mehrere Zellen auf dem Blatt selektiert werden.
(Target = "" funktioniert dann nicht.)
Meine Lösung ist sicher auch nicht perfekt...
Grüße aus Kamp-Lintfort
Erich
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige