OsmaniPititi publicó en la clase Caso práctico: Validación y Formato de Rangos hace 5 horas
Buenas Tardes Julia
Abajo la variante usando select case
Dim Fila As Integer
Dim UltimaFila As Integer
Dim Valor As Variant
Dim Resultado As String
' Detectar la última fila con datos en la columna A
UltimaFila = Cells(Rows.Count, 1).End(xlUp).Row
' Recorre las filas con datos en la columna A
For Fila = 5 To UltimaFila
Valor = Range("A" & Fila).Value
' Evaluar el tipo de dato
Select Case True
Case VBA.IsEmpty(Valor)
Resultado = "Celda vacía"
Case VBA.IsDate(Valor)
' Si es una fecha, formatearla en formato largo
Resultado = VBA.FormatDateTime(Valor, vbLongDate)
Case VBA.IsNumeric(Valor)
' Si es un número, convertirlo y formatearlo como moneda
If Valor >= 0 Then
Resultado = VBA.FormatCurrency(Valor, 2)
Else
Resultado = VBA.Format(Valor, "($#,##0.00)")
End If
Case Else
' Si no es válido, mostrar mensaje de error
Resultado = "No es un número válido"
End Select
Range("B" & Fila).Value = Resultado
Next Fila
Abajo la variante usando select case
Dim Fila As Integer
Dim UltimaFila As Integer
Dim Valor As Variant
Dim Resultado As String
' Detectar la última fila con datos en la columna A
UltimaFila = Cells(Rows.Count, 1).End(xlUp).Row
' Recorre las filas con datos en la columna A
For Fila = 5 To UltimaFila
Valor = Range("A" & Fila).Value
' Evaluar el tipo de dato
Select Case True
Case VBA.IsEmpty(Valor)
Resultado = "Celda vacía"
Case VBA.IsDate(Valor)
' Si es una fecha, formatearla en formato largo
Resultado = VBA.FormatDateTime(Valor, vbLongDate)
Case VBA.IsNumeric(Valor)
' Si es un número, convertirlo y formatearlo como moneda
If Valor >= 0 Then
Resultado = VBA.FormatCurrency(Valor, 2)
Else
Resultado = VBA.Format(Valor, "($#,##0.00)")
End If
Case Else
' Si no es válido, mostrar mensaje de error
Resultado = "No es un número válido"
End Select
Range("B" & Fila).Value = Resultado
Next Fila
Respuestas
