3.4k Aufrufe
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
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
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
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
von m-o Profi (22.9k 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
von beverly Experte (3.5k Punkte)
Hi Paul,

diese Vorgehensweise funktioniert in Excel2010 nicht mehr.

Bis später,
Karin
0 Punkte
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
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
von beverly Experte (3.5k Punkte)
Hi Helmut,

hast du schon mal meinen Code aus Antwort 1 getestet?

Bis später,
Karin
0 Punkte
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
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

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...