Collapse column

Autor Thema: Office 2010: Zelle auslesen und in Formel ausgeben  (Gelesen 785 mal)

Offline tommytom79

  • Newbie
  • *
  • Beiträge: 2
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Office 2010: Zelle auslesen und in Formel ausgeben
« am: Februar 08, 2017, 08:13:52 Vormittag »
Ich habe folgenden bestehen 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.pl?index=1538672
Msoffice: http://www.ms-office-forum.net/forum/showthread.php?t=339591
Clever: http://www.clever-excel-forum.de/thread-8514.html
Online-Excel: http://www.online-excel.de/fom/fo_read.php?f=1&bzh=0&h=89665#a123x



Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline StefKe

  • Full Member
  • ***
  • Beiträge: 100
    • Profil anzeigen
  • Office-KnowHow: Anfänger
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2016
Antw:Office 2010: Zelle auslesen und in Formel ausgeben
« Antwort #1 am: Februar 08, 2017, 12:09:26 Nachmittag »
Dann warten wir mal ab welche Antwort Du in den anderen Foren bekommst  ;D

Offline tommytom79

  • Newbie
  • *
  • Beiträge: 2
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw:Office 2010: Zelle auslesen und in Formel ausgeben
« Antwort #2 am: Februar 08, 2017, 14:24:35 Nachmittag »

Wenn du dich noch intensiver mit Excel beschäftigen möchtest, dann empfiehlt sich ein Online-Kurs,
in dem du sehr viel über Excel erfährst und das gelernte umgehend in der Praxis anwenden kannst.