Error 104 en macro
El código de la macro es el siguiente: "error 104 No se puede cambiar parte de una matriz"
La macro es la siguiente:
Range("I7").Select
Selection.FormulaArray = _
"=IFERROR(INDEX(ENTXDEV[Artículo],MATCH(KGLOBAL[[#This Row],[Cadena]],IF(ENTXDEV[Pieza]=KGLOBAL[[#This Row],[Pieza]],ENTXDEV[Cadena]),0)),"""")"
Range("J7").Select
ActiveCell.FormulaR1C1 = _
"=SUMIFS(ENTXDEV[Metros],ENTXDEV[Cadena],KGLOBAL[[#This Row],[Cadena]],ENTXDEV[Pieza],KGLOBAL[[#This Row],[Pieza]])"
Range("L7").Select
Selection.FormulaArray = _
"=IFERROR(INDEX(SALXREM[Artículo],MATCH(KGLOBAL[[#This Row],[Cadena]],IF(SALXREM[Pieza]=KGLOBAL[[#This Row],[Pieza]],SALXREM[Cadena]),0)),"""")"
Range("M7").Select
ActiveCell.FormulaR1C1 = _
"=SUMIFS(SALXREM[Metros],SALXREM[Cadena],KGLOBAL[[#This Row],[Cadena]],SALXREM[Pieza],KGLOBAL[[#This Row],[Pieza]])"
Range("N7").Select
Selection.FormulaArray = _
"=IFERROR(INDEX(SALEMB[Artículo],MATCH(KGLOBAL[[#This Row],[Cadena]],IF(SALEMB[Pieza]=KGLOBAL[[#This Row],[Pieza]],SALEMB[Cadena]),0)),"""")"
Range("O7").Select
ActiveCell.FormulaR1C1 = _
"=SUMIFS(SALEMB[Metros],SALEMB[Cadena],KGLOBAL[[#This Row],[Cadena]],SALEMB[Pieza],KGLOBAL[[#This Row],[Pieza]])"
Range("P7").Select
Selection.FormulaArray = _
"=IFERROR(INDEX(SALVTAS[Artículo],MATCH(KGLOBAL[[#This Row],[Cadena]],IF(SALVTAS[Pieza]=KGLOBAL[[#This Row],[Pieza]],SALVTAS[Cadena]),0)),"""")"
Range("Q7").Select
ActiveCell.FormulaR1C1 = _
"=SUMIFS(SALVTAS[Metros],SALVTAS[Cadena],KGLOBAL[[#This Row],[Cadena]],SALVTAS[Pieza],KGLOBAL[[#This Row],[Pieza]])"
Range("T7").Select
Selection.FormulaArray = _
"=IFERROR(INDEX(INVFINAL[PROCESO KX TULANCINGO],MATCH(KGLOBAL[[#This Row],[Cadena]],IF(INVFINAL[Pieza]=KGLOBAL[[#This Row],[Pieza]],INVFINAL[Cadena]),0)),"""")"
Range("U7").Select
ActiveCell.FormulaR1C1 = _
"=SUMIFS(INVFINAL[Metros],INVFINAL[Cadena],KGLOBAL[[#This Row],[Cadena]],INVFINAL[Pieza],KGLOBAL[[#This Row],[Pieza]])"
Range("I7:U7").Select
Selection.Copy
Range("KGLOBAL[[Artículo2]:[Metros6]]").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Calculate
Range("KGLOBAL[[Artículo2]:[Metros6]]").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("S6").Select
End Sub
Al depurar me señala las líneas que marco con negritas y subrayadas
No tengo muchos conocimientos al respecto, sin embargo entiendo que lo que estoy haciendo mal es querer copiar las fórmulas de la primera fila de la tabla(excel 2007), y posteriormente pegar la fórmulas hacia abajo de toda la columna hacia abajo. En otra macro lo ejecuta sin problemas pero supongo que es porque no icluyo una fórmula matricial. Seguramente tu sabrás como evitar el error o formularlo de forma más efectiva.
La macro es la siguiente:
Range("I7").Select
Selection.FormulaArray = _
"=IFERROR(INDEX(ENTXDEV[Artículo],MATCH(KGLOBAL[[#This Row],[Cadena]],IF(ENTXDEV[Pieza]=KGLOBAL[[#This Row],[Pieza]],ENTXDEV[Cadena]),0)),"""")"
Range("J7").Select
ActiveCell.FormulaR1C1 = _
"=SUMIFS(ENTXDEV[Metros],ENTXDEV[Cadena],KGLOBAL[[#This Row],[Cadena]],ENTXDEV[Pieza],KGLOBAL[[#This Row],[Pieza]])"
Range("L7").Select
Selection.FormulaArray = _
"=IFERROR(INDEX(SALXREM[Artículo],MATCH(KGLOBAL[[#This Row],[Cadena]],IF(SALXREM[Pieza]=KGLOBAL[[#This Row],[Pieza]],SALXREM[Cadena]),0)),"""")"
Range("M7").Select
ActiveCell.FormulaR1C1 = _
"=SUMIFS(SALXREM[Metros],SALXREM[Cadena],KGLOBAL[[#This Row],[Cadena]],SALXREM[Pieza],KGLOBAL[[#This Row],[Pieza]])"
Range("N7").Select
Selection.FormulaArray = _
"=IFERROR(INDEX(SALEMB[Artículo],MATCH(KGLOBAL[[#This Row],[Cadena]],IF(SALEMB[Pieza]=KGLOBAL[[#This Row],[Pieza]],SALEMB[Cadena]),0)),"""")"
Range("O7").Select
ActiveCell.FormulaR1C1 = _
"=SUMIFS(SALEMB[Metros],SALEMB[Cadena],KGLOBAL[[#This Row],[Cadena]],SALEMB[Pieza],KGLOBAL[[#This Row],[Pieza]])"
Range("P7").Select
Selection.FormulaArray = _
"=IFERROR(INDEX(SALVTAS[Artículo],MATCH(KGLOBAL[[#This Row],[Cadena]],IF(SALVTAS[Pieza]=KGLOBAL[[#This Row],[Pieza]],SALVTAS[Cadena]),0)),"""")"
Range("Q7").Select
ActiveCell.FormulaR1C1 = _
"=SUMIFS(SALVTAS[Metros],SALVTAS[Cadena],KGLOBAL[[#This Row],[Cadena]],SALVTAS[Pieza],KGLOBAL[[#This Row],[Pieza]])"
Range("T7").Select
Selection.FormulaArray = _
"=IFERROR(INDEX(INVFINAL[PROCESO KX TULANCINGO],MATCH(KGLOBAL[[#This Row],[Cadena]],IF(INVFINAL[Pieza]=KGLOBAL[[#This Row],[Pieza]],INVFINAL[Cadena]),0)),"""")"
Range("U7").Select
ActiveCell.FormulaR1C1 = _
"=SUMIFS(INVFINAL[Metros],INVFINAL[Cadena],KGLOBAL[[#This Row],[Cadena]],INVFINAL[Pieza],KGLOBAL[[#This Row],[Pieza]])"
Range("I7:U7").Select
Selection.Copy
Range("KGLOBAL[[Artículo2]:[Metros6]]").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Calculate
Range("KGLOBAL[[Artículo2]:[Metros6]]").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("S6").Select
End Sub
Al depurar me señala las líneas que marco con negritas y subrayadas
No tengo muchos conocimientos al respecto, sin embargo entiendo que lo que estoy haciendo mal es querer copiar las fórmulas de la primera fila de la tabla(excel 2007), y posteriormente pegar la fórmulas hacia abajo de toda la columna hacia abajo. En otra macro lo ejecuta sin problemas pero supongo que es porque no icluyo una fórmula matricial. Seguramente tu sabrás como evitar el error o formularlo de forma más efectiva.
1 Respuesta
Respuesta de Juan Carlos González Chavarría
1