Retroceder   Foros del Web > Temas generales de computación > Programación > Visual Basic

Respuesta
 
Herramientas Desplegado
Antiguo 16-may-2007, 10:58   #1 (permalink)
Dic
Dic ha deshabilitado el karma
 
Fecha de Ingreso: mayo-2007
Mensajes: 3
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
Dic está desconectado   Responder Citando
Antiguo 20-may-2007, 05:27   #2 (permalink)
alexanco ha deshabilitado el karma
 
Fecha de Ingreso: mayo-2007
Mensajes: 7
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
alexanco está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 05:03.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93