............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Corregir puntuación de un escrito

Ver el tema anterior Ver el tema siguiente Ir abajo

Corregir puntuación de un escrito

Mensaje por Roberto2010 el Sáb Abr 30, 2011 7:24 pm

Buenas!
Me preocupa que se escriba mal la puntuación de un escrito que debe ingresarse en un textbox. La idea es hacer una macro que corrija los siguientes errores:

1) ". a" por: ". A"
2) ".a" por: ". A"
3) ".A" por: ". A"
4) ",a" por: ", a"
5) ";a" por: "; a"

Arme una macro y esta funciona bien, pero… jeje… no se rían, es muy básica y extensa dado que son cinco errores posibles por cada una delas letras del abecedario, para ello utilicé la función Substitute del visual. Lo que pretendo es reducir el código. ¿Alguien sería tan gentil de ayudarme en esto?
Pienso:
Tal vez se pueda reducir un poco anidando la función sustituir, aclaro que lo se hacer en la hoja de Excel pero no en el visual. O quizás hacer que se reconozca si el carácter esta en mayúscula o minúscula en relación a la posición del punto, coma o punto y coma para no tener que reconocer cada letra del abecedario. Desde ya muchas gracias

[Tienes que estar registrado y conectado para ver este vínculo]


avatar
Roberto2010

Masculino Cantidad de envíos : 76
Edad : 41
Ciudad - Pais : ARGENTINA
Version de Excel : 2003-2007
Fecha de inscripción : 03/09/2010

Volver arriba Ir abajo

Re: Corregir puntuación de un escrito

Mensaje por Tatayayan el Dom Mayo 01, 2011 1:22 pm

Hola, probá así, tendría que fucnionar para todos los casos:

TextBox1 = Replace(TextBox1, ".", ". ") 'reemplazo punto por punto y espacio
TextBox1 = Replace(TextBox1, " ", " ") 'si quedaron dos espacios juntos queda solo uno
avatar
Tatayayan
Moderador
Moderador

Masculino Cantidad de envíos : 319
Ciudad - Pais : Chamical- La Rioja - ARG
Fecha de inscripción : 20/11/2008

Volver arriba Ir abajo

Re: Corregir puntuación de un escrito

Mensaje por Tatayayan el Dom Mayo 01, 2011 1:24 pm

El anterior código se peude prestar a confucnión xq el editor html no visualiza bien los 2 espacios.

TextBox1 = Replace(TextBox1, ".", ". ") 'reemplazo punto por punto y espacio
TextBox1 = Replace(TextBox1, Space(2), Space(1)) 'si quedaron dos espacios juntos queda solo uno
avatar
Tatayayan
Moderador
Moderador

Masculino Cantidad de envíos : 319
Ciudad - Pais : Chamical- La Rioja - ARG
Fecha de inscripción : 20/11/2008

Volver arriba Ir abajo

Re: Corregir puntuación de un escrito

Mensaje por Roberto2010 el Dom Mayo 01, 2011 6:18 pm

Gracias Tatayayan, pero me temo que no...
Es decir, serían dos tipos de errores, no solo el espacio sino también poner mayuscula en caso de ir despues de un punto. Por otro lado de tratarse de corregir solo espacios me parece que tampoco resuelve todas las posibilidades.
Gracias
avatar
Roberto2010

Masculino Cantidad de envíos : 76
Edad : 41
Ciudad - Pais : ARGENTINA
Version de Excel : 2003-2007
Fecha de inscripción : 03/09/2010

Volver arriba Ir abajo

Re: Corregir puntuación de un escrito

Mensaje por wenner el Dom Mayo 01, 2011 7:39 pm

Hola,

Una primera aproximación (falta sustituir la ñ, carácter 241),

Código:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Dim Texto As String
    Dim Encontrar As String
    Dim NuevoValor As String
    Dim Letra As Byte
    Dim Separadores As Variant
    Dim n As Byte
   
    Separadores = Array(",", ".", ";")
       
    For n = 0 To UBound(Separadores)
        Texto = TextBox1.Text
        For Letra = 97 To 122
            If Texto Like "*" & Separadores(n) & Chr(Letra) & "*" Then
                Encontrar = Separadores(n)
                NuevoValor = Separadores(n) & " "
                TextBox1.Text = Replace(Texto, Encontrar, NuevoValor)
            End If
        Next
    Next
    Texto = TextBox1.Text
    For Letra = 97 To 122
        If Texto Like "*. " & Chr(Letra) & "*" Then
            Encontrar = ". " & Chr(Letra)
            NuevoValor = ". " & Chr(Letra - 32)
            TextBox1.Text = Replace(Texto, Encontrar, NuevoValor)
        End If
    Next
End Sub

wenner
Moderador
Moderador

Masculino Cantidad de envíos : 13
Edad : 106
Ciudad - Pais : España
Version de Excel : 2003-2007
Fecha de inscripción : 07/10/2008

Volver arriba Ir abajo

Re: Corregir puntuación de un escrito

Mensaje por Roberto2010 el Lun Mayo 02, 2011 2:47 pm

Gracias por tu dedicación y el tiempo invertido Wenner, te comento que a priori funciona bien, pero haciendo pruebas en algunos casos los errores no son corregidos, por ejemplo;
si escribo: mmm.roberto.roberto
........deja: mmm. roberto. Roberto
si escribo: mmm.Roberto.Roberto
........deja: mmm.Roberto.Roberto
Como no quiero abusar de tu tiempo, estudiaré tu codigo para ver si le encuentro la vuelta. Y luego comento. Muchas gracias
avatar
Roberto2010

Masculino Cantidad de envíos : 76
Edad : 41
Ciudad - Pais : ARGENTINA
Version de Excel : 2003-2007
Fecha de inscripción : 03/09/2010

Volver arriba Ir abajo

Re: Corregir puntuación de un escrito

Mensaje por renem el Mar Mayo 03, 2011 2:37 pm

Hola, ayudándome en lo que ya han colaborado propongo este código.

Código:
Sub Corrige()
    texto = "Ingrese texto"
    sep = Array(" ", ",", ".", ";")
    For j = 0 To UBound(sep)
        nuevo = Split(texto, sep(j))
        texto = Trim(nuevo(0))
        For i = 1 To UBound(nuevo)
            nuevo(i) = Trim(nuevo(i))
            If sep(j) = "." Then
                If nuevo(i) <> "" Then nuevo(i) = UCase(Left(nuevo(i), 1)) + Right(nuevo(i), Len(nuevo(i)) - 1)
            End If
            If nuevo(i) <> "" Then texto = texto + Trim(sep(j)) + " " + nuevo(i)
        Next i
    Next j
    MsgBox texto
End Sub
avatar
renem

Cantidad de envíos : 82
Ciudad - Pais : Santiago - Chile
Fecha de inscripción : 05/11/2008

Volver arriba Ir abajo

Re: Corregir puntuación de un escrito

Mensaje por Roberto2010 el Jue Nov 17, 2011 11:55 pm

Renem !
Mil disculpas por no haber visto tu solución en su momento, increible, recién ahora la analizo y efectivamente funciona bien.
has dado en la tecla!!
Solo cambie "Ingrese texto" y "MsgBox" por TextBox1 y funcionó. Qué excelente!
Gracias, mil gracias!
avatar
Roberto2010

Masculino Cantidad de envíos : 76
Edad : 41
Ciudad - Pais : ARGENTINA
Version de Excel : 2003-2007
Fecha de inscripción : 03/09/2010

Volver arriba Ir abajo

Re: Corregir puntuación de un escrito

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.