Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Mit VBA Wenn Funktion in .Formular integrieren
#1
Hallo Zusammen,

per VBA definiere ich mit .Formula eine Formel. Ich würde da aber gerne noch eine Wenn-Funktion einbauen. Manuell klappt es aber mit .Formula nicht.


Mein Ziel ist es diesen funktionierenden Code

Code:
p_WorksheetZiel_ws.Cells(p_aktZeileNr_int + 1, kg_SpaltenNrErgMechB).Formula = "=IF(R" & p_aktZeileNr_int & "C20=" & """inclusive costs""" & ",PR_Uml_Satz
,0)"

In diesen hier zu integrieren
Code:
p_WorksheetZiel_ws.Cells(p_aktZeileNr_int + 1, kg_SpaltenNrErgMechB).Formula = "='" & .Name & "'!" & .Cells(kg_ZeilenNrStationHeader + 1, kg_SpaltenNrStationMechB).Address & "*(1+Stundenswitch*(StdSatzBüro-1))" & "*(1+Stundenswitch*switch*(Pr_Sum_Satz" & " + Pr_CE_UML" & " + IF(R" & p_aktZeileNr_int & "C20=" & """inclusive costs""" & ",PR_Uml_Satz,0)" & " + '" & .Name & "'!J15))"

Wie man dem Code entnehmen kann hab ich es versucht aber es klappt nicht. Es muss also an der Schreibweise liegen. Wenn ich die Wenn-Funktion manuell in die Zelle einfüge funktioniert es.

Danke euch
Antwortento top
#2
versuche es mit dem makrorekorder. 
Aufnahme starten 
in die Zelle worin die Formel steht doppelklicken und dann mit Enter wieder raus.
Aufnahme beenden und im  Editor schauen was der Rekorder aufgenommen hat.  

Sieht aber nach fehlenden Anführungstrichen aus.
Antwortento top
#3
(18.08.2020, 21:39)ralf_b schrieb: Sieht aber nach fehlenden Anführungstrichen aus.

Moin!
Yepp!
Aus diesem Grund schlummert eine UDF in meiner Personal.xlsb
Function FormulaToString(rng As Range) As String
If rng.CountLarge > 1 Then
    FormulaToString = CVErr(xlErrValue)
    Exit Function
ElseIf IsEmpty(rng) Then
    FormulaToString = vbNullString
    Exit Function
End If
FormulaToString = """" & Replace(rng.FormulaR1C1, """", """""") & """"
End Function

Ergibt:
BC
14Zeile: 14, Spalte: 2"=""Zeile: ""&ROW()&"", Spalte: ""&COLUMN()"

ZelleFormel
B14="Zeile: "&ZEILE()&", Spalte: "&SPALTE()
C14=FormulaToString(B14)

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antwortento top
#4
Hallo Ralf,

Wo fehlen Anführungszeichen?

danke für den Tipp das habe ich gemacht.

Code:
ActiveCell.FormulaR1C1 = _

        "='Neues Stationsblatt 2'!R30C11*(1+Stundenswitch*(StdSatzBüro_2021-1))*(1+Stundenswitch*switch*(PR_Sum_Satz_Jahr2 + PR_CE_Umlage_Jahr2" & "+IF(Ergebnisübersicht!R[503]C[19]=""inclusive TEF1-L costs"", Uml_Satz,0)" & " + 'Neues Stationsblatt 2'!R[13]C[9]))"
Habe den IF-Anteil getrennt um zu testen ob es klappt. Hier im Makrorekorder klappt es.

Aber sobald ich irgendeinen IF-Anteil in diesen Code hier integriere funktioniert es nicht, auch nicht mit der vereinfachten IF-Version:

Code:
p_WorksheetZiel_ws.Cells(p_aktZeileNr_int + 1, kg_SpaltenNrErgMechB).Formula = "='" & .Name & "'!" & .Cells(kg_ZeilenNrStationHeader + 1, kg_SpaltenNrStationMechB).Address & "*(1+Stundenswitch*(StdSatzBüro-1))" & "*(1+Stundenswitch*switch*(Pr_Sum_Satz" & " + Pr_CE_UML" & "+IF(Ergebnisübersicht!R[503]C[19]=""inclusive TEF1-L costs"", Uml_Satz,0)" & " + '" & .Name & "'!J15))"
Antwortento top
#5
Hallo,

benutze die A1-Schreibweise beim IF oder

FormulaR1C1 = ... kg_SpaltenNrStationMechB).Address(ReferenceStyle:=xlR1C1) ...

Gruß Uwe
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste