rango (??)

19/01/2004 - 15:16 por dorian+ | Informe spam
hola a todos !

desde mi aplicación en acces tengo que ingresar una fórmula en una celda que me sume el siguiente rango:

la primerr celda del rango esta dada por (3,xlcolumna) y la última por (fila,xlcolumna)

lo hice de la siguiente forma:

Set rangeSuma = appExcel.sheets(1).Range(appExcel.sheets(1).cells(3, xlColumna), appExcel.sheets(1).cells(fila, xlColumna))
appExcel.sheets(1).cells(fila + 2, xlColumna).Formula = "=Sum(" & rangeSuma & ")"


pero conseguí mas una ensalada que lo que estaba buscando\ y por supuesto no logro que funcione\ alguien me puede dar una mano?\ muchas gracias\ dorian+
 

Leer las respuestas

#1 Héctor Miguel
20/01/2004 - 04:56 | Informe spam
hola, dorian !

desde ... acces ... ingresar una formula en una celda que me sume el siguiente rango:
la primerr celda del rango esta dada por (3,xlcolumna) y la última por (fila,xlcolumna)
Set rangeSuma = appExcel.sheets(1).Range(appExcel.sheets(1).cells(3, xlColumna), appExcel.sheets(1).cells(fila, xlColumna))
appExcel.sheets(1).cells(fila + 2, xlColumna).Formula = "=Sum(" & rangeSuma & ")"
... consegui mas una ensalada que lo que estaba buscando y ... no logro que funcione [...]



probablemente estas 'obteniendo' un error 13 en tiempo de ejecucion: 'el tipo no coincide' :((

1.- al usar la expresion =>ObjetoRango.Formula = "=Sum(" & rangeSuma & ")"< se 'entiende' que la variable =>rangeSuma<= ES de tipo texto [o 'posible de interpretar' como texto]

2.- al usar la instruccion =>Set rangeSuma = appExcel.sheets(1)[...]< la aplicacion [excel] 'espera' que la referencia que se establece 'corresponda' a un objeto [en este caso de tipo 'range']

3.- 'obviamente' la referencia establecida =>Set rangeSuma<= es de un 'tipo' [Range] que ...
NO 'coincide' con el tipo de variable 'esperado' [String] por la expresion =>.Formula = "=Sum(" & rangeSuma & ")"< => una variable de tipo texto que 'indique' la direccion del rango que sera el argumento de la funcion suma < ['convendria' declarar la variable 'rangeSuma' como 'String']
[dicho sea 'de paso'... NO es 'necesaria' una instruccion 'Set' para 'llenar' variables que NO sean de algun 'tipo' de objeto]

=> modifica el 'llenado' de la variable [rangeSuma] a:
With appExcel.Sheets(1).
rangeSuma = Range(.Cells(3, xlColumna), .Cells(fila, xlColumna)).Address
End With

lo que 'dejaria' una referencia al rango de tipo 'absoluta' [p.e. $A$3:$C$45]
si necesitas referencias 'relativas', agrega a la propiedad 'Address' =>False<= [o CERO] para los argumentos 'fila/columna_absoluta'
[p.e.] rangeSuma = Range(.Cells(3, xlColumna), .Cells(fila, xlColumna)).Address(False, False) 'dejaria' A3:C45

saludos,
hector.

Preguntas similares