Office: Optimierung einer Formel für eine Arbeitserfassung

Helfe beim Thema Optimierung einer Formel für eine Arbeitserfassung in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Okay :) Lösung des Rätsels: Wenn die Spalte zu eng ist, rundet Excel die Zahl einfach auf... Sehr interessant :) Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Jandb1980, 24. August 2014.

  1. Jandb1980 Erfahrener User

    Optimierung einer Formel für eine Arbeitserfassung


    Okay :)


    Lösung des Rätsels: Wenn die Spalte zu eng ist, rundet Excel die Zahl einfach auf...

    Sehr interessant :)
     
    Jandb1980, 3. September 2014
    #16
  2. Jandb1980 Erfahrener User
    Hallo Leute,

    ich habe nun per VBA einen Code gebastelt, um in mehreren Tabellenblättern Zelleninhalte zu löschen. Der Code funktioniert auch super, aber ich denke mir, der ist bestimmt noch verbesserungsfähig. Da ich mich nicht so gut auskenne mit VBA dachte ich, ihr könnt euch das evtl. mal anschauen und mir Tipps geben :)

    Code:
    Private Sub CommandButton10_Click()
    Sheets("Jan").Select
    Sheets("Jan").Unprotect Password:="test"
    Sheets("Jan").Range("C10:D40").ClearContents
    Sheets("Jan").Range("J10:J40").ClearContents
    Sheets("Jan").Range("C60:J90").ClearContents
    Sheets("Jan").Range("E48:E48").ClearContents
    Sheets("Jan").Range("E95:E95").ClearContents
    Sheets("Jan").Protect Password:="test"
    Sheets("Feb").Select
    Sheets("Feb").Unprotect Password:="test"
    Sheets("Feb").Range("C10:D40").ClearContents
    Sheets("Feb").Range("J10:J40").ClearContents
    Sheets("Feb").Range("C60:J90").ClearContents
    Sheets("Feb").Range("E48:E48").ClearContents
    Sheets("Feb").Range("E95:E95").ClearContents
    Sheets("Feb").Protect Password:="test"
    Sheets("Mrz").Select
    Sheets("Mrz").Unprotect Password:="test"
    Sheets("Mrz").Range("C10:D40").ClearContents
    Sheets("Mrz").Range("J10:J40").ClearContents
    Sheets("Mrz").Range("C60:J90").ClearContents
    Sheets("Mrz").Range("E48:E48").ClearContents
    Sheets("Mrz").Range("E95:E95").ClearContents
    Sheets("Mrz").Protect Password:="test"
    Sheets("Apr").Select
    Sheets("Apr").Unprotect Password:="test"
    Sheets("Apr").Range("C10:D40").ClearContents
    Sheets("Apr").Range("J10:J40").ClearContents
    Sheets("Apr").Range("C60:J90").ClearContents
    Sheets("Apr").Range("E48:E48").ClearContents
    Sheets("Apr").Range("E95:E95").ClearContents
    Sheets("Apr").Protect Password:="test"
    Sheets("Mai").Select
    Sheets("Mai").Unprotect Password:="test"
    Sheets("Mai").Range("C10:D40").ClearContents
    Sheets("Mai").Range("J10:J40").ClearContents
    Sheets("Mai").Range("C60:J90").ClearContents
    Sheets("Mai").Range("E48:E48").ClearContents
    Sheets("Mai").Range("E95:E95").ClearContents
    Sheets("Mai").Protect Password:="test"
    Sheets("Jun").Select
    Sheets("Jun").Unprotect Password:="test"
    Sheets("Jun").Range("C10:D40").ClearContents
    Sheets("Jun").Range("J10:J40").ClearContents
    Sheets("Jun").Range("C60:J90").ClearContents
    Sheets("Jun").Range("E48:E48").ClearContents
    Sheets("Jun").Range("E95:E95").ClearContents
    Sheets("Jun").Protect Password:="test"
    Sheets("Jul").Select
    Sheets("Jul").Unprotect Password:="test"
    Sheets("Jul").Range("C10:D40").ClearContents
    Sheets("Jul").Range("J10:J40").ClearContents
    Sheets("Jul").Range("C60:J90").ClearContents
    Sheets("Jul").Range("E48:E48").ClearContents
    Sheets("Jul").Range("E95:E95").ClearContents
    Sheets("Jul").Protect Password:="test"
    Sheets("Aug").Select
    Sheets("Aug").Unprotect Password:="test"
    Sheets("Aug").Range("C10:D40").ClearContents
    Sheets("Aug").Range("J10:J40").ClearContents
    Sheets("Aug").Range("C60:J90").ClearContents
    Sheets("Aug").Range("E48:E48").ClearContents
    Sheets("Aug").Range("E95:E95").ClearContents
    Sheets("Aug").Protect Password:="test"
    Sheets("Sep").Select
    Sheets("Sep").Unprotect Password:="test"
    Sheets("Sep").Range("C10:D40").ClearContents
    Sheets("Sep").Range("J10:J40").ClearContents
    Sheets("Sep").Range("C60:J90").ClearContents
    Sheets("Sep").Range("E48:E48").ClearContents
    Sheets("Sep").Range("E95:E95").ClearContents
    Sheets("Sep").Protect Password:="test"
    Sheets("Okt").Select
    Sheets("Okt").Unprotect Password:="test"
    Sheets("Okt").Range("C10:D40").ClearContents
    Sheets("Okt").Range("J10:J40").ClearContents
    Sheets("Okt").Range("C60:J90").ClearContents
    Sheets("Okt").Range("E48:E48").ClearContents
    Sheets("Okt").Range("E95:E95").ClearContents
    Sheets("Okt").Protect Password:="test"
    Sheets("Nov").Select
    Sheets("Nov").Unprotect Password:="test"
    Sheets("Nov").Range("C10:D40").ClearContents
    Sheets("Nov").Range("J10:J40").ClearContents
    Sheets("Nov").Range("C60:J90").ClearContents
    Sheets("Nov").Range("E48:E48").ClearContents
    Sheets("Nov").Range("E95:E95").ClearContents
    Sheets("Nov").Protect Password:="test"
    Sheets("Dez").Select
    Sheets("Dez").Unprotect Password:="test"
    Sheets("Dez").Range("C10:D40").ClearContents
    Sheets("Dez").Range("J10:J40").ClearContents
    Sheets("Dez").Range("C60:J90").ClearContents
    Sheets("Dez").Range("E48:E48").ClearContents
    Sheets("Dez").Range("E95:E95").ClearContents
    Sheets("Dez").Protect Password:="test"
    Sheets("Urlaubsübersicht").Select
    Sheets("Urlaubsübersicht").Unprotect Password:="test"
    Sheets("Urlaubsübersicht").Range("P8:R22").ClearContents
    Sheets("Urlaubsübersicht").Protect Password:="test"
    Sheets("Stammdaten").Select
    Sheets("Stammdaten").Range("C2:D3").ClearContents
    Sheets("Stammdaten").Range("C5:C8").ClearContents
    MsgBox "Nun sind ALLE Daten gelöscht!"
    End Sub
    
    
     
    Jandb1980, 11. September 2014
    #17
  3. Exl121150 Erfahrener User
    Hallo,

    folgender Code müsste funktionieren - allerdings mit einer möglichen kleinen Einschränkung:
    Ich habe für die Arbeitsblätter mit den Monatsnamen die Funktion "MonthName(M,True)" verwendet: diese Funktion produziert jedoch unterschiedliche Abkürzungen aus je 3 Buchstaben, je nachdem auf welches Sprachgebiet Excel eingestellt ist. So erhält man zB.
    für de-DE (=deutsch/Deutschland): "Jan", "Feb", "Mär", ..., "Dez"
    für de-AT (=deutsch/Österreich): "Jän", "Feb", "Mär", ...., "Dez"
    Die Monatsarbeitsblätter müssten also exakt die Namen des eingestellten Sprachgebietes haben.

    Code:
    Private Sub CommandButton10_Click()
      Dim M As Integer
      
      For M = 1 To 12
        BlattBereicheLoeschen MonthName(M, True), "test", "C10:D40, J10:J40, C60:J90, E48, E95"
      Next M
      BlattBereicheLoeschen "Urlaubsübersicht", "test", "P8:R22"
      BlattBereicheLoeschen "Stammdaten", "", "C2:D3, C5:C8"
      
      MsgBox "Nun sind ALLE Daten gelöscht!"
    End Sub
    Private Sub BlattBereicheLoeschen(BlattBez$, PWD$, Bereiche$)
      With Sheets(BlattBez$)
        If Len(PWD$) Then .Unprotect Password:=PWD$
        .Range(Bereiche$).ClearContents
        If Len(PWD$) Then .Protect Password:=PWD$
      End With
    End Sub
    
    Sollte dies jedoch Probleme verursachen, müsste man folgende Variante nehmen:
    Code:
    Private Sub CommandButton10_Click()
      Dim M As Integer
      Dim Monate As Variant
      
      Monate = Array("", "Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez")
      
      For M = 1 To 12
        BlattBereicheLoeschen (Monate(M)), "test", "C10:D40, J10:J40, C60:J90, E48, E95"
      Next M
      BlattBereicheLoeschen "Urlaubsübersicht", "test", "P8:R22"
      BlattBereicheLoeschen "Stammdaten", "", "C2:D3, C5:C8"
      
      MsgBox "Nun sind ALLE Daten gelöscht!"
    End Sub
    Private Sub BlattBereicheLoeschen(BlattBez$, PWD$, Bereiche$)
      With Sheets(BlattBez$)
        If Len(PWD$) Then .Unprotect Password:=PWD$
        .Range(Bereiche$).ClearContents
        If Len(PWD$) Then .Protect Password:=PWD$
      End With
    End Sub
    
    Anmerkung: Die Schreibweise "(Monate(M))" mit der Klammerung darf nicht geändert werden, sonst erhält man einen Übergabefehler an die SUB "BlattBereicheLoeschen".
     
    Zuletzt bearbeitet: 11. September 2014
    Exl121150, 11. September 2014
    #18
  4. Jandb1980 Erfahrener User

    Optimierung einer Formel für eine Arbeitserfassung

    Super :) danke dir vielmals, ich habe mich für Variante 2 entschieden.
     
    Jandb1980, 11. September 2014
    #19
  5. Jandb1980 Erfahrener User
    Noch eine Problematik:

    Bisher berechne ich mit folgender Formel die geleistete Arbeitszeit:
    Code:
    =WENN(UND(C10="";D10="");D10-C10;WENN(ODER(A10="Sa";A10="So";ZÄHLENWENN(Inhalt8h;J10)>0;B10="");0;D10-C10-"0:30"))
    
    Das Problem hierbei ist, das IMMER 30 Minuten Pause abgezogen werden, es sei denn, Zelle C10 UND D10 sind leer.

    Nun habe ich mir überlegt, ich erweitere die Formel noch um die Abfrage, ob die Arbeitszeit <= 4 Stunden ist, und zwar wie folgt:
    Code:
    =WENN(ODER(D10-C10<=4;UND(C10="";D10=""));D10-C10;WENN(ODER(A10="Sa";A10="So";ZÄHLENWENN(Inhalt8h;J10)>0;B10="");0;D10-C10-"0:30"))
    
    Aber das Problem hier ist, das er nun immer die 30 Minuten Pause ignoriert. Habe ich die Abfrage D10-C10<=4 falsch definiert?
     
    Jandb1980, 14. September 2014
    #20
  6. Exl121150 Erfahrener User
    Hallo,

    ich möchte kurz zusammenfassen, was du möchtest, um sicher zu sein in dem, was du willst:
    Zusätzlich zur 1. Variante (=falls C10 und D10 beide leer sind) möchtest du auch dann von der Differenz D10-C10 keine 1/2 Stunde abziehen, wenn diese Differenz kleiner/gleich 4 Stunden ist.

    Generell gilt in den Office-Programmen: die Datum/Zeit-Einheit ist stets: 1 Tag.
    Somit sind 4 Stunden = 4/24 Tage = 1/6 Tag

    Aus diesem Grund ist deine Formel folgendermaßen zu modifizieren (rot gekennzeichnet):
    Code:
    =WENN(ODER(D10-C10<=4[COLOR="#FF0000"]/24[/COLOR];UND(C10="";D10=""));D10-C10;WENN(ODER(A10="Sa";A10="So";ZÄHLENWENN(Inhalt8h;J10)>0;B10="");0;D10-C10-"0:30"))
    Also lagst du mit deiner Vermutung, dass es an "D10-C10<=4" liegt, goldrichtig.
     
    Exl121150, 14. September 2014
    #21
  7. Jandb1980 Erfahrener User
    Achsoooooo :D okay, dann war mein Gedankengang schon richtig, hab das nur etwas falsch angegangen :)

    Danke dir :)
     
    Jandb1980, 14. September 2014
    #22
Thema:

Optimierung einer Formel für eine Arbeitserfassung

Die Seite wird geladen...
  1. Optimierung einer Formel für eine Arbeitserfassung - Similar Threads - Optimierung Formel Arbeitserfassung

  2. projektplan optimierung

    in Microsoft Excel Hilfe
    projektplan optimierung: ich haben einen projektplan erstellt die Beispiel Datei lade ich gerne hach das Problem jetzt ist das er in den angepassten Zellen im Kalender die Farbe nicht anpasst er soll dabei Bezug auf die...
  3. Projektplan optimierung

    in Microsoft Excel Hilfe
    Projektplan optimierung: hallo, ich habe einen projektplan erstelle in dem vorne das Datum eingegeben wird und er automatisch im Kalender die entsprechenden Zellen farbig Markiert. Jetzt stehet in jeder Zelle der Name...
  4. Formel Optimierung

    in Microsoft Excel Hilfe
    Formel Optimierung: Hallo ihr lieben Wissenden, ich habe ein, ich glaube etwas umständliches Formelkonstrukt, welches eigentlich auch macht was es soll. Aber ich frage mich ob das nicht irgendwie einfacher geht. Ich...
  5. Optimierung Formel wenn, zählenwenn, Index

    in Microsoft Excel Hilfe
    Optimierung Formel wenn, zählenwenn, Index: Hallo, ich habe mein letzten Beitrag gelöst. Allerdings möchte ich die Formel nun erweitern. Ich hatte nach einer Formel gesucht, die mir zu einem Suchkriterium in meiner Tabelle ein passendes...
  6. Verwenden von benutzerdefinierten Tools zur Optimierung von Finanzprozessen

    in Microsoft Excel Tutorials
    Verwenden von benutzerdefinierten Tools zur Optimierung von Finanzprozessen: Verwenden von benutzerdefinierten Tools zur Optimierung von Finanzprozessen Excel für Microsoft 365 Excel 2019 Power BI Mehr... Weniger...
  7. Hilfe bei Optimierung einer Coronadatenbank

    in Microsoft Access Hilfe
    Hilfe bei Optimierung einer Coronadatenbank: Hallo zusammen! Ich hoffe auf eure Hilfe bei folgender Problemstellung: Eine Access Datenbank wurde erstellt, um COVID-19 Infizierte, Verdachtsfälle und einfache Kontaktpersonen anlegen und...
  8. Optimierung Datenbank

    in Microsoft Access Hilfe
    Optimierung Datenbank: Hallo zusammen Ich habe vor etwa einem Jahr eine Datenbank für einen Teil unserer Produkte erstellt. Das hat nach einigen Startschwierigkeiten dann auch gut funktioniert. Mit dem Gebrauch der...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden