Excel - Función de Excel en VBA

 
Vista:

Función de Excel en VBA

Publicado por Pablo (42 intervenciones) el 04/07/2009 20:17:49
Tengo un pequeño problema para emparejar registros de un índice alfabético.
El problema es que Excel no distingue entre mayusculas y minusculas.
Es decir, me empareja abcDe con ABcde, cuando quisiera que no lo hiciera.
Para ello he concatenado una fórmula que me va separando cada uno de los dígitos y los convierte en su código. Lo multiplico por las diferentes potencias de 256 y obtengo un número único.
Pero me sale una fórmula de tres renglones.
He intentado hacerlo en VBA, pero no encuentro correspondencia entre la función CODIGO y otra en VBA.
En la ayuda de Visual Basic para Aplicaciones viene un listado de funciones soportadas por Application.WorksheetFunction pero esta no viene.
¿Alguien sabría decirme como obtener el código ANSI de un string en VBA?.
Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Función de Excel en VBA

Publicado por frany (58 intervenciones) el 04/07/2009 21:32:37
Esto lo he sacado de la ayuda de VBA de excel, espero te sirva.

Asc (Función)


Devuelve un tipo Integer que representa el código de carácter correspondiente a la primera letra de una cadena.

Sintaxis

Asc(cadena)

El argumento obligatorio cadena es una expresión de cadena válida. Si cadena no contiene caracteres, se produce un error en tiempo de ejecución.

Comentarios

El intervalo del valor de retorno es entre 0 y 255 en sistemas que no sean DBCS, y entre –32768 y 32767 en sistemas DBCS.

Nota La función AscB se utiliza con bytes de datos contenidos en una cadena. En lugar de devolver el código de carácter para el primer carácter, AscB devuelve el primer byte. La función AscW siempre devuelve el código de carácter Unicode en plataformas donde no se admite Unicode, en cuyo caso, el comportamiento es idéntico al de la función Asc.

Nota Visual Basic para Macintosh no es compatible con cadenas Unicode. Por tanto, AscW(n) no puede devolver todos los caracteres Unicode para n valores en el intervalo de 128 – 65,535, que sí puede en el entorno Windows. En cambio, AscW(n) intenta la mejor solución para valores Unicode n mayores de 127. Por tanto, no debería utilizar AscW en el entorno Macintosh.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Función de Excel en VBA

Publicado por Pablo (42 intervenciones) el 04/07/2009 23:28:39
Muchas gracias por tu respuesta.
Acabo de probarlo y funciona, aunque el número que me sale es diferente.
Seguiré investigando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Función de Excel en VBA

Publicado por frany (62 intervenciones) el 05/07/2009 11:44:48
yo he hecho la prueba con excel 2003 y el numero es el mismo, no se si sea debido a las indicaciones que pone excel en la ayuda o bien que tu version de excel sea diferente, no lo se.
Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

FUNCIONA!!

Publicado por Pablo (42 intervenciones) el 05/07/2009 20:16:01
Gracias de nuevo Frani.
SI FUNCIONA.
Lo que ocurría era que estaba realizando la función al revés.
Necesito el código de cinco dígitos, que obtengo uno a uno. Cada código lo multiplico por las diferentes potencias de 256, pero claro, si lo hago en orden inverso, me sale otra cosa, buena también, pero diferente.

Armando, no puedo usar EXACTO, porque en realidad lo que quiero es usar el número resultante como índice para una función BUSCARV.

gracias a ambos por vuestros comentarios.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Función de Excel en VBA

Publicado por armando (1 intervención) el 05/07/2009 03:50:16
Considera la funcion IGUAL (EXACT), aqui hay una explicacion valida para 2007 y 2003
http://office.microsoft.com/es-es/excel/HP100625643082.aspx
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar