habe da ein Problem und weiß nicht mehr weiter.
Ich benutze bei der Arbeit eine Excel-Datei für die Auswertung unserer Abfülllinien.
Für jede Abfülllinie habe ich ein eigenes Arbeitsblatt mit jeweils 13 Spalten.
Für die Erfassung der Daten habe ich mir ein VBA-Formular zurechtgebastelt welches die Daten dann in das jeweilige Arbeitsblatt einträgt.
Die Spalten "I" und "K" beinhalten die vorgegebene Abfüll- bzw. Rüstzeit (in Industrie-zeit) des Auftrages.
In die Spalten "J" und "K" trage ich dann die tatsächlichen Zeiten ein.
Nun möchte ich das so einrichten das die tatsächlichen Zeitwerte je nachdem ob sie > die Schriftfarbe rot und für Ich habe es mit der bedingten Formatierung versucht das klappt aber nicht wirklich.
Wenn ich die Zelle der ersten Zeile bedingt formatiere und dann dieses Format mit "Format übertragen" auf die anderen Zellen der Spalte übertrage nimmt er mir immer den Zellwert der Ersten Zeile.
z.B. Regel Format Wird angewendet auf
Zellwert Zellwert > $I$2 Rote Schrift $J$2
Zellwert Zellwert > $I$2 Rote Schrift $J$3:$J$999
Kann mir jemand zeigen wie ich das mit VBA lösen kann?
Da die Datei 746 KB groß ist und der Upload auf 300 KB begrenzt ist hier der Aufbau der Tabellenblätter mit den relevanten Spalten:
Spalte I Spalte J Spalte K Spalte K
Zeile 1 Soll Abf.Z. Ist Abf.Z. Soll RüstZeit Ist RüstZeit
Zeile 2 0,82 1,33 0,50 0,58
Zeile 3 0,85 0,75 0,50 0,50
Hier der Code der UserForm:
Private Sub cmdAbbruch_Click()
'Schließt das Formular
Unload frmAbfüllung
End Sub
Private Sub cmdÜbernehmen_Click()
'Fügt die eigetragenen Werte in die Tabelle ein, schließt das Formular, kehrt zur _
Formularauswahl zurück und Speichert die Datei.
Dim intErsteLeereZeile As Long
With ActiveSheet
intErsteLeereZeile = .Cells(Rows.Count, 2).End(xlUp).Row + 1
.Cells(intErsteLeereZeile, 2).Value = CDate(frmAbfüllung.txtDatum.Value)
.Cells(intErsteLeereZeile, 3).Value = frmAbfüllung.txtPANr.Value
.Cells(intErsteLeereZeile, 4).Value = frmAbfüllung.txtArtNr.Value
.Cells(intErsteLeereZeile, 7).Value = frmAbfüllung.txtStückZahl.Value
.Cells(intErsteLeereZeile, 10).Value = frmAbfüllung.txtAbfüllZeit.Value
.Cells(intErsteLeereZeile, 12).Value = frmAbfüllung.txtRüstZeit.Value
.Cells(intErsteLeereZeile, 13).Value = frmAbfüllung.txtMitarbeiter.Value
End With
Unload frmAbfüllung
Worksheets("Formular").Select
ActiveWorkbook.Save
End Sub
Private Sub ListBox1_Click()
'Erlaubt das auswählen des benötigten Blattes.
Worksheets(Me.ListBox1.Value).Select
Worksheets(Me.ListBox1.Value).Activate
End Sub
Private Sub UserForm_Activate()
'Listet alle Tabellenblätter auf und erlaubt das auswählen des benötigten Blattes.
Dim wks As Worksheet
Me.ListBox1.Clear
For Each wks In Worksheets
If wks.Name "Formular" And wks.Name "Handarbeit" And wks.Name "Tabelle1" Then
Me.ListBox1.AddItem wks.Name
End If
Next wks
End Sub
Private Sub UserForm_Initialize()
'Lädt das aktuelle Datum ins Formular
frmAbfüllung.txtDatum.Value = Date
End Sub
Für konstruktive Vorschläge bin ich sehr dankbar.
Gruß
Walter