Problema en Macros con formulas locales

18/02/2004 - 12:17 por Peponcio | Informe spam
El problema que tengo no se si es por una mala configuración de mi excel
2002, os cuento.
Tengo creadas varias hojas, generadas desde Excel 97 con macros en las
cuales hay muchas lineas de codigo del estilo
...FormulaR1C1Local = "ü(1)", estas hojas se abren desde equipos que
tienen instalado Excel 97, ahora también quería abrirlas desde Excel 2002,
todo va bien hasta que intentas ejecutar las macros, al intentar ejecutar
para 2002, que da un error, el espera una formula local del tipo "=LC(1)",
con lo que da un error como que no le cuadra la formula,
A parte de convertir todas las formulas manualmente al tipo no local
traduciendo todas la formular una a una.
¿Hay otra solución más rápida?.

Un Saludo y gracias por leerme.


.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
19/02/2004 - 09:10 | Informe spam
hola, Peponcio !

... no se si es por una mala configuracion de mi excel 2002
... desde Excel 97 ... macros ... muchas lineas de codigo del estilo .FormulaR1C1Local = "ü(1)"
... desde Excel 2002 ... da un error ... espera una formula local del tipo "=LC(1)" ... no le cuadra la formula
... de convertir todas las formulas manualmente al tipo no local traduciendo ... una a una. ¿Hay otra solucion mas rapida?.



1° [me parece que]... se trata de configuraciones =>regionales<= 'diferentes' [panel de control de windows... NO 'en' excel]
revisa la propiedad 'Application.International(xlUpperCaseRowLetter)'
=> 'devuelve' cual es la letra que 'usa' la aplicacion EN el sistema 'actual' para la notacion R1C1 < [p.e. 'L' -de Linea- ...o 'F' -de Fila- ...o 'R' -de Row-]
=> quizas sea una 'combinacion' de otras propiedades como (xlCountryCode) y/o (xlCountrySetting) <2° [aunque ya 'te diste cuenta']... es 'mejor' NO usar las formulas en su 'modalidad de locales' [bueno... eso digo yo] ;)
la razon... 'implican' que se conocen 'con certeza' las variantes en las configuraciones regionales [donde 'se usaran']
['pasando' por separadores de lista y demas 'costumbres' y/o 'convencionalismos']
3° si las cambias [de 'FC' a 'LC'] con seguridad fallaran [ahora cuando 'regresen'] en las otras pc's [al sistema 'origina']
4° si 'deberan permanecer'... seria 'coveniente' tener 'preparadas' dos [o mas 'alternativas' de] 'mezclas de regiones' :((

en resumen... [me parece y me temo que]... NO hay una solucion 'mas rapida' :(
aunque... puedo estar equivocado [no seria de extrañar] y alguien encuentre una solucion mas 'amigable' :))

saludos,
hector.
Respuesta Responder a este mensaje
#2 Peponcio
20/02/2004 - 09:23 | Informe spam
"Héctor Miguel" dijo
news::

hola, Peponcio !

... no se si es por una mala configuracion de mi excel 2002
... desde Excel 97 ... macros ... muchas lineas de codigo del estilo
.FormulaR1C1Local = "ü(1)" ... desde Excel 2002 ... da un error ...
espera una formula local del tipo "=LC(1)" ... no le cuadra la
formula ... de convertir todas las formulas manualmente al tipo no
local traduciendo ... una a una. ¿Hay otra solucion mas rapida?.



1° [me parece que]... se trata de configuraciones =>regionales<> 'diferentes' [panel de control de windows... NO 'en' excel]
revisa la propiedad
'Application.International(xlUpperCaseRowLetter)' => 'devuelve'
cual es la letra que 'usa' la aplicacion EN el sistema 'actual'
para la notacion R1C1 <= [p.e. 'L' -de Linea- ...o 'F' -de Fila-
...o 'R' -de Row-] => quizas sea una 'combinacion' de otras
propiedades como (xlCountryCode) y/o (xlCountrySetting) <=
2° [aunque ya 'te diste cuenta']... es 'mejor' NO usar las formulas en
su 'modalidad de locales' [bueno... eso digo yo] ;)
la razon... 'implican' que se conocen 'con certeza' las variantes
en las configuraciones regionales [donde 'se usaran'] ['pasando'
por separadores de lista y demas 'costumbres' y/o
'convencionalismos']
3° si las cambias [de 'FC' a 'LC'] con seguridad fallaran [ahora
cuando 'regresen'] en las otras pc's [al sistema 'origina'] 4° si
'deberan permanecer'... seria 'coveniente' tener 'preparadas' dos [o
mas 'alternativas' de] 'mezclas de regiones' :((

en resumen... [me parece y me temo que]... NO hay una solucion 'mas
rapida' :( aunque... puedo estar equivocado [no seria de extrañar] y
alguien encuentre una solucion mas 'amigable' :))

saludos,
hector.






Muchas gracias por tu respuesta, he intentado lo de
'Application.International(xlUpperCaseRowLetter)' y me devuelve la "L" y
mis códigos de pais son 34 y 34 como en el resto de ordenadores, solo
varía en las variables de Application.International la "L" y la "l" para
las minusculas, el resto son todas igual, en el sistema también he
comprobado y me pone Español (España), será cuestión de hacerse la idea y
convertirlas las formulas al Inglés.

El motivo de usar la configuración local es porque la grabadora de macros
me las generó así, ahora, desde el excel 2002 las crea R1C1 y no
R1C1Local.

Saludos.
Respuesta Responder a este mensaje
#3 Héctor Miguel
20/02/2004 - 10:20 | Informe spam
hola, Peponcio !

... he intentado lo de 'Application.International(xlUpperCaseRowLetter)'
... me devuelve la "L" y mis codigos de pais son 34 y 34 [...]
... la configuracion local es porque la grabadora de macros me las genero asi
... ahora, desde el excel 2002 las crea R1C1 y no R1C1Local.



lo que me parece 'curioso' es que [al parecer]...
- en algunas 'acepta' .FormulaR1C1Local = "ü(1)"
- y en otras 'solicita' .FormulaR1C1Local = "=LC(1)" :((

si [todavia] tienes los ordenadores donde SI 'funciona' con 'FC' ...
- ¿que 'te dice' la propiedad 'xlUpperCaseRowLetter' ???
[solo por 'satisfacer' la curiosidad] ;) ...
'prueba' con un msgbox [como el siguiente] =>en donde SI<= y =>en donde NO<_______
Sub Configuracion_FLR()
With Application
MsgBox "Letra para Filas: " & .International(xlUpperCaseRowLetter) & vbCr & _
"Código de País: " & .International(xlCountryCode) & vbCr & _
"Código de Región: " & .International(xlCountrySetting)
End With
End Sub
¨¨¨¨¨¨¨¨¨¨¨¨
¿comentas?
saluds,
hector.
Respuesta Responder a este mensaje
#4 Peponcio
20/02/2004 - 16:42 | Informe spam
"Héctor Miguel" dijo
news::

hola, Peponcio !

... he intentado lo de
'Application.International(xlUpperCaseRowLetter)' ... me devuelve la
"L" y mis codigos de pais son 34 y 34 [...] ... la configuracion
local es porque la grabadora de macros me las genero asi ... ahora,
desde el excel 2002 las crea R1C1 y no R1C1Local.



lo que me parece 'curioso' es que [al parecer]...
- en algunas 'acepta' .FormulaR1C1Local = "ü(1)"
- y en otras 'solicita' .FormulaR1C1Local = "=LC(1)" :((

si [todavia] tienes los ordenadores donde SI 'funciona' con 'FC' ...
- ¿que 'te dice' la propiedad 'xlUpperCaseRowLetter' ???
[solo por 'satisfacer' la curiosidad] ;) ...
'prueba' con un msgbox [como el siguiente] =>en donde SI<= y
=>en donde NO<= _______
Sub Configuracion_FLR()
With Application
MsgBox "Letra para Filas: " &
.International(xlUpperCaseRowLetter) & vbCr & _
"Código de País: " &
.International(xlCountryCode) & vbCr & _
"Código de Región: " &
.International(xlCountrySetting)
End With
End Sub
¨¨¨¨¨¨¨¨¨¨¨¨
¿comentas?
saluds,
hector.






Ya lo hice en ambos ordenadores para los 45 valores xl* de
Application.International y me dio diferente solamente la 6 que es
xlUpperCaseRowLetter "L" para el nuevo y "F" para el viejo, la 8 que es
xlLowerCaseRowLetter con "l" para el nuevo y "f" para el viejo, el resto
todas igual incluida la 1 y la 2 que son las xlCountryCode y
xlCountrySetting que en ambos ordenadores devuelve 34.
Además si voy a Herramientas-opciones-General, en el nuevo en
configuración tengo para marcar "Estilo de referencia L1C1", mientras que
en el viejo esta "Estilo de referencia F1C1".
Me he mirado por encima el registro de windows para ver si había alguna
variable que la recoja en la instalación y este hay, pero o no lo he
visto (bueno tampoco es muy facil de encontrar en el registro algo como
eso).

lo que me parece 'curioso' es que [al parecer]...
- en algunas 'acepta' .FormulaR1C1Local = "ü(1)"
- y en otras 'solicita' .FormulaR1C1Local = "=LC(1)" :((



Creo que necesita el LC(1) cuando la formula es una direccion ( =LC(1) )
y acepta FC(1) cuando esta dentro de una formula ( =INT(FC(1)) ).


Un Saludo.
Respuesta Responder a este mensaje
#5 Héctor Miguel
20/02/2004 - 20:48 | Informe spam
hola, Peponcio !

... lo hice en ambos ordenadores ... dio diferente ... xlUpperCaseRowLetter "L" para el nuevo y "F" para el viejo [...]
... xlCountryCode y xlCountrySetting que en ambos ordenadores devuelve 34.
... Herramientas-opciones-General
... en el nuevo en configuracion tengo para marcar "Estilo de referencia L1C1"
... mientras que en el viejo esta "Estilo de referencia F1C1" [...]



=> seguire buscando una [posible] causa por algunos otros factores, y... te comentare ;)

lo que me parece 'curioso' es que [al parecer]...
- en algunas 'acepta' .FormulaR1C1Local = "ü(1)"
- y en otras 'solicita' .FormulaR1C1Local = "=LC(1)" :((



Creo que necesita el LC(1) cuando la formula es una direccion ( =LC(1) )
y acepta FC(1) cuando esta dentro de una formula ( =INT(FC(1)) ).



=> muy interesante el apunte que haces al respecto... es... para 'tenerse en cuenta' =>gracias por el 'tip'<= ;)

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida