1. en la sección Módulos hacer clic en Nuevo 2. Copiar y pegar el código 3. En la ventana de Propiedades, editar el campo Name (que por defecto es Módulo1), y escribir cifrasAletras 4. Cerrar el editor de código y en la sección Formularios abrir el formulario en vista diseño donde se quiera realizar la conversión 5. En ese form crear un cuadro de texto, hacer doble clic en independiente 6. En la solapa Datos editar el Origen de Control y agregar una sintaxis como la siguiente: =convertir([CampoCifra]," ",ValorMayusc) ‘utilizar como separadores los que acepte la versión. donde *[CampoCifra] es el nombre del campo donde se almacena el valor numérico a ser convertido por la función convertir, * " " queda así, si no se desea la palabra pesos o dólares o la moneda que fuere * ValorMayusc (0: todas minúsculas, 1: Primeras Mayúsculas, 2: TODAS MAYUSCULAS) EJEMPLO: sea Costo un campo con valor 120 =convertir([Costo]," ",1) aplicado a un cuadro de texto Texto1 dará como resultado: ciento veinte En cambio: si el campo tiene un importe como $ 120,25, escribir la función como: =convertir([Costo],”pesos”,1) dará como resultado: Ciento veinte pesos con veinticinco centimos En cambio, haciendo las modificaciones explicadas a continuación, aparecerá como: Ciento veinte pesos con 25/100 Para que los centavos no sean convertidos, modificar la parte de las subrutinas de trabajo 'Subrutinas de trabajo. Decimales: ‘agregar lo que sigue coma = varLongitud + 1 varConvertir1 = Convertir decismal = Len(varCifra) - coma If decismal > 0 Then cifradeci = Right(varCifra, decismal) Convertir = varConvertir1 & " con " & cifradeci & "/100" End If ‘quitar lo que sigue 'If DecDec > 0 Then 'GoSub DecenasDecimal 'Else 'If UniDec > 0 Then 'GoSub UnidadesDecimal 'End If 'End If ‘hasta aquí. Option Explicit Public Function Convertir(varCifra As Variant, strMoneda As String, bytMayusculas As Byte) As String 'Comprobar si la cifra tiene valor o excede de 9 dígitos. If IsNull(varCifra) Or varCifra = " " Then Convertir = "" GoTo Fin ElseIf varCifra > 999999999.99 Then Convertir = "Error. Número muy grande" GoTo Fin End If 'Declarar variables. Dim decismal As Integer 'estas 3 variables son para cuando NO se conviertan los decimales Dim coma As Integer Dim cifradeci As Integer Dim varLongitud As Variant 'Para saber la longitud de la cifra introducida. Dim varConvertir1 As Variant 'Temporal. Dim x As Long 'Contador. Dim blnGénero As Boolean 'Para saber el Género del Tipo de la Moneda. 'Femenino: Peseta, Lira 'Masculino: Euro, Dolar, Franco, Marco Dim strDecimales As String 'Saber el Tipo de decimales. Dim DecDec As Byte 'Para saber la cifra que corresponde a las Decenas de Decimales Dim UniDec As Byte 'Para saber la cifra que corresponde a las Unidades de Decimales Dim Uni As Byte 'Para saber la cifra que corresponde a las Unidades Dim Dec As Byte 'Para saber la cifra que corresponde a las Decenas Dim Cen As Byte 'Para saber la cifra que corresponde a las Centenas Dim UniMil As Byte 'Para saber la cifra que corresponde a las Unidades de Mil Dim DecMil As Byte 'Para saber la cifra que corresponde a las Decenas de Mil Dim CenMil As Byte 'Para saber la cifra que corresponde a las Centenas de Mil Dim UniMill As Byte 'Para saber la cifra que corresponde a las Unidades de Millón Dim DecMill As Byte 'Para saber la cifra que corresponde a las Decenas de Millón Dim CenMill As Byte 'Para saber la cifra que corresponde a las Centenas Millón Dim Almacen1 As Byte 'Sirven para almacenar temporalmente otra variable Dim Almacen2 As Byte 'Sirven para almacenar temporalmente otra variable Dim Almacen3 As Byte 'Sirven para almacenar temporalmente otra variable Dim almacen4 As Variant 'Sirven para almacenar temporalmente otra variable Dim ComaDecT As Variant 'Coma decimal Dim UniT As Variant 'Para ir conociendo el texto que corresponde a Unidades Dim DecT As Variant 'Para ir conociendo el texto que corresponde a Decenas Dim CenT As Variant 'Para ir conociendo el texto que corresponde a Centenas Dim UniMilT As Variant 'Para ir conociendo el texto que corresponde a Unidades de Mil Dim DecMilT As Variant 'Para ir conociendo el texto que corresponde a Decenas de Mil Dim CenMilT As Variant 'Para ir conociendo el texto que corresponde a Centenas de Mil Dim UniMillT As Variant 'Para ir conociendo el texto que corresponde a Unidades de Millón Dim DecMillT As Variant 'Para ir conociendo el texto que corresponde a Decenas de Millón Dim CenMillT As Variant 'Para ir conociendo el texto que corresponde a Centenas de Millón 'Asignar valor. varLongitud = Len(varCifra) 'Conocemos la longitud de la cifra 'Quitar el plural. If Right(strMoneda, 1) = "s" Then strMoneda = Left(strMoneda, (Len(strMoneda) - 1)) End If 'Conocer el Género de la moneda. True=Masculino, False=Femenino Select Case Right(strMoneda, 1) Case "" 'En el caso de no querer tipo de moneda. blnGénero = True Case "a" blnGénero = False Case "o" blnGénero = True Case "r" blnGénero = True Case Else blnGénero = True End Select 'Conocer el Tipo de decimales según sea la moneda. Se indica en singular, ya se asignará _ la s del plural según sea necesario. Select Case strMoneda Case "peseta" strDecimales = "céntimo" Case "euro" strDecimales = "céntimo" Case "peso" strDecimales = "centavo" Case "dólar" strDecimales = "centavo" Case Else strDecimales = "céntimo" End Select 'Para conocer el lugar donde esta situada la coma decimal y sabremos también la cantidad _ de decimales que hay. For x = 0 To varLongitud - 1 ComaDecT = Mid(varCifra, varLongitud - x, 1) If ComaDecT = "," Then ‘ reemplazar la coma por punto si se utiliza punto como separador Select Case x Case 1 UniDec = Mid(varCifra, varLongitud, 1) varLongitud = varLongitud - (x + 1) Case 2 DecDec = Mid(varCifra, varLongitud, 1) UniDec = Mid(varCifra, varLongitud - 1, 1) varLongitud = varLongitud - (x + 1) ' Ejemplos Case Is >= 3 'varCifra es *,*** o más decimales. 413,5167 413,5147 Almacen1 = Mid(varCifra, varLongitud - (x - 1), 1) ' = 5 = 5 Almacen2 = Mid(varCifra, varLongitud - (x - 2), 1) ' = 1 = 1 Almacen3 = Mid(varCifra, varLongitud - (x - 3), 1) ' = 6 = 4 almacen4 = Mid(varCifra, varLongitud - (x), 5) ' = ",5167" = ",5147" almacen4 = CLng(almacen4 * 100) / 100 ' = ,52 = ,51 varCifra = Int(varCifra) ' = 413 = 413 varCifra = varCifra + almacen4 ' = 413,52 = 413,51 varLongitud = Len(varCifra) 'Conocemos la nueva longitud de la varCifra If varLongitud >= 3 Then If Mid(varCifra, varLongitud - 1, 1) = "," Then ' varCifra = 413,5 ‘ reemplazar la coma por punto si se utiliza punto como separador UniDec = Mid(varCifra, varLongitud, 1) varLongitud = varLongitud - 2 'Dejamos la longitud de varCifra sin decimales Else If Mid(varCifra, varLongitud - 2, 1) = "," Then 'varCifra = 413,52 DecDec = Mid(varCifra, varLongitud, 1) 'DecDec = 2 UniDec = Mid(varCifra, varLongitud - 1, 1) 'UniDec = 5 varLongitud = varLongitud - 3 'Dejamos la longitud de varCifra sin decimales End If End If End If End Select GoTo TRABAJO 'Ya sabemos los decimales y nos vamos al resto. End If Next x TRABAJO: If varLongitud = 9 Then CenMill = Mid(varCifra, varLongitud - 8, 1) 'Centenas de Millón If varLongitud >= 8 Then DecMill = Mid(varCifra, varLongitud - 7, 1) 'Decenas de Millón If varLongitud >= 7 Then UniMill = Mid(varCifra, varLongitud - 6, 1) 'Unidades de Millón If varLongitud >= 6 Then CenMil = Mid(varCifra, varLongitud - 5, 1) 'Centenas de Mil If varLongitud >= 5 Then DecMil = Mid(varCifra, varLongitud - 4, 1) 'Decenas de Mil If varLongitud >= 4 Then UniMil = Mid(varCifra, varLongitud - 3, 1) 'Unidades de Mil If varLongitud >= 3 Then Cen = Mid(varCifra, varLongitud - 2, 1) 'Centenas If varLongitud >= 2 Then Dec = Mid(varCifra, varLongitud - 1, 1) 'Decenas If varLongitud >= 1 Then Uni = Mid(varCifra, varLongitud, 1) 'Unidades 'Dependiendo la longitud, se realizara un procedimiento If varLongitud = 9 Then GoSub CentenasMillón '555.555.555 If varLongitud = 8 Then GoSub DecenasMillón '55.555.555 If varLongitud = 7 Then GoSub UnidadesMillón '5.555.555 If varLongitud = 6 Then GoSub CentenasMil '555.555 If varLongitud = 5 Then GoSub DecenasMil '55.555 If varLongitud = 4 Then GoSub UnidadesMil '5.555 If varLongitud = 3 Then GoSub Centenas '555 If varLongitud = 2 Then GoSub Decenas '55 If varLongitud = 1 Then GoSub Unidades '5 'Comprobar si la cifra es solo de millones para añadir "de" antes del tipo de Moneda. _ Ejem. 1.000.000 o 3.000.000 hay que indicar XX millón de pesetas. If varLongitud > 6 Then If Mid(varCifra, varLongitud - 5, varLongitud) = 0 Then ' MsgBox Mid(varCifra, varLongitud - 6, varLongitud) Convertir = Convertir & " de" End If End If 'Asignar el valor final Select Case Convertir Case "un" Convertir = Convertir & " " & strMoneda Case "una" Convertir = Convertir & " " & strMoneda Case Else 'Consultar si no tiene la cadena del tipo de moneda. If Not Right(strMoneda, 1) = "" Then 'Comprobar si el tipo de moneda es dolar y plural, en este caso añadir "e" If Right(strMoneda, 1) = "r" Then Convertir = Convertir & " " & strMoneda Else Convertir = Convertir & " " & strMoneda End If End If End Select 'Subrutinas de trabajo. (ver las modificaciones para el caso de NO convertir los decimales. Decimales: If DecDec > 0 Then GoSub DecenasDecimal Else If UniDec > 0 Then GoSub UnidadesDecimal End If End If 'Convertir el tipo de letra según selección. Select Case bytMayusculas Case 1 'Primera letra mayúscula. Convertir = Chr(Asc(Mid(Convertir, 1, 1)) - 32) & Mid(Convertir, 2, Len(Convertir)) Case 2 'Todas Primeras Letras De Palabras En Mayúsculas. Convertir = strPrimerasMayusculas(Convertir) Case 3 'TODAS LAS LETRAS EN MAYÚSCULAS. Convertir = UCase(Convertir) Case Else 'En otros casos, todo en minusculas. End Select 'Salir de la función al terminar el procedimiento. GoTo Fin '*********************************** DecenasDecimal: 'Asignar valor a las Decenas de Decimal If UniDec = 0 Then 'En este caso no hay unidades de decimales Almacen1 = DecDec: Uni = DecDec varConvertir1 = Convertir GoSub Unidades If Left(varConvertir1, 4) = "cero" Then 'Las Decenas de Decimal = 0 If Convertir = "una" Then 'Cambiamos de genero al ser céntimos masculino Convertir = "un" 'y ademas es singular Convertir = Convertir & " " & strDecimales & " de " & strMoneda ElseIf Convertir = "un" Then Convertir = Convertir & " " & strDecimales & " de " & strMoneda Else Convertir = Convertir & " " & strDecimales & " de " & strMoneda End If Else If Convertir = "una" Then 'Cambiamos de genero al ser céntimos masculino Convertir = "un" 'y ademas es singular Convertir = varConvertir1 & " con " & Convertir & " " & strDecimales Else Convertir = varConvertir1 & " con " & Convertir & " " & strDecimales End If End If Else varConvertir1 = Convertir GoTo UnidadesDecimal End If Return 'Fin de Decenas de Decimal UnidadesDecimal: 'Asignar valor a las Unidades de Decimal Almacen1 = UniDec: Almacen2 = DecDec Dec = UniDec: Uni = DecDec varConvertir1 = Convertir GoSub Decenas If Right(Convertir, 3) = "una" Then 'Cambiamos de genero al ser céntimos masculino varLongitud = Len(Convertir) Convertir = Left(Convertir, varLongitud - 1) End If If Left(varConvertir1, 4) = "cero" Then Convertir = Convertir & " " & strDecimales & " de " & strMoneda Else Convertir = varConvertir1 & " con " & Convertir & " " & strDecimales End If Return Unidades: 'Asignar valor de los Unidades Select Case Uni Case 0: UniT = "cero": Case 2: UniT = "dos" Case 3: UniT = "tres": Case 4: UniT = "cuatro": Case 5: UniT = "cinco" Case 6: UniT = "seis": Case 7: UniT = "siete": Case 8: UniT = "ocho" Case 9: UniT = "nueve" Case Else 'En caso de ser 1, asignar comprobando el Género de la moneda. UniT = IIf(blnGénero = True, "un", "una") End Select Convertir = UniT Return 'Fin de Unidades Decenas: 'Asignar valor de las Decenas If Dec > 0 And Dec < 3 Then Select Case Dec & "" & Uni Case 10: DecT = "diez": Case 11: DecT = "once" Case 12: DecT = "doce": Case 13: DecT = "trece" Case 14: DecT = "catorce": Case 15: DecT = "quince" Case 16: DecT = "dieciséis": Case 17: DecT = "diecisiete" Case 18: DecT = "dieciocho": Case 19: DecT = "diecinueve" Case 20: DecT = "veinte": Case 22: DecT = "veintidós": Case 23: DecT = "veintitrés" Case 24: DecT = "veinticuatro": Case 25: DecT = "veinticinco" Case 26: DecT = "veintiséis": Case 27: DecT = "veintisiete" Case 28: DecT = "veintiocho": Case 29: DecT = "veintinueve" Case Else 'En caso de ser 21, asignar comprobando el Género de la moneda. DecT = IIf(blnGénero = True, "veintiún", "veintiuna") End Select Convertir = DecT 'Asignamos el texto correspondiente a la CIFRA Return Else Select Case Dec Case 3: DecT = "treinta": Case 4: DecT = "cuarenta" Case 5: DecT = "cincuenta": Case 6: DecT = "sesenta" Case 7: DecT = "setenta": Case 8: DecT = "ochenta" Case 9: DecT = "noventa" End Select If Dec >= 3 And Uni >= 1 Then 'Si CIFRA > 31 y unidades distinto a 0 GoSub Unidades 'Nos vamos a Unidades Convertir = DecT + " y " + Convertir 'Asignamos el texto correspondiente Else Convertir = DecT End If End If 'Fin de Dec < 3 Return 'Fin de Decenas Centenas: 'Asignar valor de las Centenas Select Case Cen Case 1: If Cen = 1 And Dec = 0 And Uni = 0 Then 'Si el valor es 100 justos. CenT = "cien" Convertir = CenT Return Else 'Si el valor es superior a 100 CenT = "ciento" End If Case 2: CenT = "doscient": Case 3: CenT = "trescient" Case 4: CenT = "cuatrocient": Case 5: CenT = "quinient" Case 6: CenT = "seiscient": Case 7: CenT = "setecient" Case 8: CenT = "ochocient": Case 9: CenT = "novecient" End Select If Not CenT = "" Then If CenT <> "ciento" Then CenT = CenT & IIf(blnGénero = True, "os", "as") End If End If If Dec + Uni = 0 Then Convertir = CenT: Return 'El valor es 200,300, etc. If Dec = 0 And Uni >= 1 Then 'El valor es 101, 308, 405, 909, etc GoSub Unidades 'Nos vamos a asignar las unidades Else GoSub Decenas 'Nos vamos a asignar las decenas End If Convertir = CenT + " " + Convertir Return 'Fin de Centenas UnidadesMil: 'Asignar valor de las Unidades de mil Almacen1 = Uni: Uni = UniMil 'Saber el valor de Unidades de mil GoSub Unidades Uni = Almacen1: UniT = "" 'Devolvemos el valor y reseteamos a nulo If UniMil = 1 Then UniMilT = "mil" Else UniMilT = Convertir + " mil" End If If Cen + Dec + Uni = 0 Then 'El valor es 2.000, 3.000, 4.000, etc Convertir = UniMilT Else GoSub Centenas If Cen = 0 Then 'Si Centenas es cero, no añadimos el espacio Convertir = UniMilT + Convertir Else Convertir = UniMilT + " " + Convertir End If End If Return 'Fin de Unidades de Mil DecenasMil: 'Asignar valor de las Decenas de Mil Almacen1 = Uni: Almacen2 = Dec 'Como las unidades y decenas de miles son como las Uni = UniMil: Dec = DecMil 'uni y dec normales,utilizamos la subrutina Decenas GoSub Decenas UniMil = Uni: DecMil = Dec 'Devolvemos cada valor a su variable correspondien. Uni = Almacen1: Dec = Almacen2 UniT = "": DecT = "" 'Reseteamos a valor nulo los textos DecMilT = Convertir If Cen + Dec + Uni = 0 Then 'El valor es 2.000, 3.000 Convertir = Convertir + " mil" Else GoSub Centenas If Cen = 0 Then 'Si Centenas es cero, no añadimos el espacio Convertir = DecMilT + " mil" + Convertir Else Convertir = DecMilT + " mil " + Convertir End If End If Return 'Fin de Decenas de Mil CentenasMil: 'Asignar valor de las Centenas de Mil Almacen1 = Uni: Almacen2 = Dec: Almacen3 = Cen 'Como las unidades y decenas de miles son como las Uni = UniMil: Dec = DecMil: Cen = CenMil 'uni y dec normales,utilizamos la subrutina Decenas GoSub Centenas If Convertir = " una" Then: Convertir = "" 'En caso de ser *.001.*** se anula el una Uni = Almacen1: Dec = Almacen2: Cen = Almacen3 'Devolvemos cada valor a su variable correspondien. UniT = "": DecT = "": CenT = "" 'Reseteamos a valor nulo los textos CenMilT = Convertir If Cen + Dec + Uni = 0 Then Convertir = Convertir + " mil" Else GoSub Centenas If Cen = 0 Then Convertir = CenMilT + " mil" + Convertir 'se ha quitado "mil_" Else Convertir = CenMilT + " mil " + Convertir 'se ha quitado "mil_" End If End If Return 'Fin de Decenas de Mil UnidadesMillón: 'Asignar valor de las Unidades de Millón If UniMill = 1 Then UniMillT = "un millón" Else Almacen1 = Uni: Uni = UniMill 'Saber el valor de Unidades de millón GoSub Unidades Uni = Almacen1: UniT = "" 'Devolvemos el valor y reseteamos a nulo UniMillT = Convertir + " millones" End If If CenMil + DecMil + UniMil + Cen + Dec + Uni = 0 Then 'Cifra es 1.000.000 Convertir = UniMillT Else If CenMil + DecMil + UniMil = 0 Then 'Cifra es *.000.*** GoSub Centenas If Cen = 0 Then 'Cifra es *.***.0** Convertir = UniMillT + Convertir 'Se ha quitado "mil_" Else Convertir = UniMillT + " " + Convertir End If Else GoSub CentenasMil If CenMil = 0 Then 'Cifra es *.0**.*** Convertir = UniMillT + Convertir 'Se ha quitado "mil_" Else Convertir = UniMillT + " " + Convertir End If End If End If Return 'Fin de Unidades de Millón DecenasMillón: 'Asignar valor de las Decenas de Millón Select Case DecMill <= 2 And UniMill = 1 Case 21: DecMillT = "veintiún millón" Case 31: DecMillT = "treintiún millón" Case 41: DecMillT = "cuarenta y un millón" Case 51: DecMillT = "cincuenta y un millón" Case 61: DecMillT = "sesenta y un millón" Case 71: DecMillT = "setenta y un millón" Case 81: DecMillT = "ochenta y un millón" Case 91: DecMillT = "noventa y un millón" Case Else Almacen1 = Uni: Almacen2 = Dec 'Como las unidades y decenas de miles son como las Uni = UniMill: Dec = DecMill 'uni y dec normales,utilizamos la subrutina Decenas GoSub Decenas Uni = Almacen1: Dec = Almacen2: UniT = "": DecT = "" 'Devolmemos valor y reseteamos DecMillT = Convertir + " millones" End Select If CenMil + DecMil + UniMil + Cen + Dec + Uni = 0 Then 'Cifra es **.000.000 Convertir = DecMillT Else If CenMil + DecMil + UniMil = 0 Then 'Cifra es **.000.*** GoSub Centenas If Cen = 0 Then 'Cifra es **.***.0** Convertir = DecMillT + Convertir 'Se ha quitado "mil_" Else Convertir = DecMillT + " " + Convertir End If Else GoSub CentenasMil If CenMil = 0 Then 'Cifra es **.0**.*** Convertir = DecMillT + Convertir 'Se ha quitado "mil_" Else Convertir = DecMillT + " " + Convertir End If End If End If Return 'Fin de Decenas de Millón CentenasMillón: 'Asignar valor de las Centenas de Millón Almacen1 = Uni: Almacen2 = Dec: Almacen3 = Cen 'Como las unidades y decenas de miles son como las Uni = UniMill: Dec = DecMill: Cen = CenMill 'uni y dec normales,utilizamos la subrutina Decenas GoSub Centenas Select Case Cen 'Hay que modificar los terminos a género masculino Case 1: If Cen = 1 And Dec = 0 And Uni = 0 Then 'Si el valor es 100.***.*** CenT = "cien" Convertir = CenT Else 'Si el valor es superior a 100 CenT = "ciento" End If Case 2: CenT = "doscientos": Case 3: CenT = "trescientos" Case 4: CenT = "cuatrocientos": Case 5: CenT = "quinientos" Case 6: CenT = "seiscientos": Case 7: CenT = "setecientos" Case 8: CenT = "ochocientos": Case 9: CenT = "novecientos" End Select If Dec + Uni = 0 Then: Convertir = CenT 'El valor es 200,300, etc. If Dec = 0 And Uni >= 1 Then 'El valor es 101, 308, 405, 909, etc GoSub Unidades 'Nos vamos a asignar las unidades If Uni = 1 Then: Convertir = "un" 'Modificamos a masculino el uno, 201.***.*** Else GoSub Decenas 'Nos vamos a asignar las decenas If Uni = 1 Then If Dec = 1 And Uni = 1 Then Convertir = "once" Else If Dec = 2 And Uni = 1 Then Convertir = "ventiún" Else Convertir = DecT + " y un" 'Asignamos el texto correspondiente End If End If End If End If If Cen >= 1 And Dec = 0 And Uni = 0 Then 'Cifra es 1**.***.*** CenMillT = CenT + Convertir + " millones" Else CenMillT = CenT + " " + Convertir + " millones" End If Uni = Almacen1: Dec = Almacen2: Cen = Almacen3 'Devolvemos cada valor a su variable correspondien. UniT = "": DecT = "": CenT = "" 'Reseteamos a valor nulo los textos If CenMil + DecMil + UniMil + Cen + Dec + Uni = 0 Then 'Cifra es ***.000.000 Convertir = CenMillT Else If CenMil + DecMil + UniMil = 0 Then 'Cifra es ***.000.*** GoSub Centenas If Cen = 0 Then 'Cifra es ***.***.0** Convertir = CenMillT + Convertir 'Se ha quitado "mil_" Else Convertir = CenMillT + " " + Convertir End If Else GoSub CentenasMil If CenMil = 0 Then 'Cifra es ***.0**.*** Convertir = CenMillT + Convertir 'Se ha quitado "mil_" Else Convertir = CenMillT + " " + Convertir End If End If End If Return 'Fin de Centenas de Millón Fin: Exit Function 'Salir de la función. End Function Private Function strPrimerasMayusculas(strTexto As String) As String 'Convertir todos los carácteres de inicio de palabra a Mayúsculas, dejando el resto en _ minusculas. Dim x As Long 'Contador Dim varLongitud As Byte 'Para saber la longitud de la cifra introducida. Dim strTexto1 As String 'Variable temporal. varLongitud = Len(strTexto) For x = 1 To varLongitud strTexto1 = Mid(strTexto, x, 1) If x = 1 Then 'Asignar la letra convertida a mayusculas. strPrimerasMayusculas = strPrimerasMayusculas & Chr(Asc(strTexto1) - 32) Else If strTexto1 = " " Then If Not Mid(strTexto, x + 1, 1) = "y" Then 'Asignar la letra convertida a mayusculas. strPrimerasMayusculas = strPrimerasMayusculas & " " & Chr(Asc(Mid(strTexto, x + 1, 1)) 32) Else strPrimerasMayusculas = strPrimerasMayusculas & " y" End If x = x + 1 'Sumamos una para que sea el caracter siguiente al espacio " ". Else strPrimerasMayusculas = strPrimerasMayusculas & strTexto1 End If End If Next End Function