Para obtener el código, hazle una pregunta clara y concisa a la IA. Un buen ejemplo sería: "Necesito una macro de Excel para convertir un número a texto, que incluya 'pesos' al final y maneje miles y millones."
Una vez que la IA te dé el código, cópialo.
2. Activa la Pestaña "Programador" 🛠️
Esta pestaña te da acceso a las herramientas de macros. Si no la ves en tu cinta de opciones de Excel, actívala:
Ve a Archivo > Opciones.
En la ventana que se abre, selecciona Personalizar cinta de opciones.
En la lista de la derecha, marca la casilla de Programador (o "Developer" en inglés).
Haz clic en Aceptar. Ahora verás la pestaña.
3. Abre el Editor de VBA y Pega el Código
Aquí es donde guardarás la macro.
Haz clic en la pestaña Programador.
Selecciona Visual Basic. Esto abrirá el editor de VBA.
En el menú, ve a Insertar > Módulo.
Pega el código que te dio la IA en la ventana de código que se abre.
Function ConvertirATexto(ByVal Numero) As String
Const PesosSingular As String = "Peso"
Const PesosPlural As String = "Pesos"
Const CentavosSingular As String = "Centavo"
Const CentavosPlural As String = "Centavos"
Dim ParteEntera As Long
Dim ParteDecimal As Long
Dim TextoEntero As String
Dim TextoDecimal As String
If IsNull(Numero) Or IsEmpty(Numero) Or Not IsNumeric(Numero) Then
ConvertirATexto = "Error: Valor no válido"
Exit Function
End If
If Numero = 0 Then
ConvertirATexto = "Cero " & PesosPlural
Exit Function
End If
' Separar la parte entera y la decimal
ParteEntera = Int(Numero)
ParteDecimal = Round((Numero - ParteEntera) * 100, 0)
' Convertir la parte entera
TextoEntero = ConvertirNumero(ParteEntera)
If ParteEntera = 1 Then
TextoEntero = TextoEntero & " " & PesosSingular
Else
TextoEntero = TextoEntero & " " & PesosPlural
End If
' Convertir la parte decimal
If ParteDecimal > 0 Then
TextoDecimal = " con " & ConvertirNumero(ParteDecimal)
If ParteDecimal = 1 Then
TextoDecimal = TextoDecimal & " " & CentavosSingular
Else
TextoDecimal = TextoDecimal & " " & CentavosPlural
End If
Else
TextoDecimal = ""
End If
ConvertirATexto = UCase(Left(TextoEntero, 1)) & Mid(TextoEntero, 2) & TextoDecimal
End Function
Function ConvertirNumero(ByVal Numero As Long) As String
Dim Unidades As Variant
Dim Decenas As Variant
Dim Centenas As Variant
Dim Texto As String
Unidades = Array("", "Un", "Dos", "Tres", "Cuatro", "Cinco", "Seis", "Siete", "Ocho", "Nueve")
Decenas = Array("", "Diez", "Veinte", "Treinta", "Cuarenta", "Cincuenta", "Sesenta", "Setenta", "Ochenta", "Noventa")
Centenas = Array("", "Ciento", "Doscientos", "Trescientos", "Cuatrocientos", "Quinientos", "Seiscientos", "Setecientos", "Ochocientos", "Novecientos")
Texto = ""
If Numero = 0 Then
ConvertirNumero = "Cero"
Exit Function
End If
If Numero >= 1000000000000# Then
Texto = Texto & ConvertirNumero(Numero \ 1000000000000#) & " Billones "
Numero = Numero Mod 1000000000000#
End If
If Numero >= 1000000 Then
If Numero >= 2000000 Then
Texto = Texto & ConvertirNumero(Numero \ 1000000) & " Millones "
Else
Texto = Texto & "Un Millón "
End If
Numero = Numero Mod 1000000
End If
If Numero >= 1000 Then
If Numero \ 1000 = 1 Then
Texto = Texto & "Mil "
Else
Texto = Texto & ConvertirNumero(Numero \ 1000) & " Mil "
End If
Numero = Numero Mod 1000
End If
If Numero >= 100 Then
Texto = Texto & Centenas(Numero \ 100) & " "
Numero = Numero Mod 100
If Numero = 0 Then
Texto = Replace(Texto, "Ciento", "Cien")
End If
End If
If Numero >= 20 Then
Texto = Texto & Decenas(Numero \ 10)
Numero = Numero Mod 10
If Numero > 0 Then
Texto = Texto & " y " & Unidades(Numero)
End If
ElseIf Numero >= 16 Then
Select Case Numero
Case 16: Texto = Texto & "Dieciséis"
Case 17: Texto = Texto & "Diecisiete"
Case 18: Texto = Texto & "Dieciocho"
Case 19: Texto = Texto & "Diecinueve"
End Select
ElseIf Numero >= 11 Then
Select Case Numero
Case 11: Texto = Texto & "Once"
Case 12: Texto = Texto & "Doce"
Case 13: Texto = Texto & "Trece"
Case 14: Texto = Texto & "Catorce"
Case 15: Texto = Texto & "Quince"
End Select
Else
Texto = Texto & Unidades(Numero)
End If
ConvertirNumero = Trim(Texto)
End Function
4. Guarda el Libro como Archivo de Macros 💾
Este paso es crucial para que la macro funcione cada vez que abras el archivo.
Ve a Archivo > Guardar como.
Elige una ubicación para tu archivo.
En el menú desplegable Tipo, selecciona "Libro de Excel habilitado para macros (*.xlsm)".
Haz clic en Guardar.
5. Usa la Macro en Excel 🚀
¡Ya puedes usar la función!
En una celda de tu hoja de cálculo, escribe =ConvertirATexto(A1), cambiando A1 por la celda que contenga el número que quieres convertir.
Presiona Enter y el resultado aparecerá.y precisa.