Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Visual Basic clásico (http://www.forosdelweb.com/f69/)
-   -   Ayuda con Macro (http://www.forosdelweb.com/f69/ayuda-con-macro-490447/)

Dic 16/05/2007 10:58

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

alexanco 20/05/2007 05:27

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.