Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Fortlaufende Nummer und Zeitstempel setzen
#1
Hi Leute,

ich benötige eine fortlaufende Nummerierung in Zellen A15:A1003 beginnend mit "0001" wenn in Zellen B15:G1003 ein wert eingetragen wird.

Die Funktion: A15 =WENN(B15&C15&D15&E15&F15&G15="";"";"0001")

Leider kann ich keine Formel in dieser Zelle nutzen, da ich einen Zeitstempel in den Zellen J15:J1003 eintragen lassen möchte sobald die Zellen A15:A1003 gefüllt sind.

Sollte jetzt ein wert aus den Zellen B15:G1003 gelöscht wird sollen auch die Zellen A15:A1003 und J15:J1003 wieder geleert werden



Kann mir hier jemand bitte helfen?
Antworten Top
#2
Hi,

einen seriösen Zeitstempel bekommst Du nur mit VBA. Wäre das OK für Dich?
Antworten Top
#3
Das wäre mir sehr recht! Danke Blush
Antworten Top
#4
OK, dann aber noch ein paar Fragen:


Zitat:Sollte jetzt ein wert aus den Zellen B15:G1003 gelöscht wird sollen auch die Zellen A15:A1003 und J15:J1003 wieder geleert werden


Wann soll was genau passieren? Sobald irgendeine Zelle (in der entsprechenden Zeile in B:G) gelöscht wird, soll der Zeitstempel erneuert werden? Was ist, wenn man einen bestehenden Eintrag nicht löscht sondern ändert / überschreibt? Was soll dann passieren? Und wie soll sich die Durchnummerierung in Spalte A verhalten: Nummer vergeben, sobald irgendeine Zelle in der entsprechenden Zeile in B:G gefüllt ist? Und erst wieder verschwinden, wenn alle Zellen in der Zeile leer sind?
Antworten Top
#5
Zitat:Sobald irgendeine Zelle (in der entsprechenden Zeile in B:G) gelöscht wird, soll der Zeitstempel erneuert werden? Was ist, wenn man einen bestehenden Eintrag nicht löscht sondern ändert / überschreibt? Was soll dann passieren?


Angenommen wir reden jetzt von Zeile 15 dann soll sobald kein Wert mehr in B15:G15 steht sollen auch A15 und J15 geleert werden. Sollte jetzt ein Wert in B15:G15 geändert werden soll ein neuer Zeitstempel errechnet werden.


Zitat:Und wie soll sich die Durchnummerierung in Spalte A verhalten: Nummer vergeben, sobald irgendeine Zelle in der entsprechenden Zeile in B:G gefüllt ist? Und erst wieder verschwinden, wenn alle Zellen in der Zeile leer sind?
sobald irgendeine Zelle im Bereich B15:G15 einen Wert besitzt soll in A15 "0001" stehen. 
Zitat:Und erst wieder verschwinden, wenn alle Zellen in der Zeile leer sind?
Wenn im Bereich B15:G15 KEIN Wert ist dann soll auch nicht nummeriert werden.



Was ich vergessen habe zu sagen ich brauch einen Zeitstempel mit dem Format:  dd.MM.yyyy HH:mm:ss
Antworten Top
#6
Hi,

Spalte A formatierst Du benutzerdefiniert mit 0000, Spalte J mit TT.MM.JJJJ hh:mm:ss

Da es um einiges aufwändiger wird, wenn man auch Mehrfachselektionen prüfen muss, habe ich diese jetzt auf eine einzelne Zelle eingeschränkt.
Musst mal sagen, ob das für Dich praktikabel ist.

Der gesamte Code gehört in das Codemodul der entsprechenden Tabelle:

Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ERR_EXIT
If Not Intersect(Target, Range("B15:G1003")) Is Nothing Then
    With Target
        Application.EnableEvents = False
        If WorksheetFunction.CountA(Cells(.Row, 2).Resize(1, 6)) = 0 Then
            Cells(.Row, 1).ClearContents: Cells(.Row, 10).ClearContents
        Else
            Cells(.Row, 10) = Now
            Cells(.Row, 1) = .Row - 14
        End If
    End With
End If
ERR_EXIT:
Application.EnableEvents = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo ERR_EXIT
With Target
    If .Count > 1 Then
        If Not Intersect(Target, Range("B15:G1003")) Is Nothing Then
            Application.EnableEvents = False
            Target(1, 1).Select
        End If
    End If
End With
ERR_EXIT:
Application.EnableEvents = True
End Sub
[-] Folgende(r) 1 Nutzer sagt Danke an {Boris} für diesen Beitrag:
  • tomcat
Antworten Top
#7
Hi Boris 

Vielen Dank die Funktionen laufen bestens!!!

Hi Boris jetzt muss ich doch nochmal revidieren sorry...

Soweit funktioniert alles bestens doch wenn ich die Zellen B15:G15 leere werden Zelle A15 und J15 nicht geleert
Antworten Top
#8
Hi,

kann ich nicht nachvollziehen. Lad doch mal bitte die Mappe hoch.
Antworten Top
#9
Guten Morgen Boris,

also ich hab mir jetzt bisschen mehr Zeit genommen um das ganze zu Prüfen.

Also das Arbeitsblatt wird aktualisiert (also muss ich meine vorherige Aussage zurück nehmen SORRY  05 )


Wäre es generell möglich auf Mehrfachselektion zu prüfen? Es ist zwar nicht sooooo wichtig aber es wäre natürlich besser.
Antworten Top
#10
Hi,

prüfen kann man auf alles - aber um es "wasserdicht" zu machen, braucht es halt einiges mehr an Programmieraufwand, zumal Dein Eingabebereich mit B15:G1003 auch recht groß ist.
Hier gilt - wie so oft in der Programmierung: Kleiner Wunsch, großer Aufwand.
Wenn Du Deine Datei mal hochlädst, dann schau ich mal.
[-] Folgende(r) 1 Nutzer sagt Danke an {Boris} für diesen Beitrag:
  • tomcat
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste