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.
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
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.
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
Top
#15
Ein Traum!!

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

Ihr seid ein gutes Team!!

:18:
Top


Gehe zu:


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