Problema con macro

04/01/2005 - 20:11 por Ivan | Informe spam
Hola a todos y feliz 2005, tengo un prob en una serie de celdas quiero colocar
la siguiente formula ( por ejemplo en M10 seria ):

=SI(C10<>"",SI(G10<>"",SI(I10<>"",G10-I10,SI(H10<>"",SI(H10<$P$1,G10-I10,""),G10)),SI(H10<>"",SI(H10<$P$1,$D$7-I10,SI(I10<>"",-I10,"")),SI(I10<>"",-I10,""))),"")
He realizado la rutina para realizarlo y me trabaja, solo que al momento de
colocar el valor en la celda me marca un error, no si en que pueda estar mal,
lo intento hacer de la sig manera:
sa = "<>" & """" & """" para generar <>""
sb = """" & """" para generar ""
SAL = "=SI(C" & k & sa etc,
Worksheets("EDO_CTA").Cells(k, 16).Value = SAL aqui es donde me marca
el error

agradesco de antemano cualquier comentaerio o sugerencia

Preguntas similare

Leer las respuestas

#6 KL
04/01/2005 - 21:23 | Informe spam
Heich,

"Heich" wrote in message...
no recordaba que en VBA algunas (o todas) funciones tienen que ser en
Ingles
(como deberia, un solo idioma para programar, imaginemonos que pasa si en
lugar de español, programamos en Vba la funcion IF en aleman:

wenn a=1 damals
nachrichschatel "eins" 'Yuxtaposicion de Message y Box
sonst
nachrichschatel "nein eins"
finale wenn

If a=1 then
msgbox "Uno"
Else
Msgbox "no uno"
end if



aqui estoy de acuerdo

Entonces la cadena debera de ser
="If... ... ...



lo que ocurre en este caso (aunque no lo puedo demostrar por no tener Excel
en castellano) es q no pedimos a VBA q interprete IF como funcion sino la
pasamos directamente a la celda como cadena de texto. Creo q en este caso es
la hoja de calculo la q se hace cargo de interpretar la funcion, por lo cual
deberia exigir SI y no IF si la version es espanola.

Saludos,
KL
Respuesta Responder a este mensaje
#7 KL
04/01/2005 - 21:26 | Informe spam
Ivan,

No es por poner el MsgBox SAL, sino por poder comprobar q la formula
resultante no tenga errores, como por ejemplo: separadores incorrectos,
numero de argumentos incorrectos, parentesis q faltan, nombres de funciones
incorrectos, etc, etc.

Como te he dicho la funcion q he construido a base de tu codigo me funciona.

Saludos,
KL


"Ivan" wrote in message
news:
gracias a todos, ya puse el msgbox para SAL
y si me muestra la formula, el problema es cuando quiero copuiar esta
formula
en la celda

Ivan
Respuesta Responder a este mensaje
#8 Heich
05/01/2005 - 00:25 | Informe spam
Hola KL

In news:,
KL typed

...
: lo que ocurre en este caso (aunque no lo puedo demostrar por no tener
: Excel en castellano) es q no pedimos a VBA q interprete IF como
: funcion sino la pasamos directamente a la celda como cadena de texto.
: Creo q en este caso es la hoja de calculo la q se hace cargo de
: interpretar la funcion, por lo cual deberia exigir SI y no IF si la
: version es espanola.
:
: Saludos,
: KL



Fijate que siempre me habia hecho la misma suposicion que tu en este
momento, pensaba que, si para Excel Español era SI, o para excel en aleman
seria WENN(por ejemplo), entonces desde vba tendria que escribir dicha
funcion justo en el idioma que correspondiera.

Hace rato no probe el codigo, tenia una lombriz hambrienta en el estomago.
Pero ahora, regresando de comer, puse tu codigo en el editor vba de excel,
y, tal cual con "IF" funciona de perlas, pero si cambio a "SI" hay error en
la celda. Hmmm probe con Value, Formula y FormulaR1C1 y la cadena en "SI" y
continuo el error.

Entonces, queda confirmado, mientras se trate de VBA, siempre es necesario
expresar la funcion en ingles, Excel se encargara de hacer la "traduccion "
en la hoja al idioma en que este se encuentre.


Saludos

Heich
-
cadena= _
"" : _
for a=0 to 9: cadena=replace(cadena,a,""): _
next a: ?cadena
-
Daria todo lo que se por saber la mitad de lo que ignoro.
-
NOTA: este mensaje se proporciona TAL CUAL.Sin ningun derecho o garantia
Guia de Netiquette:
http://www.geocities.com/heich_prog...uette.html

Siempre que tengo una duda, le pregunto primero a San Google
http://groups.google.com/groups?hl=...blic.es.vb
-
Respuesta Responder a este mensaje
#9 KL
05/01/2005 - 00:35 | Informe spam
Heich,

Creo q tienes razon. Como ultimo rcurso - ?has probado .FormulaLocal?

Saludos,
KL


"Heich" <heichitoarrobahotmailpuntocom> wrote in message
news:
Hola KL

In news:,
KL typed

...
: lo que ocurre en este caso (aunque no lo puedo demostrar por no tener
: Excel en castellano) es q no pedimos a VBA q interprete IF como
: funcion sino la pasamos directamente a la celda como cadena de texto.
: Creo q en este caso es la hoja de calculo la q se hace cargo de
: interpretar la funcion, por lo cual deberia exigir SI y no IF si la
: version es espanola.
:
: Saludos,
: KL



Fijate que siempre me habia hecho la misma suposicion que tu en este
momento, pensaba que, si para Excel Español era SI, o para excel en
aleman
seria WENN(por ejemplo), entonces desde vba tendria que escribir dicha
funcion justo en el idioma que correspondiera.

Hace rato no probe el codigo, tenia una lombriz hambrienta en el estomago.
Pero ahora, regresando de comer, puse tu codigo en el editor vba de excel,
y, tal cual con "IF" funciona de perlas, pero si cambio a "SI" hay error
en
la celda. Hmmm probe con Value, Formula y FormulaR1C1 y la cadena en "SI"
y
continuo el error.

Entonces, queda confirmado, mientras se trate de VBA, siempre es necesario
expresar la funcion en ingles, Excel se encargara de hacer la "traduccion
"
en la hoja al idioma en que este se encuentre.


Saludos

Heich
-
cadena= _
"" : _
for a=0 to 9: cadena=replace(cadena,a,""): _
next a: ?cadena
-
Daria todo lo que se por saber la mitad de lo que ignoro.
-
NOTA: este mensaje se proporciona TAL CUAL.Sin ningun derecho o garantia
Guia de Netiquette:
http://www.geocities.com/heich_prog...uette.html

Siempre que tengo una duda, le pregunto primero a San Google
http://groups.google.com/groups?hl=...blic.es.vb
-



Respuesta Responder a este mensaje
#10 Heich
05/01/2005 - 02:18 | Informe spam
In news:,
KL typed:
: Heich,
:
: Creo q tienes razon. Como ultimo rcurso - ?has probado .FormulaLocal?
:
: Saludos,
: KL


A ver...
(abriendo excel, alt+f11, copio y pego, cambio If por SI, alt+f4, alt+f8,
enter)

!!!! Funciona!!!!
Algo nuevo se ha aprendido!!

Y como no sabia de la existencia de la propiedad formulalocal consultemos la
ayuda...
para quien este interesado
<Pego>
...Devuelve o establece la fórmula del objeto, usando referencias de estilo
A1 en lenguaje del usuario. Variant de Lectura/Escritura para objetos Range,
String de Lectura/Escritura para objetos Series.
...
</Pego>

Saludos



Heich
-
cadena= _
"" : _
for a=0 to 9: cadena=replace(cadena,a,""): _
next a: ?cadena
-
Daria todo lo que se por saber la mitad de lo que ignoro.
-
NOTA: este mensaje se proporciona TAL CUAL.Sin ningun derecho o garantia
Guia de Netiquette:
http://www.geocities.com/heich_prog...uette.html

Siempre que tengo una duda, le pregunto primero a San Google
http://groups.google.com/groups?hl=...blic.es.vb
-
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida