Clever-Excel-Forum

Normale Version: Formel mit Makro ändern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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
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
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
Ein Traum!!

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

Ihr seid ein gutes Team!!

:18:
Seiten: 1 2