2.9k Aufrufe
Gefragt in Tabellenkalkulation von ponscho Mitglied (323 Punkte)
Hallo an alle,

habe schon die SuFu benutzt konnte aber nichts passendes finden.

Suche ein Makro, was mir in Zelle P einen Datumsstempel in Textform (tt.mmmm.jjjj) setzt, sobald in der selben Zeile A:O in irgendeiner Zelle ein text reingeschrieben wird.

Werden die Zellen A-O komplett geleert, soll auch das Datum verschwinden.

Danke für eure Hilfe!

Mick

10 Antworten

0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Mick,

im Codemodul des Tabellenblattes:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column >= 1 And Target.Column < 16 Then Cells(Target.Row, 16) = Date
End Sub


Bis später,
Karin
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Mick,

alternativ als Formel in P1 und runterkopieren:

=WENN(ZÄHLENWENN(A1:O1;"*")>0;HEUTE();"")


Gruß

Paul1

[sub]Excel > Access > MS-Office 2003
MS Windows XP Professional SP3
MS Windows 7 Professional SP1
ECDL-Syllabus Version 4.0[/sub]
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo @Paul1,

dein Vorschlag hat einen Nachteil, da das Datum nicht festgeschrieben wird. Mogen, wenn du die Tabelle öffnest steht das Datum von morgen drin und ich glaube das wollte @ponscho nicht.

Gruß

Helmut
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

ein Hinweis zur Formellösung von Paul1: Da sich das Datum aktualisiert, dürfte diese Lösung für Mick ausscheiden.

Versuch mal das folgende Makro (gehört in das VBA-Projekt deines Arbeitsblattes):

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column > 15 Then Exit Sub

With Range(Cells(Target.Row, 1), Cells(Target.Row, 15))
If Application.WorksheetFunction.CountBlank(.Cells) = .Cells.Count Then
Cells(Target.Row, 16).ClearContents
Else
Cells(Target.Row, 16) = Date
End If
End With

End Sub


Gruß

M.O.
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Paul,

diese Vorgehensweise funktioniert in Excel2010 nicht mehr.

Bis später,
Karin
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo zusammen,

vielleicht wollte es @ponscho so:

=WENN(ZÄHLENWENN(A1:O1;"*")>0;DATUM(2013;9;23);"")

Gruß

Paul1
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo ,

falls mehr als eine Zelle mit einmal geändert wird, was ja in Excel möglich ist.

Option Explicit ' Variablendefinition erforderlich

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'***********************************************
'* H. Ziplies *
'* 08.11.12 *
'* erstellt von HajoZiplies@web.de *
'* http://Hajo-Excel.de/ *
'***********************************************
' wird im definierten Bereich ein Wert geändert,
' wird in der nächsten freien Spalte das Datum und Uhrzeit eingetragen
Dim RaBereich As Range ' Variable für überwachten Bereich
Dim RaZelle As Range ' Variable für Zelle die zur Zeit bearbeitet wird
Dim LoLetzte As Integer ' Variable für letzte Spalte
Set RaBereich = Range("A:O") ' Bereich der Wirksamkeit
' noch mehr Bereiche
'Set RaBereich = Union(Range("C11:AG11 , C13:AG13, C15:AG15 , C17:AG17"), _
' Range("C35:AE35, C37:AE37, C43:AG43, C45:AG45 , C47:AG47 , C49:AG49"), _
' Range("C67:AF67 , C69:AF69 , C75:AG75 , C77:AG77 , C79:AG79"), _
' Range("C99:AF99 , C101:AF101, C107:AG107 , C109:AG109 , C111:AG111"), _
' Range("C127:AG127 , C129:AG129 , C131:AG131 , C133:AG133"), _
' Range("C155:AG155, C157:AG157 , C159:AG159 , C161:AG161"), _
' Range("C179:AF179 , C181:AF181, C187:AG187 , C189:AG189"))
'ActiveSheet.Unprotect "Passwort"
' prüfen ob veränderte Zelle im überwachten Bereich
Set RaBereich = Intersect(RaBereich, Range(Target.Address))
If Not RaBereich Is Nothing Then
Application.EnableEvents = False ' Reaktion auf Eingabe abschalten
Application.ScreenUpdating = False ' Bildschirm abschalten
For Each RaZelle In RaBereich ' Schleife über alle veränderten Zellen im überwachten Bereich
Cells(RaZelle.Row, 16) = Date
Next RaZelle
'ActiveSheet.protect "Passwort"
Application.ScreenUpdating = True ' Bildschirm einschalten
Application.EnableEvents = True ' Reaktion auf Eingabe einschalten
End If
Set RaBereich = Nothing ' Variable leeren
End Sub


Gruß Hajo
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Helmut,

hast du schon mal meinen Code aus Antwort 1 getestet?

Bis später,
Karin
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Karin,

damit habe ich natürlich nicht gerechnet, dass die Formel in Excel 2010 nicht wirkt.

Gruß

Paul1
0 Punkte
Beantwortet von ponscho Mitglied (323 Punkte)
Hallo Mädels und Jungs,

komme gerade von der Arbeit. Hätte nicht damit gerechnet, so viel Antworten zu erhalten :)
Werde mir die Vorschläge in Ruhe durchlesen und anschliessen Feedback geben.

Achja, hatte vergessen anzugeben, dass ich immernoch mit Excel 2002 arbeite.

Liebe Grüsse
Mick
...