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.

Neulingsfrage
#1
Hi

Hier mein Problem (Formel soll in Zelle M4 stehen):

Wenn in Zelle D4 „Feiertag“ oder „Urlaub“ oder „Zeitausgleich“ steht sollen in den Zellen B4 die Uhrzeit „7:30“ und in C4 die Uhrzeit „15:42“ stehen!
Das ist jetzt nur eine Zeile, das ganze soll sich dann bis Zeile 35 fortsetzen.

Hoffentlich kann mir jemand weiterhelfen
Danke
Antworten Top
#2
Hallo,


Zitat:Hier mein Problem (Formel soll in Zelle M4 stehen):


das geht so nicht, Formeln können nur auf die Zelle wirken, in der sie stehen.

So würde das gehen:

Tabelle1

ABCD
3
47:3015:42Urlaub
57:3015:42Feiertag
67:3015:42Zeitausgleich
Formeln der Tabelle
ZelleFormel
B4=WENN(ODER(D4="Urlaub";D4="Feiertag";D4="Zeitausgleich");0,3125;0)
C4=WENN(ODER(D4="Urlaub";D4="Feiertag";D4="Zeitausgleich");0,65416667;0)
B5=WENN(ODER(D5="Urlaub";D5="Feiertag";D5="Zeitausgleich");0,3125;0)
C5=WENN(ODER(D5="Urlaub";D5="Feiertag";D5="Zeitausgleich");0,65416667;0)
B6=WENN(ODER(D6="Urlaub";D6="Feiertag";D6="Zeitausgleich");0,3125;0)
C6=WENN(ODER(D6="Urlaub";D6="Feiertag";D6="Zeitausgleich");0,65416667;0)

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Hallo,

falls du in den Zellen der Spalte D auch andere Begriffe verwenden willst und in Spalte B bzw. C manuell andere Zeiten eintragen willst, werden dann die Formeln überschrieben.
Man kann die Formeln mit VBA wiederherstellen oder manuell neu eintragen. 
Aber man kann es auch gleich so machen (Ins Modul des Tabellenblattes):

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i%, varTage$
    varTage = "feiertag~~urlaub~~zeitausgleich"                 'ggf. Anpassen/Erweitern
    If Not Intersect(Target, Range("D4:D35")) Is Nothing Then
        i = ActiveCell.Row
        If Target.Cells <> "" Then
            If InStr(1, varTage, LCase(Cells(i, 4))) > 0 Then
                Cells(i, 2) = "07:30"
                Cells(i, 2).NumberFormat = "h:mm"
                Cells(i, 3) = "15:42"
                Cells(i, 3).NumberFormat = "h:mm"
            End If
        Else
            Cells(i, 2) = ""
            Cells(i, 3) = ""
        End If
    End If
End Sub
Gruß Uwe
Antworten Top
#4
Hi Uwe,

ist das wirklich Dein Rat an einen "Neuling"?
Abgesehen davon fliegt Deine Code bei Mehrfacheingabe ab - aber viel entscheidender: Die Einträge verrutschen 1 Zeile nach unten, da Du mit ActiveCell arbeitest (es sei denn, man hat in den Optionen eingestellt, dass Enter keine Selektionsänderung bewirkt).
Antworten Top
#5
Hallo Boris,

Sorry, das mit dem Neuling, hatte ich überlesen.
Du hast recht - war unüberlegt von mir. Das letztere kann man auffangen. Runterziehen und im Block geht nur mit On Error.
Gruß Uwe
Antworten Top
#6
Hallo ChewChew,

dass das so nicht geht, hat Klaus-Dieter ja schon erläutert. Dein Ansatz muss ein anderer sein. Es gibt ja mit Sicherheit eine Zelle (angenommen es ist N4), in der du die Differenz zwischen Anfang und Ende errechnest. Und genau in dieser Zelle (N4) musst du Urlaub, ZA usw. vorher abfragen. Also WENN in D4 einer der besagten Werte drinsteht, DANN muss in N4 die Differenz zwischen 15:42 und 7:30 errechnet werden. WENN das nicht der Fall ist, dann rechne die Differenz zwischen C4 und B4.
Code:
=WENN(ODER(D4="Urlaub";D4="Zeitausgleich";D4="Feiertag");ZEITWERT("15:42")-ZEITWERT("7:30");C4-B4)
Noch etwas feiner, ohne Zeitwert:
Code:
=WENN(ODER(D4="Urlaub";D4="Zeitausgleich";D4="Feiertag");492/(24*60);C4-B4)
Schöne Grüße
Berni
Antworten Top


Gehe zu:


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