Wenn dann Wert löschen, Formel beibehalten

josef24

Erfahrenes Mitglied
Guten Tag in die Runde und noch ein gutes Neues Jahr wünsche ich. Ich komme mal wieder mit einem Problem, wo ich nicht mehr weiter komme. Ich möchte, das wenn ich in Feld B9 fff einen Eintrag mache, der Wert in B6 fff ausgeblendet (nicht mit berechnet) wird (VBA Code) . Die Formel die dort angewandt
(Feld B6 ff) wird sollte aber erhalten bleiben, damit man sie später nicht mühselig wieder rein kopieren muss.
Habe mal die Tabelle angehängt, um es zu verdeutlichen. Danke und Gruß Josef
 

Anhänge

  • Meine Schichtarbeitszeit Erfasssung.zip
    46 KB · Aufrufe: 4
fff?

Ansonsten. Nix mit VBA. Du kannst deine Formel entsprechend anpassen
Code:
=IF(ISBLANK(B9);IF(B10="";"";IF(OR(B10={"Debora","Sandra","Tanja","Vertr.1","Vertr.2",""});MOD(B4-B3-B5+B9;1);""));"")
 
Danke, er zeigt einen Fehler bei "Debora","Sandra","Tanja","Vertr.1","Vertr.2","" , und übernimmt somit die Formel nicht. Vielleicht geht da noch was? Gruß Josef
 
Was für ein Fehler?
Excel zeigt keine Fehler irgendwo in der Formel. Was also bei Debora& Co?

Meine Formel ist direkt für das Feld B6.
Den Trigger, der B6 killt musst du deaktivieren. Sonst löscht du deine Formel.
 
Danke, denke der Fehler ist sicher bei mir zu suchen. Den Trigger deaktivieren, was heißt das, und wo verstelle ich die Faktoren? Es ist jetzt so, das die Formel im Feld steht, aber nicht "wirksam" ist. Der ursprüngliche Wert der aus meiner Sicht dort abgebildet sein soll, erscheint nicht. Daher gibt es ja keine Berechnung für die Folge.
Gruß Josef
 
Trigger der die Formel in B6 löscht:
Visual Basic:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim RaBereich As Range                          ' Variable für Bereich
    Dim RaZelle As Range                            ' Variable für Zelle
    Set RaBereich = Range("B9:Z9")                  ' Bereich der Wirksamkeit
    Set RaBereich = Intersect(RaBereich, Target)
    If Not RaBereich Is Nothing Then
        Application.EnableEvents = False
        For Each RaZelle In RaBereich
            RaZelle.Offset(-3, 0).ClearContents
        Next RaZelle
        Application.EnableEvents = True
    End If
    Set RaBereich = Nothing                         ' Variable leeren
End Sub
Deaktivieren heisst Code entfernen. Den ganzen.

Dann die Formel in B6 eintragen. Es ist deine Ursprüngliche Formel aus C6 um den IF(ISBLANK.. erweitert.
Bei mir funktioniert das wunderbar.
 

Anhänge

  • Meine Schichtarbeitszeit Erfasssung.zip
    43,2 KB · Aufrufe: 1
Zurück