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.

Formel mit Makro ändern
#11
Hallo Uwe,

ich glaube nicht, dass das funktioniert, da die Formel als Matrixformel eingegeben werden muß, was mit VBA nicht so einfach ist. Hier mal ein Link zum Thema:

http://www.office-loesung.de/ftopic311812_0_0_asc.php
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#12
Hallo Schu,

so sollten Deine Wünsche erfüllt werden: :)
Code:
Sub FormelnErsetzen()
  Dim oWs As Worksheet
  Dim rngZelle As Range
  Dim strBezug(1 To 2) As String
  On Error Resume Next
  For Each oWs In ActiveWorkbook.Worksheets
    For Each rngZelle In oWs.Columns(9).SpecialCells(xlCellTypeFormulas)
      If rngZelle.Offset(, -1).Value = "Arbeitsstunden nichtWT:" Then
        strBezug(1) = rngZelle.DirectPrecedents.Areas(1).Address(0, 0)
        strBezug(2) = rngZelle.DirectPrecedents.Areas(2).Address(0, 0)
        rngZelle.Formula = "=SUMPRODUCT((" & strBezug(1) & "=TRANSPOSE('arbeitsfreie Tage 2011-2013'!$A$1:$A$59))*(MOD(" & strBezug(1) & ",7)>1)*(" & strBezug(2) & "))+SUMPRODUCT((MOD(" & strBezug(1) & ",7)<2)*(" & strBezug(2) & "))"
      End If
    Next rngZelle
  Next oWs
End Sub

Gruß Uwe
Antworten Top
#13
Hallo,

doch:

http://de.excel-translator.de/mtrans/
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#14
Hallo Edgar,

danke für den Hinweis. Das hatte ich glatt übersehen.
So sollte es dann mit Matrixformeln klappen:
Code:
Sub FormelnErsetzen()
  Dim oWs As Worksheet
  Dim rngZelle As Range
  Dim strBezug(1 To 2) As String
  On Error Resume Next
  For Each oWs In ActiveWorkbook.Worksheets
    For Each rngZelle In oWs.Columns(9).SpecialCells(xlCellTypeFormulas)
      If rngZelle.Offset(, -1).Value = "Arbeitsstunden nichtWT:" Then
        strBezug(1) = rngZelle.DirectPrecedents.Areas(1).Address(0, 0)
        strBezug(2) = rngZelle.DirectPrecedents.Areas(2).Address(0, 0)
        rngZelle.FormulaArray = "=SUMPRODUCT((" & strBezug(1) & "=TRANSPOSE('arbeitsfreie Tage 2011-2013'!$A$1:$A$59))*(MOD(" & strBezug(1) & ",7)>1)*(" & strBezug(2) & "))+SUMPRODUCT((MOD(" & strBezug(1) & ",7)<2)*(" & strBezug(2) & "))"
      End If
    Next rngZelle
  Next oWs
End Sub

Gruß Uwe
Antworten Top
#15
Ein Traum!!

Vielen Dank Euch allen für die rege Teilnahme! Es funktioniert alles bestens!!!

Ihr seid ein gutes Team!!

:18:
Antworten Top


Gehe zu:


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