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

Datum fixieren

Datum fixieren
20.10.2004 09:27:11
Shaaree
Hallo, ich habe eine spalte J in welcher in den Zellen eine Daten Gültigkeits Liste zu öffnen ist mit 5 Werten zum Auswählen.
Wenn ich jetzt einen bestimmten Wert auswähle, soll in der Spalte H das heutige Datum erscheinen und das nur in der Zeile in der ich eben diesen einen Listenwert (="erledigt") auswähle. Dieses Datum soll sich aber nicht jedesmal neu aktualisieren, sondern wenn es erst mal drin steht fix und statisch bleiben. Wie kann ich das realisieren?
Bin schon am verzweifeln und für jede Hilfe dankbar. LG Shaaree

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum fixieren
Reinhard
Hi Shaaree,
Alt+F11, Doppelklick auf die gewünschte Tabelle links in der Auswahl, nachfolgenden Code reinkopieren, VB-Editor schliessen.
Gruß
Reinhard

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 8 Then Exit Sub ' nur reagieren wenn palte=8=H
Range("J" & Target.Row).Value = Now
End Sub

Lesen müsste man können :-)
Reinhard
Ich nochmal:-)
so klappt das besser:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 10 Then Exit Sub ' nur reagieren wenn Spalte=10=J
Range("H" & Target.Row).Value = Now
End Sub

Gruß
Reinhard
Anzeige
AW: nur bei bestimmtem status
20.10.2004 10:06:11
Shaaree
Vielen Dank für die schnelle Antwort, ich hab da nur noch ein Problem, das Datum erscheint immer, egal was ich aus der Daten Gültigkeits Liste auswähle. Es ist aber so, dass ich das Datum nur dann brauche, wenn der Wert "erledigt" aus der Liste ausgewählt wird. LG Shaaree
AW: nur bei bestimmtem status
Reinhard
Hi Shaareee,

Private Sub Worksheet_Change(ByVal Target As Range)
' nur reagieren wenn Spalte=10=J und nur eine zelle gewählt in J
If Target.Column <> 10 Or Target.Cells.Count > 1 Then Exit Sub
If Range("J" & Target.Row).Value = "erledigt" Then Range("H" & Target.Row).Value = Now
End Sub

Gruß
Reinhard
Anzeige
AW: klappt!
20.10.2004 10:20:18
Shaaree
JAAAAAA!!! Danke, danke, danke! Es haut hin!
AW: ohoh, nächstes Problem
20.10.2004 10:25:07
Shaaree
Ich möchte gern das Monat dieses soeben eingefügten Datums abfragen. Wenn ich das herausgefilterte Monat hab, soll sich das jeweilige Workbook öffnen (bei Monat 2 z.B. Feber.xls), das richtige Sheet und die richtige Zelle aktivieren und den Wert der in der Zelle drinsteht um eins erhöhen. Geht das mit Select Case und wenn ja wie kann ich das realisieren? Danke für die Hilfe. LG Shaaree
AW: ohoh, nächstes Problem
Reinhard
Hi shaaree,

Private Sub Worksheet_Change(ByVal Target As Range)
' nur reagieren wenn Spalte=10=J und nur eine zelle gewählt in J
If Target.Column <> 10 Or Target.Cells.Count > 1 Then Exit Sub
If Range("J" & Target.Row).Value = "erledigt" Then
Range("H" & Target.Row).Value = Now
Datei = MonthName(Month(Range("H" & Target.Row).Value)) & ".xls"
'Datei = ThisWorkbook.Path & "\" & Datei
Workbooks.Open Datei
Worksheets("Tabelle1").Range("A1") = Worksheets("Tabelle1").Range("A1") + 1
ActiveWorkbook.Close SaveChanges:=True
End If
End Sub

ggfs. das Semikolon vor Datei entfernen
Gruß
Reinhard
Anzeige
AW: vielen dank!
20.10.2004 11:08:18
Shaaree
Ich dank dir vielmals!! Es klappt wie am Schnürchen! Kann ich denn zur sicherheit die Zelle mit "erledigt" fixieren, so dass man den Status dann nicht mehr ändern kann? sonst müsste ich ja wenn der Status umgestellt wird (z.B. auf "in Arbeit") wieder eins abziehen. Da es aber sowieso nicht passieren soll dass der Status dann noch verändert wird, da es ja "erledigt" ist, wäre es gut wenn diese Zelle bei Status "erledigt" fixiert ist. Das gilt eigentlich genauso für das Datum in dieser Zeile. Danke nochmals!
AW: oje noch ein Problem
20.10.2004 11:31:11
Shaaree
wenn das workbook jetzt schon offen ist bekomm ich einen Fehler: Datei ist bereits geöffnet, bei nochmaligem Öffnen gehen alle Änderungen verloren" dann gehts ins Debuggen. Also wenn das Datum gleich ist wie der Monatsname der offenen Arbeitsmappe, soll er es nicht nochmal aufmachen sondern nur auf das richtige Sheet gehen. Was passiert dann eigentlich wenn jemand anders die Datei offen hat? Wie kann ich das abfangen, dass er mir dann in der anderen Datei eventuell nichts raufzählt, weil sie ja dann nur schreibgeschützt geöffnet wird, aber in der ersten Datei der Status und das Datum gesetzt sind?
Anzeige
Zelle nach Eingabe sperren, andre datei hochzählen
Reinhard
Hi Shaaree,
das ist ja schon Auftragsprogrammierung, ich ziehe mich mal langsam zurück.
diesen Code:

Sub Einmalig()
With Worksheets("Tabelle1")
.Cells.Locked = False
.Protect ("Shaaree")
End With
End Sub

ein einziges Mal laufen lassen. Dann ist die tabelle mit Passwort Sharee" geschützt aber in alle Zellen kann geschrieben werden.
Nachfolgenden Code dann in den Codeteil der Tabelle1 kopieren.
Gruß
Reinhard

Private Sub Worksheet_Change(ByVal Target As Range)
' nur reagieren wenn Spalte=10=J und nur eine zelle gewählt in J
If Target.Column <> 10 Or Target.Cells.Count > 1 Then Exit Sub
If Range("J" & Target.Row).Value = "erledigt" Then
Range("H" & Target.Row).Value = Now
Worksheets("Tabelle1").Unprotect ("Shaaree")
With Range("J" & Target.Row).Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
Range("H" & Target.Row).Locked = True
Range("J" & Target.Row).Locked = True
Worksheets("Tabelle1").Protect ("Shaaree")
Datei = MonthName(Month(Range("H" & Target.Row).Value)) & ".xls"
'Datei = ThisWorkbook.Path & "\" & Datei
For Each wb In Workbooks.Count
If wb.Name = Datei Then vorh = True
Next wb
If vorh = False Then Workbooks.Open Datei
With Workbooks(Datei)
If .ReadOnly = True Then
MsgBox "Datei " & Datei & " ist schreibgeschützt, kann nichts eintragen"
Else
.Worksheets("Tabelle1").Range("A1") = .Worksheets("Tabelle1").Range("A1") + 1
.Close SaveChanges:=True
End If
End With
End If
End Sub

Anzeige
AW: Zelle nach Eingabe sperren, andre datei hochzählen
Shaaree
Tut mir leid, zum Auftragsprogrammierer wollt ich dich nun wirklich nicht machen!! Aber könntest du mir eventuell noch mal helfen? Ich bekomme jetzt eine Meldung: "Fehler beim Kompilieren. For Each kann nur zum Durchlaufen einer Auflistung oder eines Datenfeldes verwendet werden."
For Each wb In Workbooks.Count 'hier steht er dann, wobei .Count hinterlegt ist
If wb.Name = Datei Then vorh = True
Next wb
Wär echt ganz super wenn du noch mal helfen könntest. Auf jeden Fall aber DANKE!
AW: Zelle nach Eingabe sperren, andre datei hochzä
Reinhard
Hi Shaaree,
entferne das ".Count", also nur noch
for each wb in workbooks
Gruß
Reinhard
Anzeige
AW: Zelle nach Eingabe sperren, andre datei hochzä
20.10.2004 13:54:07
Shaaree
Sorry, es funktioniert immer noch nicht. Jetzt häng ich hier:
With Workbooks(Datei)
Mit der Meldung "Index ausserhalb des gültigen Bereichs"
Habs schon mit Haltepunkten und Einzelschritten versucht. Bekomm nix raus.

AW: Zelle nach Eingabe sperren, andre datei hochzä
Reinhard
Hallo Shaaree,
kann ich nicht nachvollziehen, bei mir funtiert es problemlos.
In meinem Speicherpfad (bei mir "D:\Eigene Dateien") habe ich eine Datei "Oktober.xls".
In der wird immer um eins in A1 hochgezählt, wenn in Spalte J "erledigt" eingetragen wird.
Es kommt kein Fehler, egal ob Oktober schon geöffnet ist oder geschlossen.
Meine Datei:
https://www.herber.de/bbs/user/12366.xls
Ich habe den Bereich farbig markiert, wo Gültigkeiten drinstehen.
Achja, wenn du die Tabelle formatieren willst oder oder, musst du erst den Blattschutz aufheben, entweder manuell oder per Makro " schutzAufheben"
Gruß
Reinhard

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige