Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1260to1264
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
Inhaltsverzeichnis

Zeit bei Nullwerten muss weg

Zeit bei Nullwerten muss weg
Michel
Hi leute,
ich komm schon wieder nicht weiter. Ich geh mir schon selbst auf den Keks.... :-/ aber vieleicht hat einer von euch Spezialisten eine Idee.
Ich habe zwei spalten.
22--15:18:49  --      0
23--15:18:49	--	2,00014472
24--15:18:49	--	14,0010128
25--15:18:50	--	25,99826431
26--15:18:50	--	37,99913025
27--15:18:50	--	50
28--15:18:50	--	50,99826431
29--15:19:11	--	50
30--15:19:12	--	41,99942017
31--15:19:12	--	33,99884415
32--15:19:12	--	25,99826431
33--15:19:12	--	18,00130272
34--15:19:13	--	10,00072384
35--15:19:13	--	2,00014472
36--15:19:13	--	0,499131948
37--15:19:14	--	0,499131948
38--15:18:42	--	0
39--15:18:42	--	0
40--15:18:42	--	0
41--15:18:42	--	0
42--15:18:42	--	0
43--15:18:42	--	0
44--15:18:42	--	0
45--15:18:42	--	0
46--15:18:42	--	0
47--15:18:42	--	0
48--15:18:42	--	0
49--15:18:42	--	0
72--15:18:50   --     0

Die Zeitwerte werden durch folgende Funktion gesetzt:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("G22:G72")) Is Nothing Then
Target.Offset(, -2) = Time
End If
Dies funktioniert.
Problem ist, dass ich beim löschen der Werte alle Werte in der linken Spalte auf 0 setze. Dies wird dann als Änderung erkannt und ich bekomm immer in alle Zellen die Zeit geschrieben. Dort wo eine 0 steht soll aber keine Zeit stehen.
Hat jemand ne Idee wie ich die wegbekomme? Irgendwie mit einem Vergleich, dass wenn vorher ne 0 gestanden hat und immer noch eine steht die Zeit nicht zu übertragen?
Bin für jeden Tipp Dankbar.
Bitte um Rückmeldung falls die Fragestellung unklar ist.
Vielen Dank schonmal
Gruß Michel

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zeit bei Nullwerten muss weg
02.05.2012 17:26:38
Tino
Hallo,
vielleicht geht es so?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Intersect(Range("G22:G72"), Target)
If Not rng Is Nothing Then
Application.EnableEvents = False
rng.Offset(, -2).FormulaR1C1 = "=IF(RC[2]0,Mod(NOW(),1),"""")"
rng.Offset(, -2).Value = rng.Offset(, -2).Value
Application.EnableEvents = True
End If
End Sub
Gruß Tino
AW: Zeit bei Nullwerten muss weg
02.05.2012 22:03:54
Michel
Hi Tino,
SUUUUUPER. Es geht. Vielen vielen Dank.
Aber könntest du mir noch einen gefallen tun und es kurz komentieren?
Ich muss nämlich sagen, dass ich Probleme habe es zu verstehen.
So weit hab ichs glaub ich.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Intersect(Range("G22:G72"), Target)'rng ist Überprüfung ob die Werte in dem  _
Bereich liegen 
If Not rng Is Nothing Then 'Wenn die Werte dem Bereich entsprechen wird if Schleife  _
weiter ausgeführt

Application.EnableEvents = False
rng.Offset(, -2).FormulaR1C1 = "=IF(RC[2]0,Mod(NOW(),1),"""")"  'Hier habe ich  _
keine Ahnung?
rng.Offset(, -2).Value = rng.Offset(, -2).Value     '? _
b>
Application.EnableEvents = True
End If
End Sub
Das .Offset verstehe ich noch mit (,-2). Aber was bedeutet der Rest? Das mit dem FormulaR1C1 usw.
Wäre toll wenn du mir das nochmal näher bringen könntest.
ABer trotzdem schon vielen Dank
Hast mir sehr geholfen.
Gruß Michel
Anzeige
AW: Zeit bei Nullwerten muss weg
02.05.2012 23:02:08
Tino
Hallo,
hab mal was dazugeschrieben.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
'rng bekommt den Bereich zugewiesen wo in G22:G72 entwas eingegeben wird 
Set rng = Intersect(Range("G22:G72"), Target)
'wurde in G22:G72 etwas eingegeben? 
If Not rng Is Nothing Then
    'Events abschalten, damit dieses Event durch Eingabe nicht erneut aufgerufen wird 
    Application.EnableEvents = False
        'Zwei Spalten nach links von der Eingabe in G22:G72 kommt diese Formel 
        '=Wenn(G22<>0;Rest(Jetzt();1);"") 
        rng.Offset(, -2).FormulaR1C1 = "=IF(RC[2]<>0,Mod(NOW(),1),"""")"
        'Formelergebnis durch Werte ersetzen 
        rng.Offset(, -2).Value = rng.Offset(, -2).Value
    'Events einschalten 
    Application.EnableEvents = True
End If
End Sub
Damit umgehe ich eine Schleife.
Du kannst also den gesamten Bereich G22:G72 auf einmal ändern z.Bsp. durch kopieren und einfügen.
Gruß Tino
Anzeige
AW: Zeit bei Nullwerten muss weg
04.05.2012 10:13:53
Michel
Hi Tino,
echt super von dir. Das war der letzte Baustein der mir gefehlt hat.
Vielen vielen Dank für deine Hilfe.
Viele Grüße
Michel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige