Visual Basic - Letra mayúscula después de punto

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 15
Ha aumentado su posición en 5 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Letra mayúscula después de punto

Publicado por David (18 intervenciones) el 11/05/2023 17:26:15
Buenas tardes, me gustaría saber si hay algún código para que en una frase después del punto la primera letra salga mayúsculas?.

Tengo este código, pero después del punto sigue escribiendo en minúsculas:

1
2
3
Private Sub TextBox1_Change()
TextBox1.Text = VBA.UCase(VBA.Left(TextBox1.Text, 1)) & VBA.Mid(TextBox1.Text, 2)
End Sub

es decir, por ejemplo, si escribo con el código de arriba la frase sale así: "Hola que tal. como estas" y lo que me gustaría es que la frase saliera así: "Hola que tal. Como estas"

Muchas gracias.
Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 145
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Letra mayúscula después de punto

Publicado por Sah1d Ra (191 intervenciones) el 19/05/2023 23:39:54
solo ocupas hacer una leve modificacion, saludos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Text1_KeyPress(KeyAscii As Integer)
 If InStr("abcdefghijklmnopqrstuvwxyzñ", LCase(Chr$(KeyAscii))) = 0 Then KeyAscii = 0
 'La linea anterior solo permite el acceso a los caracteres descritos arriba
 If Text1.SelStart = 0 Then 'Comprueba sea el primer carácter
  KeyAscii = Asc(UCase(Chr$(KeyAscii)))
  'La linea anterior convierte el código asc11 a carácter después lo hace mayúscula y lo vuelve a convertir a código asc11
 ElseIf Mid(Text1.Text, Text1.SelStart, 1) = Chr$(32) Or Mid(Text1.Text, Text1.SelStart, 1) = vbLf Then
  KeyAscii = Asc(UCase(Chr$(KeyAscii)))
 Else ' Realizado por Sahid Ra, espero darme a entender con el codigo.
  KeyAscii = Asc(LCase(Chr$(KeyAscii)))
  'La linea anterior convierte el código asc11 a carácter después lo hace minúscula y lo vuelve a convertir a código asc11
 End If
End Sub
'Este codigo no funciona si se pega del portapapeles con letras mayusculas, para corregir el error
'de pegar, ocupas hacer el uso del evento CHANGE del TextBox y utilizar la funcion STRCONV
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 15
Ha aumentado su posición en 5 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Letra mayúscula después de punto

Publicado por David (18 intervenciones) el 27/05/2023 18:58:37
Hola, gracias por la respuesta, pero creo que se me olvidó comentar que lo tengo en "word". He probado con el código, pero no me funciona.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 15
Ha aumentado su posición en 5 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Letra mayúscula después de punto

Publicado por David (18 intervenciones) el 08/03/2024 10:15:27
Hola, después de tiempo he vuelto a retomar el tema y he usado el código, según lo reseñado por Sah1d Ra:

1
2
3
4
5
6
7
8
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("abcdefghijklmnñopqrstuvwxyz .", LCase(Chr$(KeyAscii))) = 0 Then KeyAscii = 0
If TextBox1.SelStart = 0 Then KeyAscii = Asc(UCase(Chr$(KeyAscii)))
ElseIf Mid(TextBox1.Text, TextBox1.SelStart, 1) = Chr$(32) Or Mid(TextBox1.Text, TextBox1.SelStart, 1) = vbLf Then KeyAscii = Asc(UCase(Chr$(KeyAscii)))
Else
KeyAscii = Asc(LCase(Chr$(KeyAscii)))
End If
End Sub

pero cuando le doy para funcionar me dice:

Error de compilación:
Else sin If

no sé si alguien me podría ayudar, he intentado modificar cosas, pero sigue igual.

Saludos.
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Letra mayúscula después de punto

Publicado por Antoni Masana (558 intervenciones) el 08/03/2024 14:23:35
Prueba esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub Macro()
    MsgBox Punto_Mayusc("Hola que tal. como estas")
End Sub
 
Function Punto_Mayusc(Texto)
    Dim a As Integer, Punto As Boolean
    Punto = False
    For a = 1 To Len(Texto)
        If Mid(Texto, a, 1) = "." Then
            Punto = True
        End If
 
        If Punto And InStr(". ", Mid(Texto, a, 1)) = 0 Then
            Punto_Mayusc = Punto_Mayusc & UCase(Mid(Texto, a, 1))
            Punto = False
        Else
            Punto_Mayusc = Punto_Mayusc & Mid(Texto, a, 1)
        End If
    Next
End Function

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 15
Ha aumentado su posición en 5 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Letra mayúscula después de punto

Publicado por David (18 intervenciones) el 10/03/2024 12:39:32
Hola, muchas gracias por la respuesta, pero me sigue sin funcionar.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Letra mayúscula después de punto

Publicado por Antoni Masana (558 intervenciones) el 10/03/2024 17:35:10
El código que he puesto funciona correctamente. He realizado la prueba.
No entiendo que es lo que sigue sin funcionar.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 15
Ha aumentado su posición en 5 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Letra mayúscula después de punto

Publicado por David (18 intervenciones) el 11/03/2024 11:25:18
Pues no sé, seguro que hago algo mal, lo miraré nuevamente durante la semana.

Gracias de nuevo.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 15
Ha aumentado su posición en 5 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Letra mayúscula después de punto

Publicado por David (18 intervenciones) el 11/03/2024 12:05:30
Hola de nuevo, creo que ya he encontrado el fallo y/o error, ya que yo lo que necesito es que funcione en un "Textbox" de un "UserForm", con las frases que se escriban, no sólo con el ejemplo que puse, y el código funciona si se usa con un "Módulo".
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Letra mayúscula después de punto

Publicado por Antoni Masana (558 intervenciones) el 11/03/2024 12:14:12
Es tan sencillo como esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    TextBox1.Text = Punto_Mayusc(TextBox1.Text)
End Sub
 
Function Punto_Mayusc(Texto)
    Dim a As Integer, Punto As Boolean
    Punto = False
    For a = 1 To Len(Texto)
        If Mid(Texto, a, 1) = "." Then
            Punto = True
        End If
 
        If Punto And InStr(". ", Mid(Texto, a, 1)) = 0 Then
            Punto_Mayusc = Punto_Mayusc & UCase(Mid(Texto, a, 1))
            Punto = False
        Else
            Punto_Mayusc = Punto_Mayusc & Mid(Texto, a, 1)
        End If
    Next
End Function

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 15
Ha aumentado su posición en 5 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Letra mayúscula después de punto

Publicado por David (18 intervenciones) el 14/03/2024 21:18:29
He probado esto último con el "UserForm" y no funciona.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Letra mayúscula después de punto

Publicado por Antoni Masana (558 intervenciones) el 14/03/2024 21:42:56
Enviame el fichero o subelo y miro que es lo que falla.
Pon en algún sitio el texto a modificar para ver si el problema está en el código o en el texto.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 15
Ha aumentado su posición en 5 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Letra mayúscula después de punto

Publicado por David (18 intervenciones) el 15/03/2024 20:50:59
Hola, era para comentarle que en principio he conseguido hacer que funcione, ya que el problema, creo que era que cuando escribía en el textbox la frase salía toda en minúsculas, así como la primera letra al empezar, pero esto último lo he solucionado con el código del primer post de este hilo, lo otro le he añadido un commandbutton y al darle se transfiere como quería.

Lo único que cuando lo utilice me tendré que acodar que en el textbox sale en minúsculas cuando escriba, y hasta que no aprete el commandbutton no saldrá como deseo.

Muchas gracias por todo, y disculpe las molestias.
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Leonardo

Letra mayúscula después de punto

Publicado por Leonardo (14 intervenciones) el 15/03/2024 21:00:15
Respecto a éso, puedes solucionarlo desde el Event Change del TextBox.
Agrega una condición tipo:

1
2
3
With TextBox1.
        if Punto_Mayusc(.Text )<>.Text then .Text=Punto_Mayusc(.Text)
End With

Espero te sirva. Saudos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 15
Ha aumentado su posición en 5 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Letra mayúscula después de punto

Publicado por David (18 intervenciones) el 16/03/2024 10:54:35
Hola, muchas gracias, funciona perfectamente haciendo un cambio en la primera línea, en vez de "." con "()".

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar