Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1276to1280
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

matrix formel in schleife aktualisiert nicht

matrix formel in schleife aktualisiert nicht
Rudolph
Hallo,
ich erstelle in einer schleife Dateien und Ordnen mit verschiedenen Inhalten aus einer Haupttabelle:
VBA sieht so aus:
Sub Reports_erstellen()
Dim i As Integer, sFile As String
Const sPfad As String = "C:\Users\Andre\Desktop\XXXREPORT\"
For i = 1 To 5
If Cells(i, 1)  "" Then
sFile = Cells(i, 1)
MkDir sPfad & sFile
With Workbooks.Add
' verschiedene Formel und Formatierungen und folgende Matrixformel
Range("B8").Select
ActiveCell.FormulaR1C1 = _
"=IF(ROWS('[C.xlsm]C'!R1:R[-7])>COUNTIFS('[C.xlsm]C'!C[0],R3C1,'[C.xlsm]C'!C[12],"" _
ok""),"""",INDEX('[C.xlsm]C'!C[8],SMALL(IF(('[C.xlsm]C'!R1C[0]:R20000C[0]=R3C1)*('[C.xlsm]C'!R1C[12]:R20000C[12]=""ok""),ROW(R1:R20000)),ROW('[C.xlsm]C'!R[-7]C[8]))))"
Selection.FormulaArray = _
"=IF(ROWS('[C.xlsm]C'!R1:R[-7])>COUNTIFS('[C.xlsm]C'!C[0],R3C1,'[C.xlsm]C'!C[12],"" _
ok""),"""",INDEX('[C.xlsm]C'!C[8],SMALL(IF(('[C.xlsm]C'!R1C[0]:R20000C[0]=R3C1)*('[C.xlsm]C'!R1C[12]:R20000C[12]=""ok""),ROW(R1:R20000)),ROW('[C.xlsm]C'!R[-7]C[8]))))"
If Range("M2").Value > 1 Then
Selection.AutoFill Destination:=Range("b8:b20"), Type:=xlFillDefault
End If
.SaveAs sPfad & sFile & "\" & "120910 " & "GG Report " & sFile & " August 2012 (al)"
.Close
End With
End If
Next
End Sub

das funktioniert auch soweit alles. nur gibt es ein problem wenn ich das makro um folgenden befehl erweitere:
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
dann werden die formel nicht mehr aktualisiert und es steht das erste ergebnis in jeder zeile.
wie bekomme ich es hin das die matrx formel erst komplett berechnet wird und er anschließend alle formeln aus dem sheet löscht und durch reine werte ersetzt?
Vielen Danke für eure Hilfe im vorraus.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: matrix formel in schleife aktualisiert nicht
10.09.2012 17:40:04
Rudolph
Problem selbst gelöst :)
einfach
calculate reinschreiben, dann kalkuliert er automatisch. ist irgendwie auf manuell gestellt worden.

AW: matrix formel in schleife aktualisiert nicht
10.09.2012 17:55:57
fcs
Hallo Rudolph,
ich würde hier aber nicht mit Cells sondern mit Usedrange arbeiten. Bereitet ggf. weniger Probleme und ist gewöhnlich auch schneller.
Außerm kannst du die 1. FormulaR1C1-Zuweisung weglassen, da sie durch die 2. überschrieben wird
Gruß
Franz

Sub Reports_erstellen()
Dim i As Integer, sFile As String
Const sPfad As String = "C:\Users\Andre\Desktop\XXXREPORT\"
For i = 1 To 5
If Cells(i, 1)  "" Then
sFile = Cells(i, 1)
MkDir sPfad & sFile
With Workbooks.Add
' verschiedene Formel und Formatierungen und folgende Matrixformel
Range("B8").Select
ActiveCell.FormulaArray = _
"=IF(ROWS('[C.xlsm]C'!R1:R[-7])>COUNTIFS('[C.xlsm]C'!C[0],R3C1," _
& "'[C.xlsm]C'!C[12],""ok""),"""",INDEX('[C.xlsm]C'!C[8]," _
& "SMALL(IF(('[C.xlsm]C'!R1C[0]:R20000C[0]=R3C1)" _
& "*('[C.xlsm]C'!R1C[12]:R20000C[12]=""ok""),ROW(R1:R20000))," _
& "ROW('[C.xlsm]C'!R[-7]C[8]))))"
If Range("M2").Value > 1 Then
Selection.AutoFill Destination:=Range("b8:b20"), Type:=xlFillDefault
End If
With ActiveSheet.UsedRange
.Calculate
.Copy
.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, _
Transpose:=False
End With
.SaveAs sPfad & sFile & "\" & "120910 " & "GG Report " & sFile _
& " August 2012 (al)"
.Close
End With
End If
Next
End Sub

Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige