ich bräuchte eure Hilfe.
Ich habe eine Tabelle, wo ich in Zeile 9 ein Datum suche und wenn es gefunden wird ich darunter
Berechnungen durchführe.
Das funktioniert auch so weit.
Allerdings bräuchte ich noch eine Erweiterung, wenn in Spalte D Abweichung oder % steht und bei
der Berechnung 0 oder eine Fehlermeldung kommt soll mir einfach ein Punkt oder Strich (. Oder -)
eingetragen werden.
Daran verzweifle ich gerade, hat von euch Profis jemand eine Lösung?
Ich würde mich über jeden Lösungsvorschlag oder jede Verbesserung meines Makros sehr freuen.
Das Datum suchen und darunter berechnen tue ich aktuell so:
Public Sub Datum_Suchen()
Dim rngFind As Range
Dim strDate As String
Dim Lz As Long
Dim Lz1 As Long
Dim i As Integer
Dim rngBereich As Range
Dim rngZelle As Range
Sheets("Auswertung").Select
Lz = ActiveSheet.Cells(Rows.Count, "D").End(xlUp).Row
strDate = Range("D1").Value
If strDate = "" Then Exit Sub
Set rngFind = Rows("9:9").Cells.Find(DateValue(strDate), LookIn:=xlFormulas)
If Not rngFind Is Nothing Then
rngFind.Offset(1, 0).Activate
ActiveCell.FormulaR1C1 = _
"=IF(RC4=""ZDE"",SUMIFS(CSEL10BAU55!C5,CSEL10BAU55!C1,R1C4,CSEL10BAU55!C15,RC3, _
CSEL10BAU55!C19,""""),IF(RC4=""BDE"",SUMIFS(CSEL10BAU55!C4,CSEL10BAU55!C1,R1C4,CSEL10BAU55!C15,RC3,CSEL10BAU55!C19,""""),IF(RC4=""Produktionszeit"",SUMIFS(CSEL10BAU55!C7,CSEL10BAU55!C1,R1C4,CSEL10BAU55!C15,RC3,CSEL10BAU55!C19,""""),IF(RC4=""Gemeinkostenzeit"",SUMIFS(CSEL10BAU55!C10,CSEL10B" & _ "AU55!C1,R1C4,CSEL10BAU55!C15,RC3,CSEL10BAU55!C19,""""),IF(RC4=""Differenz"",SUMIFS(CSEL10BAU55!C2,CSEL10BAU55!C1,R1C4,CSEL10BAU55!C15,RC3,CSEL10BAU55!C19,""""),"""")))))" & _
ActiveCell.AutoFill Destination:=ActiveCell.Resize(Lz - ActiveCell.Row + 1), Type:= _
xlFillValues
ActiveCell.Resize(Lz - ActiveCell.Row + 1).Copy
ActiveCell.Resize(Lz - ActiveCell.Row + 1).PasteSpecial Paste:=xlPasteValues, Operation:= _
xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Set rngBereich = ActiveCell.Resize(Lz - ActiveCell.Row + 1)
For Each rngZelle In rngBereich
If rngZelle.Value = "" Then
rngZelle.FormulaR1C1 = "=IFERROR((R[-3]C/R[-5]C*1),"""")"
rngZelle.NumberFormat = "0.0%"
End If
Next
ActiveCell.Resize(Lz - ActiveCell.Row + 1).Copy
ActiveCell.Resize(Lz - ActiveCell.Row + 1).PasteSpecial Paste:=xlPasteValues, Operation:= _
xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Else
MsgBox "Das Datum wurde nicht gefunden!"
End If
End Sub
Beispiel Datei:
https://www.herber.de/bbs/user/144968.xlsx
Allerdings nur wie es gerade ist und wie es aussehen soll. (Ohne Daten für die Berechnung)
Vielen Dank, beste Grüße
der Mani