Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Función Right en VBA

| 18 comentarios

La función Rigth en VBA  sirve para obtener los últimos dígitos de una palabra o un código.  Puede usarse tanto en VBA como en la misma hoja de cálculos de Excel.

Se hace uso de esta función escribiendo Rigth (nombre, dígitos), en donde nombre es la palabra o código que se quiere acortar y tomar solo algunos dígitos o letras, contando desde la derecha; y dígitos es el número de letras o ,como su nombre lo indica, dígitos que se quieren tomar de la palabra.

Esta función puede ser usada para establecer nuevos códigos, o para acortarlos y deshacerse de la parte que es innecesaria.

Como ejemplo tomamos el código de alumnos de la Pontificia Universidad Católica del Perú, en donde los primeros 4 dígitos solo representan el año de ingreso a la universidad, y los otros 4 números restantes son los el código en sí. Si se quisiera crear unos nuevos códigos, solo se tendrían que tomar las últimas 4 cifras para obtener uno.

Para realizar esta acción, creamos un macros llamada FuctionRigth. Para usarla, se debe seleccionar el botón que se encuentra en Excel llamado Obtener Nuevo Código. Al presionarlo, inmediatamente aparecerá una pantalla en la cual se pide colocar el número de alumnos a los que se desea cambiar el código. El número que se coloque debe encontrarse entre en el rango de números de un objeto byte, ya que fue declarado al inicio de la macro como tal.

tarea 3.1

Luego se pide ingresar el código del alumno, el nombre del alumno y finalmente, estos datos aparecerán en la pantalla, incluyendo el nuevo código a usar.

tarea 3.2

tarea 3.3

(Para mayor visualización de la imagen, hacer click en la misma)

Descargar ejemplo de Función Right en VBA

18 comentarios

  1. Buen dia, unos códigos sencillos de esta función seria este:

    Sub Frigth ()
    Dim nombre, digitos
    nombre= Range("A2")
    digitos= Range("B2")
    Range("C2") = Right(nombre, digitos)
    End Sub

  2. En la programación de la macro, no se indica en ningun momento en que consiste la funcion right; es decir, como sabe el excel que right va obtener los 4 ultimos dígitoS del codigo, ya que solo se coloca
    d = Right(c, 4).

  3. Un comando muy útil sin duda; sin embargo, en ocasiones lo que se desea es obtener los primeros dígitos de un número, con ese fin probé con cambiar al código "d = Left(c, 4)" en vez de "d = Right(c, 4)" y funcionó, ya que ahora me devuelve los 4 primeros dígitos correspondiente al año.

  4. Intituivamente uno sabe o sospecha lo que hace esta función, pero creo que la explicación que aparece no es muy clara.
    Mas simple sería poner que Right(C,N) toma los N primeros caracteres, comenzando por la derecha, de la cadena C.

    • Así es como funciona esta función en el Excel, me imagino que se debe hacer dicha operación y grabarla como macro.

  5. La función explicada muestra lo que es capturar los dígitos, pero como relacionaríamos con el trabajo en el excel.

  6. He usado esta funcíon en Excel para la obtención de códigos, tal como en el ejemplo. Efectivamente, es muy útil.
    Como dijeron en un comentario anterior se usa la función left para extraer los primeros caracteres a partir de la izquierda. Además, se puede usar la funcion Mid para extraer caracteres internos como por ejemplo:

    Mid("ejemplo de vba", 9, 2) nos devolveria "de", es decir el caracter 9 "d" y el caracter 10 "e".

    PD. Quisiera saber como puedo hacer el cuadro de inicio de la macro en mención (el que dice: Obtener nuevo código).

    • Para complementar:

      El uso de la función MID es bueno cuando vas a obtener un conjunto de caracteres contando a partir de la primera cifra. sin embargo si no se conoce el numero de caracteres y quieres, por ejemplo, la penúltima cifra. Una de las soluciones a eso podría ser obtener el número de caracteres usando la función LEN* ( que devuelve el número de caracteres de una celda) y utilizarlo para obtener la cifra. Sin embargo una opción mas sencilla sería anidar un RIGHT y un LEFT como en el siguiente ejemplo:

      se desea obtener el dígito de las decenas de un numero cualquiera:

      numero = Range("A1")
      digdecena = Left(Right(numero,2),1)

      • De repente en ese caso se debe usar "Datos", "Texto en columnas" y marcar "delimitados", luego grabarlo como macro.

  7. Al igual que esta función. También existe la Funcion =ZQUIERDA(Celda, numero de caracteres)... para extraer una cantidad de dígitos comenzando del inicio del texto seleccionado

  8. Una manera mas adecuada para extraer caracteres de un texto sin que se requiera unicamente los digitos de la derecha. Puede darse con la función EXTRAE o MED.

    Por ejemplo: =Extrae(Texto, posición inicial, numero de caracteres)

  9. Funcion muy util, para obtener codigos, fechas, horas operativas de equipos, codigos de equipos o maquinarias, ademas muy util para concatenar codigos de varias columnas, como ejemplo tengo un codigo de equipo perteneciente a una instalacion concentradora y necesitamos saber cuantos tipos de ordenes de trabajo de mantenimiento tiene:
    CON200PU005, PM1. Aplicando: CONCATENATE(RIGHT(Celda de Columna1,8),Celda de Columna2): 200PU005PM1.Con esto se que la bomba 5 tiene una orden PM1 que es preventiva. La desventaje es que se requiere llenar uno a uno los datos, cuando en la misma hoja excel se puede aplicar la funcion RIGHT. Se puede mejorar la automatizacion.

  10. Función de gran ayuda La función Right que nos permite extraer caracteres a la derecha de una cadena de texto...muy interesante también para poder unir conjuntamente con LEFT cadenas de texto.

  11. Funcion util para acotar un numero como el codigo universitario o DNI de una lista y generando un nuevo codigo, permitiendo desarrollar una nueva lista de datos.

  12. Esta funcion es muy util, permite acotar un codigo y generar uno nuevo, se puede aplicar para cambiar el codigo de un producto en una lista de invertario y generar una nueva lista de productos con nuevos codigos, tambien es aplicable en la generacion de nueva BD

  13. Bastante clara la explicación. Puede ser utilizado para extraer los últimos números de cuenta de miles de personas que estén afiliadas a un mismo banco. En general, es muy útil para llevar un adecuado control de una BD

  14. Con esta función podemos extraer de una cadena de caracteres los dígitos que nos serían útiles para generar un nuevos códigos en un almacén de inventarios y así disminuir el riesgo de la información

  15. Hay que tener cuidado, en el caso que el cuarto dígito comenzado desde la derecha sea 0. Por ejemplo el código 20090499. La función debe capturar "0499", sin embargo al ser un número solo captura el 499.

    Habría que implementar una verificación, si se da el caso y trabajarlo como cadena de caracteres.

Deja una respuesta

Los campos requeridos estan marcados con *.