08.02.2017, 08:27
(Dieser Beitrag wurde zuletzt bearbeitet: 08.02.2017, 09:16 von dertommy.
Bearbeitungsgrund: Ergänzung
)
Ich habe folgenden bestehen Code:
Diesen will ich nun wie folgt erweitert haben.
Ich will, dass aus dem Tabellenblatt "Panels" aus der Spalte "G" in Bezug auf die Spalte "B", welchen ich im Tabellenblatt "Anweisungen" in Spalte "A" eingegeben habe, ein Datum ausgelesen bekommen und dann fix in der Formel stehen haben, welche sich im Tabellenblatt "Top30" in der Spalte "M" befinden soll. So sollte dann der Code aussehen:
=DATEDIF("das ermittelte Datum";HEUTE();"M")/(ZÄHLENWENNS(Anweisungen!A:A;"hugo";Anweisungen!E:E; "ausgezahlt"))
Leider bekomme ich es nicht hin. Ich hoffe, dass mir jemand helfen kann. Die nötige Datei habe ich mit angehängt.
Diesen Beitrag gibt es auch in weiteren Foren:
Herber: http://www.herber.de/cgi-bin/callthread....ex=1538672
Msoffice: http://www.ms-office-forum.net/forum/sho...p?t=339591
Online-excel: http://www.online-excel.de/fom/fo_read.php?f=1&bzh=0&h=89665#a123x
Office-fragen: http://www.office-fragen.de/index.php/to...890.0.html
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'Wenn etwas geändert wird
If Target.Column = 1 Then
If Not IsEmpty(Cells(Target.Row, 1)) Then
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]="""","""",VLOOKUP(Anweisungen!RC[-1],Panels!R5C2:R100C3,2,FALSE))"
Cells(Target.Row, 3).Value = Date
Exit Sub
End If
End If
If Target.Column = 6 Then 'in Spalte E
If ActiveSheet.Cells(Target.Row, 1).Value <> vbNullString Then 'und Spalte A nicht leer _
_
ist
strFind = ActiveSheet.Cells(Target.Row, 1).Value
Set rngFind = ThisWorkbook.Worksheets("Top30").Columns(7).Find(What:=strFind, _
LookAt:=xlPart) 'suche Wert aus Spalte A in Top30 in Spalte B
If Not rngFind Is Nothing Then 'Wenn Wert existiert dann
ThisWorkbook.Worksheets("Top30").Activate
Top30alleanzeigen
Top30anzeigen
ThisWorkbook.Worksheets("Anweisungen").Activate
Else 'sonst
With ThisWorkbook.Worksheets("Top30")
q = .Cells(6, 5).CurrentRegion.Rows.Count + 6
.Cells(q, 1).FormulaR1C1 = "=RANK(RC[2],C[2])"
.Cells(q, 2).FormulaR1C1 = "=""" & strFind & " (""&COUNTIFS(Anweisungen!C[- _
_
1],""" & strFind & """,Anweisungen!C[3],""ausgezahlt"")& ""x)"""
.Cells(q, 3).FormulaR1C1 = "=SUMIFS(Anweisungen!C[1],Anweisungen!C[-2],""" & _
_
strFind & """,Anweisungen!C[2],""ausgezahlt"")"
.Cells(q, 4).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(IFERROR(LEFT(RC[-2],SEARCH(" _
_
" "",RC[-2],1) -1),RC[-2]),Panels!C[-2],1,0)),""nicht aktiv"",""aktiv"")"
.Cells(q, 6).FormulaR1C1 = "=RANK(RC[2],C[2])"
.Cells(q, 7).FormulaR1C1 = "=""" & strFind & " (€ ""&TEXT(SUMIFS( _
Anweisungen!C[-3],Anweisungen!C[-6],""" & strFind & """,Anweisungen!C[-2],""ausgezahlt""),""#.## _
0,00"") & "")"""
.Cells(q, 8).FormulaR1C1 = "=COUNTIFS(Anweisungen!C[-7],""" & strFind & """, _
_
Anweisungen!C[-3],""ausgezahlt"")"
.Cells(q, 9).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(IFERROR(LEFT(RC[-2],SEARCH(" _
_
" "",RC[-2],1) -1),RC[-2]),Panels!C[-7],1,0)),""nicht aktiv"",""aktiv"")"
.Cells(q, 11).FormulaR1C1 = "=RANK(RC[2],C[2])"
.Cells(q, 12).FormulaR1C1 = "=""" & strFind & " (€ ""&TEXT(SUMIFS( _
Anweisungen!C[-8],Anweisungen!C[-11],""" & strFind & """,Anweisungen!C[-7],""ausgezahlt""),""#.# _
#0,00"") & "")"""
hier bräuchte ich den neuen Code
.Cells(q, 14).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(IFERROR(LEFT(RC[-2], _
SEARCH("" "",RC[-2],1) -1),RC[-2]),Panels!C[-12],1,0)),""nicht aktiv"",""aktiv"")"
ThisWorkbook.Worksheets("Top30").Activate
Top30alleanzeigen
Top30anzeigen
ThisWorkbook.Worksheets("Anweisungen").Activate
End With
End If
End If
With ThisWorkbook.Worksheets("Anweisungen")
If .Cells(Target.Row, 6) = "j" Then
.Cells(Target.Row, 7) = Date
End If
End With
End If
End Sub
Diesen will ich nun wie folgt erweitert haben.
Ich will, dass aus dem Tabellenblatt "Panels" aus der Spalte "G" in Bezug auf die Spalte "B", welchen ich im Tabellenblatt "Anweisungen" in Spalte "A" eingegeben habe, ein Datum ausgelesen bekommen und dann fix in der Formel stehen haben, welche sich im Tabellenblatt "Top30" in der Spalte "M" befinden soll. So sollte dann der Code aussehen:
=DATEDIF("das ermittelte Datum";HEUTE();"M")/(ZÄHLENWENNS(Anweisungen!A:A;"hugo";Anweisungen!E:E; "ausgezahlt"))
Leider bekomme ich es nicht hin. Ich hoffe, dass mir jemand helfen kann. Die nötige Datei habe ich mit angehängt.
Diesen Beitrag gibt es auch in weiteren Foren:
Herber: http://www.herber.de/cgi-bin/callthread....ex=1538672
Msoffice: http://www.ms-office-forum.net/forum/sho...p?t=339591
Online-excel: http://www.online-excel.de/fom/fo_read.php?f=1&bzh=0&h=89665#a123x
Office-fragen: http://www.office-fragen.de/index.php/to...890.0.html
Excel Version 2016