![]() |
Ayuda con Macro Cuento con un libro de Excel el cual contiene una hoja propuesta, una mas de resumen y (n) hojas para le desglosado de los conceptos de cada partida la cual puede llevar de 1 a 50 conceptos con su listado de materiales cada uno, en la hoja de resumen automáticamente se despliega el titulo de la partida y el valor total de la misma al igual que en la hoja propuesta, solo que en esta deben aparaser todos los conceptos, y esto es fácil si cada hoja tiene uno, dos o tres conceptos pues se puede hacer manual mente, el problema surge cuando son 30, 40 o 50 conceptos pues el trabajo es muy tedioso, para esto realice un macro que me jale los valores de las hojas de desglose a la carta propuesta solo que me maneja solo valores. Sub COPYPASTE2() Sheets("PU's(45)").Select CLAVE = ActiveCell.Value DESCRIPCION = ActiveCell.Offset(0, 1).Value CANTIDAD = ActiveCell.Offset(0, 2).Value UNIDADES = ActiveCell.Offset(0, 3).Value PU = ActiveCell.Offset(0, 11).Value PU2 = ActiveCell.Offset(0, 13).Value Sheets("CARTA PROPUESTA").Select With ActiveCell .Value = CLAVE .Offset(0, 1).Value = DESCRIPCION .Offset(0, 2).Value = UNIDADES .Offset(0, 3).Value = CANTIDAD .Offset(0, 4).Value = PU .Offset(0, 6).Value = PU2 ActiveCell.Offset(2, 0).Range("A1").Select End With Sheets("PU's(45)").Select End Sub Y tengo la necesidad de manejarlo en formula para que cualquier modificación en las hojas de desglose se realice en forma automática en la hoja propuesta. Sub Macro1() Dim r As Double Dim c As Double c = ActiveCell.Column r = ActiveCell.Row Worksheets("CARTA PROPUESTA").Activate ActiveCell.FormulaR1C1 = "='PU''s(45)'!R[" & r & "]C[" & c & "]" Sheets("PU's(45)").Select End Sub Pero no me respeta los valores de c y r y aplica la formula direccionada a otro renglón y columna. Tienen ustedes alguna sugerencia para este problema |
Re: Ayuda con Macro Amigo Dic. La respuesta es sencilla, primero debes saber que en excel cuando utilizas la instrucción FormulaR1C1, esta trabaja con la celda actual es decir si colocas c = ActiveCell.Column r = ActiveCell.Row ActiveCell.FormulaR1C1 = "='PU''s(45)'!R[" & r & "]C[" & c & "]" esta instrucción lo que hará será hacer referencia a la fila (r) tantos valores mas abajo al de la celda donde estás ubicado..e igualmente con la columna es decir si estas en la celda A10, el va a hacer referencia a la celda A(10+10)=A20 y con la columna sería B20 (recuerda que estás en la A que es la 1 más 1 que es la que estás extrayendo entonces sería la B) Yo siendo tu haría lo siguiente Sub Macro1() Worksheets("CARTA PROPUESTA").Activate Activecell.FormulaR1C1 = "=PU's(45)!RC" End Sub ó lo que es lo mismo Sub Macro1() Fila=Application.counta(sheets("PU's(45)).Range("A :A")) Worksheets("Carta Propuesta").Range("A1:A"&Fila).FormulaR1C1= "=PU's(45)!RC" End Sub , Espero sea de tu ayuda |
| La zona horaria es GMT -6. Ahora son las 08:16. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.