Poner Primera letra a mayúscula y punto final

Esta vez tengo la siguiente duda, necesito una macro que en un texto(un comentario) que se introduzca en Excel, automáticamente la primera letra de la oración (únicamente la primera) se cambie a mayúsculas y al final si no tiene punto final este se ponga también automáticamente.
Ejemplo:
No esntrego las tareas --> No entrego las tareas.
Me proporcionaron la siguiente macro:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Target.Value = Application.WorksheetFunction.Proper(Target.Value)
End Sub
Solo que esta le pone la primera letra a mayúsculas pero de cada palabra, solo necesito que sea la primera letra de toda la oración.
Y que al final si no tiene punto final se lo ponga.

3 respuestas

Respuesta
1
Pruébalo de esta manera:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Application.EnableEvents = False
Target.Value = UCase(Mid(Target.Value, 1, 1)) & Mid(Target.Value, 2, Len(Target.Value) - 1) & "."
Application.EnableEvents = True
End Sub
Como esta rutina se ejecuta al realizar algún cambio en cualquier celda, cuando le cambies el texto por el nuevo se vuelve a ejecutar y así se repite . Por eso lo agrego lo del EnableEvents en false
Nota: No está contemplado ningún rango de ejecución, por lo que actúa sobre toda la hoja.
Sdos
Respuesta
1
Probá con el siguiente cambio (no lo probé en el excel pero debería funcionar)
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Target.Value = Application.WorksheetFunction.Proper(Left(Target.Value,1)) & Mid(Target.Value,2,Len(Target.Value))
If Right(Target.Value,1)<> "." Then
Target.Value = Target.Value & "."
End if
End Sub
Respuesta
1
Te quedo mal con la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas