22.01.2017, 02:05
Guten Abend,
als Neuling im Forum möchte ich mich kurz vorstellen:
Mechaniker, 30+, MAC (privat) und Windows (Arbeit) User
Grundkenntnisse in der VBA Programmierung mangelhaft, sonstige Formelnutzung in Excel geht so. Ich komme mit Excel zurecht, kann Tabellen erstellen und habe mich an erste VBA Projekte gewagt.
Ich habe Tabellen zur Zeitenübersicht größerer Events erstellt, die soweit auch sehr gut funktionieren. Ziel ist es. zu jeder Zeit eine konkrete Restzeitangabe zu haben.
Ein Teil der Zeiten entsteht durch Beanstandungen, die bei Inspektionen festgehalten werden. Sie werden in der Tabelle mit der geschätzten Arbeitszeit notiert und entsprechend in einer Übersicht als Gesamtzeit angezeigt.
Wurden Teilbereiche oder gewisse Arbeitsschritte erledigt, schrumpft die Restzeit natürlich. Wenn das Event fertig ist, steht in der Übersicht idealerweise eine Null. Grob umschrieben hoffe ich, dass ihr wisst was ich meine.
Mein Ziel ist jetzt noch, die Maximalzeiten in einer Extraspalte festgehalten werden:
Arbeit XY, Dauer 5:00hrs
Wenn jetzt ein Teil abgearbeitet wurde:
Arbeit XY, Dauer 2:00hrs
Ich möchte gerne die 5:00hrs in einer weiteren Zelle speichern, damit man am Ende die tatsächlich geleistete Arbeitszeit nachweisen kann.
Da die Arbeitszeiten auch nach Fakultät unterschieden werden, lasse ich mir die Autosumme von G10-L10 zusammenrechnen und sie in N10 anzeigen. Und genau diesen Wert, der variieren kann, möchte ich in M10 speichern. (Zeile 10 ist die oberste und es geht bis 250)
Ich habe ein VBA dazu gefunden, was auch in seiner Weise super funktioniert, allerdings bekomme ich es nicht hin, es auf meine Range umzustellen:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iRow As Integer
If Intersect(Target, Range("A1:A5")) Is Nothing Then Exit Sub
For iRow = 1 To 5
Cells(iRow, 5) = WorksheetFunction.Max(Cells(iRow, 1).Range("A1:B1"))
Next
End Sub
Hier werden die größten Werte aus A1-A5 jeweils in B1-B5 gespeichert. War also in A1 erst eine 5, dann ein 4, wird in B1 die 5 dauerhaft gespeichert. Sollte nochmal in A1 eine Zahl >5 eingegeben, wird wieder die größere gespeichert, usw.
Ich hoffe, ihr könnt mir da weiterhelfen. Suche jetzt schon lange nach einer Lösung, bin aber in den letzten zwei Monaten nicht weitergekommen, als bis zu den Beispiel, das ich oben geschrieben habe.
VG
Nils
als Neuling im Forum möchte ich mich kurz vorstellen:
Mechaniker, 30+, MAC (privat) und Windows (Arbeit) User
Grundkenntnisse in der VBA Programmierung mangelhaft, sonstige Formelnutzung in Excel geht so. Ich komme mit Excel zurecht, kann Tabellen erstellen und habe mich an erste VBA Projekte gewagt.
Ich habe Tabellen zur Zeitenübersicht größerer Events erstellt, die soweit auch sehr gut funktionieren. Ziel ist es. zu jeder Zeit eine konkrete Restzeitangabe zu haben.
Ein Teil der Zeiten entsteht durch Beanstandungen, die bei Inspektionen festgehalten werden. Sie werden in der Tabelle mit der geschätzten Arbeitszeit notiert und entsprechend in einer Übersicht als Gesamtzeit angezeigt.
Wurden Teilbereiche oder gewisse Arbeitsschritte erledigt, schrumpft die Restzeit natürlich. Wenn das Event fertig ist, steht in der Übersicht idealerweise eine Null. Grob umschrieben hoffe ich, dass ihr wisst was ich meine.
Mein Ziel ist jetzt noch, die Maximalzeiten in einer Extraspalte festgehalten werden:
Arbeit XY, Dauer 5:00hrs
Wenn jetzt ein Teil abgearbeitet wurde:
Arbeit XY, Dauer 2:00hrs
Ich möchte gerne die 5:00hrs in einer weiteren Zelle speichern, damit man am Ende die tatsächlich geleistete Arbeitszeit nachweisen kann.
Da die Arbeitszeiten auch nach Fakultät unterschieden werden, lasse ich mir die Autosumme von G10-L10 zusammenrechnen und sie in N10 anzeigen. Und genau diesen Wert, der variieren kann, möchte ich in M10 speichern. (Zeile 10 ist die oberste und es geht bis 250)
Ich habe ein VBA dazu gefunden, was auch in seiner Weise super funktioniert, allerdings bekomme ich es nicht hin, es auf meine Range umzustellen:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iRow As Integer
If Intersect(Target, Range("A1:A5")) Is Nothing Then Exit Sub
For iRow = 1 To 5
Cells(iRow, 5) = WorksheetFunction.Max(Cells(iRow, 1).Range("A1:B1"))
Next
End Sub
Hier werden die größten Werte aus A1-A5 jeweils in B1-B5 gespeichert. War also in A1 erst eine 5, dann ein 4, wird in B1 die 5 dauerhaft gespeichert. Sollte nochmal in A1 eine Zahl >5 eingegeben, wird wieder die größere gespeichert, usw.
Ich hoffe, ihr könnt mir da weiterhelfen. Suche jetzt schon lange nach einer Lösung, bin aber in den letzten zwei Monaten nicht weitergekommen, als bis zu den Beispiel, das ich oben geschrieben habe.
VG
Nils