Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature currently requires accessing the site using the built-in Safari browser.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Diskutiere statischer Datumseintrag im Microsoft Office Suite Forum im Bereich Office-Produkte; Moin,
wie kann ich denn ein Datum in eine Zelle eintragen lassen aber das soll sich nicht ändern am nächsten Tag.
Die Sache ist wenn Zelle A den...
#1
G
Ginkgo
Bekanntes Mitglied
Themenersteller
Dabei seit
27.01.2005
Beiträge
66
Reaktionspunkte
0
Ort
Hannover
Moin,
wie kann ich denn ein Datum in eine Zelle eintragen lassen aber das soll sich nicht ändern am nächsten Tag.
Die Sache ist wenn Zelle A den Wert 10 erreicht soll in Zelle B das Datum stehen an dem der Wert erreicht wurde. Habe mir das mit einer IF Funktion zurechtgebaut. Problem ist nur, dass ich bisher nur ein Datum mit NOW() einfügen konnte und das hat sich natürlich prompt am nächsten Tag geändert.
Wie kann ich das verhindern?
Danke
Ciao
#2
K
klexy
Bekanntes Mitglied
Dabei seit
04.05.2002
Beiträge
802
Reaktionspunkte
0
Ort
Bayern
Das geht nur mit einem Makro, das auf Kommando oder beim Schließen der Datei alle Datums-Zellen im betreffenden Bereich abgrast und bei vorliegenden Datumswerten folgendes ausführt:
Damit wird die Formel durch den festen Wert ersetzt und kann sich nicht mehr ändern.
Wie das Ganze beim Schließen der Tabelle angeleihert wird, weiß ich nicht. Warten wir auf Matjes.
die Formel im Datumsfeld würde ich so gestalten:
=WENN(A1>=10;HEUTE() Dann steht nix in der Zelle, solange der Wert der Referenz-Zelle (oim Beispiel A1) unter 10 liegt.
#3
M
Matjes
Bekanntes Mitglied
Dabei seit
22.08.2001
Beiträge
2.308
Reaktionspunkte
0
Hi zusammen,
der Makro zum Datum einfügen in B2 eines Tabellenblattes, wenn A2 der Wert >= 10 hat. Das ganze nur beim ersten erreichen/überschreitet des Grenzwertes.
Code:
'Definition Überwachungszelle A2
Const c_ZelleUeberwachung_Zeile = 2
Const c_ZelleUeberwachung_Spalte = 1
Const c_ZelleUeberwachung_Grenzwert = 10
'Definition Datumszelle B2
Const c_ZelleDatum_Zeile = 2
Const c_ZelleDatum_Spalte = 2
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Zelle As Range
For Each Zelle In Target
If Zelle.Row = c_ZelleUeberwachung_Zeile And _
Zelle.Column = c_ZelleUeberwachung_Spalte Then
->es hat sich was in der überwachten Zelle getan
If ActiveSheet.Cells(c_ZelleUeberwachung_Zeile, _
c_ZelleUeberwachung_Spalte).Value _
>= c_ZelleUeberwachung_Grenzwert Then
->Grenzwert erreicht/ueberschritten
If ActiveSheet.Cells(c_ZelleDatum_Zeile, _
c_ZelleDatum_Spalte).Value _
= Then
->Datum ist noch leer
->Datum setzen
ActiveSheet.Cells(c_ZelleDatum_Zeile, _
c_ZelleDatum_Spalte).Value = _
Format(Now(), dd.mm.yyyy)
End If
End If
End If
Next
End Sub
Der Makro muß in der Code-Seite des Tabellenblattes liegen:
1) Excel-Datei öffnen
2) VB-Ediotr öffnen Alt+F11
Links siehst Du ein Fenster mit der Überschrift Projekt-VBA-Project.
In diesem Fenster ist die Arbeitsmappe unter dem Namen VBAProject(Dateiname) zu finden.
3) VBAProject(Tabelle) doppelt klicken
in der Mitte geht das Code-Fenster Mappe1-Tabelle(Code) auf
4) den gesamten Code per copy und Paste in dieses Fenster hineinkopieren
5) VB-Editor schliessen mit Alt+Q
6) Excel-Datei speichern
7) ausprobieren, ob ein Wert 10 in A2 ein Datum in B2 erzeugt.
Gruß Matjes
#4
G
Ginkgo
Bekanntes Mitglied
Themenersteller
Dabei seit
27.01.2005
Beiträge
66
Reaktionspunkte
0
Ort
Hannover
habe das ausprobiert baer es funktioniert nicht, es gibt eine fehlermeldung aus ich denke weil da schon ein makro steht, ausserdem muss das in einer festen spalte für viele zeilen gelten. Meine Versuche das Makro umzuprogrammieren resultierte nur im nicht funktionieren... :-[
->In Zeile 1 (Überschriften-Zeile) keine Kennung setzen
If Zelle.Row <> 1 Then
If Zelle.Row = c_ZelleUeberwachung_Zeile And _
Zelle.Column = c_ZelleUeberwachung_Spalte Then
->es hat sich was in der überwachten Zelle getan
If ActiveSheet.Cells(c_ZelleUeberwachung_Zeile, _
c_ZelleUeberwachung_Spalte).Value _
>= c_ZelleUeberwachung_Grenzwert Then
->Grenzwert erreicht/ueberschritten
If ActiveSheet.Cells(c_ZelleDatum_Zeile, _
c_ZelleDatum_Spalte).Value _
= Then
->Datum ist noch leer
->Datum setzen
ActiveSheet.Cells(c_ZelleDatum_Zeile, _
c_ZelleDatum_Spalte).Value = _
Format(Now(), dd.mm.yyyy)
End If
End If
End If
Next
End Sub
aber irgendwie tut sich gar nix in Spalte 25.
Zeile 1 ist die Überschriftenzeile und soll so bleiben und Zeile 7 die Statuszeile mit einem Pulldown von 1-10
ich habe noch ein Makro, das in der ersten Spalte das Datum einträgt von dem Tag an dem die letzte Änderung in der Zeile war. Kann das Probleme machen?
#6
M
Matjes
Bekanntes Mitglied
Dabei seit
22.08.2001
Beiträge
2.308
Reaktionspunkte
0
Hi Ginkgo,
wenn Du in die erste Zeile der Code-Seite
Code:
Option Explicit
schreibst und dann kompilierst, entdeckst Du die groben Fehler selbst ;D
Wenn ich das richtig verstanden habe, willst Du alle Zellen der Spalte 7 (bis auf Zeile 1) überwachen. Tritt ein Wert größer 10 auf, so soll in der korrespondierenden Zelle der Spalte 25 das aktuelle Datum eingetragen werden, wenn noch keines in dieser Zelle steht.
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Definition Überwachungsspalte
Const c_ZelleUeberwachung_Spalte = 7
Const c_ZelleUeberwachung_Grenzwert = 10
'Definition Datumsspalte
Const c_ZelleDatum_Spalte = 25
Dim Zelle As Range
For Each Zelle In Target
->In Zeile 1 (Überschriften-Zeile) keine Kennung setzen
If Zelle.Row <> 1 And _
Zelle.Column = c_ZelleUeberwachung_Spalte Then
->es hat sich was in der überwachten Zelle getan
If Zelle.Value >= c_ZelleUeberwachung_Grenzwert Then
->Grenzwert erreicht/ueberschritten
If ActiveSheet.Cells(Zelle.Row, _
c_ZelleDatum_Spalte).Value _
= Then
->Datum ist noch leer
->Datum setzen
ActiveSheet.Cells(Zelle.Row, _
c_ZelleDatum_Spalte).Value = _
Format(Now(), dd.mm.yyyy)
End If
End If
End If
Next
End Sub
zu dem 2. Punkt:
Wenn sich etwas beissen würde, müßte bei der Kompilierung eine Meldung erscheinen.
Gruß Matjes
#7
G
Ginkgo
Bekanntes Mitglied
Themenersteller
Dabei seit
27.01.2005
Beiträge
66
Reaktionspunkte
0
Ort
Hannover
Du bist echt gut... es hat natürlich funktioniert.
Was mich noch interessieren würde, wie wird das Fenster in dem Du den Code anzeigst so schön grau unterlegt?
Danke Danke
#8
M
Matjes
Bekanntes Mitglied
Dabei seit
22.08.2001
Beiträge
2.308
Reaktionspunkte
0
Hi Ginkgo,
wenn ich antworte, hab ich oberhalb der Smily-Leiste BCC-Tags, welche ich einfügen kann, darunter eines welches für solche hübsch grau hinterlegten Code-Fenster gedacht ist.
Ich weiß nicht genau, ob nur Mitglieder diese hübschen grau hinterlegten Code-Fenster erzeugen können. Da müssen wir mal Björn fragen.
Gruß Matjes
#9
K
klexy als Gast
Guest
Wenigstens etwas kann ich zu diesem Thread beitragen:
Wenn man nur Gast im Forum ist, hat man die Buttons für die Formatierung auch zur Verfügung. Derjenige für das schöne graue Code-Feld hat dieses Zeichen: #
Hausfrauentrick: oben Ausloggen und schon ist man Gast ;D