Excel VBA and Macros - Chapter 36 - Function for convert numbers to text @EXCELeINFO

Поделиться
HTML-код
  • Опубликовано: 23 янв 2025

Комментарии • 49

  • @excelymasoficial
    @excelymasoficial 5 лет назад +25

    EXCELente presentación Sergio, hiciste una modificación muy muy profesional. Esto ayudará a aquellos que como a nosotros, nos apasiona la programación, especialmente nuestro entorno favorito VBA :) Pulgar Arriba!!!

  • @alejandromiguelromerojimen7215
    @alejandromiguelromerojimen7215 5 лет назад +1

    Este tipo de colaboraciones y aportes extra de otros autores son lo que hace grande estos cursos. Excelente trabajo y mejor explicado el tema de UDF .

  • @luperobles4474
    @luperobles4474 4 года назад +3

    Grande OTTO, eres el mejor. No hay Otro como Otto, Gracias eres un MAESTRO!!!

  • @CarlosHernandez-kr9rd
    @CarlosHernandez-kr9rd Год назад +1

    MUchas gracias mi hno. No sabes como me haz ayudado, Que Dios te bendiga

  • @jesusmariafuentes3629
    @jesusmariafuentes3629 4 года назад

    Muchas gracias a ambos. He visto vídeos de Otto y de otros colegas vuestros y es un lujo poder contar con vosotros. Esta es la primera vez que sigo un curso desde el principio y me ayuda a entender mejor los conceptos. Lo dicho, MUCHAS GRACIAS

  • @joaquinverdugo6096
    @joaquinverdugo6096 5 лет назад +1

    Magnífico trabajo con una utilidad práctica inmediata Sergio, así como magnífico tu reconocimiento al trabajo de Otto González quien dicho sea de paso también es un excelente maestro en estos menesteres. Gracias a ambos

  • @eduardocastillo1982
    @eduardocastillo1982 2 года назад

    Muy buena presentación Sergio, excelente como siempre, gracias

  • @joseluislecumberril.5607
    @joseluislecumberril.5607 5 лет назад +1

    La verdad hay varias funciones para hacer esto posible y esta es la mas completa que he visto, recomiendo corregir cuando se utilizan los centavos como un porcentaje y se tienen "0" centavos, no se ve 0/100, por otro lado recomiendo cambiar las denominaciones de las variables ya que al abrir los argumentos de función, no nos dice mucho el nombre TipoCambio1 y TipoCambio2, propongo cambiarlos por Nombre_Moneda_Singular y Nombre_Moneda_Plural, en cuanto a la variable Centavos, nunca se sabe que solo admite 0 ó 1. Creo que esto podría mejorar un gran trabajo Gracias

  • @oscarsantos9251
    @oscarsantos9251 5 лет назад

    lo mejor maestro Sergio gracias por la entrega sal2 y pulgar arriba..

  • @joseagundis1
    @joseagundis1 5 лет назад

    Gracias a ambos por su enorme aportación y sobre todo la humildad para entregarnos una joya de programación.

  • @rafaelvelasco2734
    @rafaelvelasco2734 5 лет назад +3

    Excelente Sergio, muy complicado pero se entiende. Ahora la parte de los centavos, si nDecimal no es cero es porque es de 1 a 99 sería suficiente Texto = Texto & nDecimal & "/100" y no hacer otro If, es lo que yo veo, se está redundando solo que en el 2do if le agregas la cadena "centavos"
    saludos

  • @juancarlosrivera1213
    @juancarlosrivera1213 4 года назад

    Muy buena Función Sergio !!!
    Me agrado mucho la mejora que le realizaste porque la hace versátil para ser usada con cualquier moneda mundial, y lógicamente se le puede hace alguna mejora.
    En particular a mí me gustaría que tenga una descripción que explique que valor hay que poner en cada argumento y que hace, como ayuda al momento que otro persona la vaya a usar como cualquier función de Excel. Por lo cual ya te pido que lo tengas en cuenta Sergio para la próxima. Un abrazo !!!!

  • @kekinkyofong
    @kekinkyofong 5 лет назад

    Muchas gracias por compartir tus conocimientos con la comunidad, saludos Sergio

  • @joaquinsalazar6360
    @joaquinsalazar6360 4 года назад

    Excelente el curso!, esta función es muy útil gracias por el aporte

  • @Antonio8688
    @Antonio8688 5 лет назад

    Excelente, Sergio. Gracias.

  • @johannsanchez5369
    @johannsanchez5369 5 лет назад

    Excelentes vídeos, bien llevados en el desarrollo y sobre todo muy didácticos, ¿Puede dedicar un vídeo a explicar como generar gráficos (barras, línea) usando macros?

  • @gerardosaavedrasanetti5341
    @gerardosaavedrasanetti5341 4 года назад +2

    Hola Sergio:
    Para comentar que cuando la cantidad el cero que s muy común en documentos financieros o contables, la macro da "CERO DE DOLARES", para superar esto, la linea
    Texto = Texto + " De", debe reemplazarse por If nEntero > 0 Then Texto = Texto + " De". Bueno hay varios ajustes que hacer, que espero tener tiempo para sugerirlos
    saludos.

  • @MedinaZyzz
    @MedinaZyzz 4 года назад +1

    Bastante más complicado este vídeo con respecto a los anteriores. Me pasa que entiendo hasta cierto punto la lógica pero pensar en que algún día voy a llegar a que se me ocurra esto me parece aún muy lejano. A pesar de todo, no me desanimo y confío en que con mucha práctica podré razonar de esta manera. Un saludo Sergio y como siempre, excelente vídeo.

  • @leonardocontento4208
    @leonardocontento4208 5 лет назад

    Maestro esperando mil gracias por compartir sus conocimientos

  • @gerardosaavedrasanetti5341
    @gerardosaavedrasanetti5341 4 года назад

    Hola sergio:
    Agradezco y te felicito por no solo por en este vídeo sino en todos los vídeos que tu emites, y mes has hecho recordar cuando lo programe hace decenas de años en fortran o basic. Sin embargo, quiro llamar la atención que cuando los centavos es o son menores de 10, sale 1/100, 2/100, 3/100, etc, debiendo salir 01/100, 02/100 ect.. Por lo que debería agregarse lo siguiente: declarar la variable cero, asignarle cero="", luego con una condicional de if nDecimla

    • @CarlosOrtiz-vp3fg
      @CarlosOrtiz-vp3fg 4 года назад +1

      No es mala idea, sin embargo veo mas fácil agregar el cero si "nDecimal" es menor o igual a 9 cambiando la Linea "If nDecimal = 1 Then" por lo siguiente :
      If nDecimal

    • @bpccentrodeformacionprofes7010
      @bpccentrodeformacionprofes7010 4 года назад

      @@CarlosOrtiz-vp3fg De acuerdo con tu comentario. Yo agregaría un espacio antes del "0" para que no quede junto al texto:
      If nDecimal

  • @gerardosaavedrasanetti5341
    @gerardosaavedrasanetti5341 4 года назад

    Hola Sergio:
    complementando mi comentrio anterior, considero que e tipo de moneda tambien debe considerarse como opcional, porque esos parámetro se pueden ingresarse como datos en el programa o macro que pudieras estar haciendo.
    Saludos

  • @arturocastillochavez9977
    @arturocastillochavez9977 5 лет назад

    Alejandro buenas noches, veo todos tus vídeo y aprendo bien primero agradecerte y segundo en todo lo que haz subido, alguno donde si tienes un formulario con 16 textbos y en en tres de ellos quiero escribir el No de proveedor y que en el siguiente aparezca su razón social y en el siguinte su RFC con tan solo dar tab ya vi dos uno donde escribes la letras y te desplaza todos con con las letras iniciales, en medio pero no sé tendrás alguno de tus vídeos que me recomiendes?
    De nuevo gracias por compartir tus conocimientos

  • @diegolozano2397
    @diegolozano2397 5 лет назад

    Genial el video

  • @leonardocontento4208
    @leonardocontento4208 5 лет назад

    Excelente maestro es posible que se pueda poner una ayuda en la funcion mil gracias por compartir tus conocimientos pugar arriba

  • @francolopez5484
    @francolopez5484 Год назад

    pregunta, en que version de exel funciona la formula ?

  • @Dannaventura-uw7zy
    @Dannaventura-uw7zy 4 месяца назад +1

    hola,like

  • @kekinkyofong
    @kekinkyofong 5 лет назад

    Hola Sergio, me gustaria saber que libros me recomiendas para complementar lo aprendido en tú curso de VBA y macros, espero me respondas, saludos

  • @harlesepc5906
    @harlesepc5906 2 года назад

    Alcance a ver una función round en el código,me supongo que tiene que ver con redondeos. Pero no sé exactamente de qué forma hace el redondeo en ese caso espefico.

  • @eduardomuslimovich9946
    @eduardomuslimovich9946 3 года назад +1

    Hola Sergio, tengo esa funcion es un libro nuevo que estoy trabajando. El problema que tengo es que este libro nuevo tiene una macro que lo que haces es abrir unos archivos y luego de abrirlo copia unos datos y los pega en unas hojas donde mediante una serie de formulas obtengo los datos que necesito. Ahora el problema esta en que cuando abro esos archivos, la "funcion" se ejecuta sobre los nuevos archivos y aveces el excel se cuelga. He leido por ahi que esto se debe a que "Function", siempre es publico cuando se ejecuta desde un MODULO, y hay que explicitarle que sea PRIVATE, pero aun asi se sigue ejecutando al abrir los libros. Por lo tanto copie esa Funcion y la inserte dentro del modudo de la hoja donde necesito que se ejecute, pero no funciona. Como puedo arregler el inconveneinte?

  • @arturocastillochavez9977
    @arturocastillochavez9977 5 лет назад

    sin boton de busqueda porque el botón que hize es para guardarlos en la hoja de facturas diarias
    saludos nuevamente

  • @gersaavedra6168
    @gersaavedra6168 4 года назад +1

    hola Estimados:
    Partiendo de la idea que siempre hay que ingresar la menor cantidad de datos o parámetros, les alcanzo unas línea iniciales para que la macro solo se ingrese en nombre en plural de la moneda, generando el singular, y otros aspectos:
    'Autor: GSS
    Function nLetra(num As Double, Optional pMoneda As String, Optional Centavos As Byte, Optional MN As String) As String
    Dim nEntero, lrg, u As Long
    Dim nDecimal As Double
    Dim Texto, cero, sMoneda, sM1, sM2, pM1, pM2 As String
    '
    If pMoneda "" Then
    u = InStr(pMoneda, " ") 'El plural de la moneda no es compuesta o de dos palabras
    If u = 0 Then
    sM2 = "": sM1 = Replace(pMoneda, "S", "")
    If UCase(Right(pMoneda, 2)) = "ES" Then sM1 = Replace(pMoneda, "ES", "")
    Else
    pM1 = Mid(pMoneda, 1, u - 1)
    pM2 = Mid(pMoneda, u + 1, Len(pMoneda) - u)
    lrg = Len(pM1)
    sM1 = Mid(pM1, 1, lrg - 1) & " "
    If UCase(Right(pM1, 2)) = "ES" Then sM1 = Mid(pM1, 1, lrg - 2) & " "
    'If UCase(Right(pM1, 4)) = "NSES" Then sM1 = Mid(pM1, 1, lrg - 1) & " " quizas no sea necesario
    '
    lrg = Len(pM2)
    sM2 = Mid(pM2, 1, lrg - 1)
    If UCase(Right(pM2, 2)) = "ES" Then sM2 = Mid(pM2, 1, lrg - 2)
    If UCase(Right(pM2, 4)) = "NSES" Then sM2 = Mid(pM2, 1, lrg - 1)
    End If
    End If
    sMoneda = sM1 & sM2 ' se aumenta 0.001 porque excel redondea al superior desde 0.005, la funcion round vba redondea al superior desde 0.006
    nEntero = Int(num): nDecimal = Int(Round((num + 0.001 - nEntero) * 100)) 'Corrección de últimoo momento
    If nDecimal = 100 Then ' adicionado por GSS
    nDecimal = 0: nEntero = nEntero + 1 ' adicionado por GSS
    End If ' adicionado por GSS
    If nEntero + nDecimal / 100 >= 1000000000 Then ' adicionado por GSS
    nLetra = "Sorry!, Sólo cantidades menores de 999'999,999.995" ' adicionado por GSS
    Exit Function ' adicionado por GSS
    End If
    Espero le sea útil
    Saluods

  • @juanjoseospinagonzalez3886
    @juanjoseospinagonzalez3886 9 месяцев назад

    Hola, tengo un incoveniente y es que cuando voy a meter un valor en miles de millones o cientos de miles de milllones, el codigo no funciona, que debo hacer?

  • @jemyllanos6983
    @jemyllanos6983 Год назад

    Y si necesito poner todo entre paréntesis, como se puede hacer?

  • @harlesepc5906
    @harlesepc5906 2 года назад +1

    Quien podra sacarme de una duda para este video.

  • @juanmartinmartinezguerrero5938
    @juanmartinmartinezguerrero5938 2 года назад

    Tu presentación es tan buena, pero francamente yo sólo buscaba el código para copiar y pegar, se agradece...

  • @jeanvaljean6468
    @jeanvaljean6468 2 года назад +1

    👍👍🦾🦾👌👌✔✔🤗🤗😎😎👀👀🍺🍺🍺🍺🍺🍺

  • @BlackSharkMX
    @BlackSharkMX 2 года назад

    alguien la ha usado en un formulario vba

  • @oscarhernandomachadovasque9276
    @oscarhernandomachadovasque9276 2 года назад +2

    Muy complicado. no sirve asi

  • @luperobles4474
    @luperobles4474 4 года назад +1

    No puedes decir mejorada, deberías decir ampliada o agregada, SI OTTO CONCIENTE ESO,,AYA EL, YO TE DEMANDARIA

    • @SergioAlejandroCampos
      @SergioAlejandroCampos  4 года назад

      Qué bueno que no eres mi enemiga, y qué bueno que Otto sea mi amigo.

    • @luperobles4474
      @luperobles4474 4 года назад

      @@SergioAlejandroCampos te falta muxo para igualarlo, tu eres un aficionado , el es un MAESTRO

    • @SergioAlejandroCampos
      @SergioAlejandroCampos  4 года назад

      En eso tienes razón, pero aún así es mi amigo y me siento orgulloso de serlo.

    • @luperobles4474
      @luperobles4474 4 года назад +1

      @@SergioAlejandroCampos Como sabes si lo de abajo no es mejor que lo de arriba. Sabes una cosa, TE GUsTA EL SHOW, ahi se te fue......esta dmas que muestres tu cara en tus videos, basta con que explicas divino. Tomalo por el lado amable. bye me dio sueño. y gracias por responderme como eliminar esa maldita macro ue sugeristes para encontrar los faceid, por fin ya lo hize.

    • @SergioAlejandroCampos
      @SergioAlejandroCampos  4 года назад +1

      Buenas noches.