gimli3311
Goto Top

VBA Formel einfügen

Guten Tag Zusammen,

ich bin es mal wieder und brauche eure Hilfe.

Problem: Ich möchte die Termintreue angezeigt bekommen haben dafür hab ich diese Formel in Excel geschrieben:

=WENN(J2="";"";WENN(L2;"closed/ erledigt";WENN(HEUTE()>J2;"delay/Verzug";"in time/ rechtzeitig")))

Dies möchte ich jetzt aber Automatisieren und der Spalte K2:K-Ende hinzufügen oder Der ganzen Spalte K (Das was leichter umzusetzen ist).

Habe natürlich schon wie ein Blöder das Internet durchsucht und diesen Code gefunden:

Sub SummenPerMakro()
 Dim Zelle As Range
 Dim Nr As Long
 For Each Zelle In ActiveSheet.Range("d2:d10")  
  Nr = Zelle.Row
  Zelle.FormulaLocal = "=SUMME(A" & Nr & ":C" & Nr & ")"  
 Next Zelle
 End Sub 

Nun wie bekomm ich diesen Code in meinen Eingebunden?
Meine Formel würde ich so umändern:

=IF(J2="";"";IF(L2;"closed/ erledigt";IF(DATE()>J2;"delay/Verzug";"in time/ rechtzeitig")))

aber wie bekomme ich J2 und L2 variable da die Funktion auf über 1000 Zellen gehen sollte.


Vorlage_22.Activate
With ActivateSheet
'Dateilink  
    Vorlage_22.Range("A2:A" & Vorlage_22.Cells(Rows.Count, 1).End(xlUp).Row).Copy rngNext  
    'Nr/ ID  
    Vorlage_22.Range("B2:B" & Vorlage_22.Cells(Rows.Count, 1).End(xlUp).Row).Copy rngNext.Offset(0, 1)  
    'Inputgeber  
    Vorlage_22.Range("G2:G" & Vorlage_22.Cells(Rows.Count, 1).End(xlUp).Row).Copy rngNext.Offset(0, 2)  
    'Datum  
    Vorlage_22.Range("C2:C" & Vorlage_22.Cells(Rows.Count, 1).End(xlUp).Row).Copy rngNext.Offset(0, 3)  
    'Thema  
    Vorlage_22.Range("D2:D" & Vorlage_22.Cells(Rows.Count, 1).End(xlUp).Row).Copy rngNext.Offset(0, 4)  
    'Bewertung/Maßnahmen  
    Vorlage_22.Range("E2:E" & Vorlage_22.Cells(Rows.Count, 1).End(xlUp).Row).Copy rngNext.Offset(0, 5)  
    'Verantwortlich  
    Vorlage_22.Range("H2:H" & Vorlage_22.Cells(Rows.Count, 1).End(xlUp).Row).Copy rngNext.Offset(0, 8)  
    'Geplannte Termin  
    Vorlage_22.Range("I2:I" & Vorlage_22.Cells(Rows.Count, 1).End(xlUp).Row).Copy rngNext.Offset(0, 9)  
    'Durchführender  
    Vorlage_22.Range("M2:M" & Vorlage_22.Cells(Rows.Count, 1).End(xlUp).Row).Copy rngNext.Offset(0, 10)  
    'Erledigungs-Datum  
    Vorlage_22.Range("J2:J" & Vorlage_22.Cells(Rows.Count, 1).End(xlUp).Row).Copy rngNext.Offset(0, 11)  
    'Status  
    Vorlage_22.Range("L2:L" & Vorlage_22.Cells(Rows.Count, 1).End(xlUp).Row).Copy rngNext.Offset(0, 12)  
    
    'Termintreue  
    Vorlage_22.Range("K2:K" & Vorlage_22.Cells(Rows.Count, 1).End(xlUp).Row).Copy rngNext.Offset(0, 13)  
    'Formel Termintrue  
   

    'Bemerkung  
    Vorlage_22.Range("N2:N" & Vorlage_22.Cells(Rows.Count, 1).End(xlUp).Row).Copy rngNext.Offset(0, 14)  
End With
Set rngNext = Vorlagen_Gesamt.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)

Danke für Eure Ratschläge und Tipps face-smile

Gruß Gimli3311


EDIT:

Ich hab es so mal versuch aber klappt natürlich nicht:

For Each Cell In Vorlagen_Gesamt.Range("K")  
    Cell.FormulaLocal = " =IF(J2="";"";IF(L2;"closed/ erledigt";IF(DATE()>J2;"delay/Verzug";"in time/ rechtzeitig")))"  
Next

Content-ID: 266060

Url: https://administrator.de/contentid/266060

Ausgedruckt am: 23.11.2024 um 08:11 Uhr

114757
114757 12.03.2015 aktualisiert um 16:10:08 Uhr
Goto Top
ActiveSheet.Range("K2").FormulaLocal = "=WENN(J2="""";"""";WENN(L2;""closed/ erledigt"";WENN(HEUTE()>J2;""delay/Verzug"";""in time/ rechtzeitig"")))"  
ActiveSheet.Range("K2:K" & ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row).FillDown  
Gruß jodel32
Gimli3311
Gimli3311 12.03.2015 um 15:39:08 Uhr
Goto Top
Hey Jodel32,

Danke für deine schnell Antwort face-smile

Soll ich die beiden Zeilen dann in Zeile 29 kopieren?
Ich bekomm einen Laufzeitfehler 1004 --> Anwendungs- oder objektdefinierter Fehler.

In dem Fall hab ich deine Zeilen falsch reinkopiert oder meine Formel stimmt nicht ^^
Stimmt das DATE() in der Formel?

Ich Danke jetzt schon für deine Hilfe face-smile
Du hast es nicht leicht mit mir :D

Gruß Gimli3311
114757
114757 12.03.2015 aktualisiert um 16:15:44 Uhr
Goto Top
ist korrigiert, sorry war mit Phone unterwegs face-wink

Stimmt das DATE() in der Formel?
Nope, das wäre in Englisch today()
http://www.piuha.fi/excel-function-name-translation/?page=deutsch-engli ...

Ich habs dir aber in Deutsch mit "FormulaLocal" eingebaut ...

Wie wärs mal mit VBA richtig lernen, anstatt dir alles zusammen zu suchen ? Wäre effektiver als den ganzen Tag im Forum rum zu hängen face-wink
Gimli3311
Gimli3311 12.03.2015 um 16:17:15 Uhr
Goto Top
Kein Problem bin froh das ich Hilfe bekomme ;)

Hat Perfekt funktioniert face-smile

Vielen Dank Jodel32

Gruß Gimli3311