Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ayuda con Macro

Estas en el tema de Ayuda con Macro en el foro de Visual Basic clásico en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 16/05/2007, 10:58
Dic
 
Fecha de Ingreso: mayo-2007
Mensajes: 3
Antigüedad: 17 años
Puntos: 0
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
  #2 (permalink)  
Antiguo 20/05/2007, 05:27
 
Fecha de Ingreso: mayo-2007
Mensajes: 7
Antigüedad: 17 años
Puntos: 0
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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:01.