Ver Mensaje Individual
  #1  
Antiguo 12-02-2006
valera valera is offline
Miembro
 
Registrado: abr 2005
Posts: 39
Reputación: 0
valera Va por buen camino
Macros en Excel

Holas muchachos del foro, estaba sin hacer y se me ocurrio buscar en internet si habia algo sobre conversion de letras en excel y si encontré codigo pero el problema es el siguiente: por ejemplo si en la celda A1 tengo texto en minuscula y en A2 tengo texto en mayuscula, lo que quiero es que con un solo macro me convierta lo que está en minuscula a mayuscula y viceversa, El codigo que encontré lo hace por separado un macro para mayuscula y otro macro para minuscula y lo que quiero es unirlo para que con un solo macro haga las dos conversiones a la vez. les envio el codigo ya unido para que quien me pueda ayudar.

Por su ayuda muchas gracias.
Código:
Sub Convertir()
'Convierte de minuscula a mayuscula
' Creado el 27/11/2003 por David García
Dim NFil(128), NCol(128), CFil(128), Ccol(128), Nra, Nia, Nja, ra, ia, ja As Integer
Dim letras As String
AreaCount = Selection.Areas.Count
If AreaCount < 128 Then
    ia = 1
    For Each A In Selection.Areas
        NFil(ia) = A.Row
        NCol(ia) = A.Column
        CFil(ia) = A.Rows.Count
        Ccol(ia) = A.Columns.Count
        ia = ia + 1
    Next A
    Nra = ia - 1
    ra = 1
    ia = 1
    ja = 1
    Do While ra <= Nra
        Nia = CFil(ra)
        ia = NFil(ra)
        Nja = Ccol(ra)
        ja = NCol(ra)
        Do While ia < NFil(ra) + CFil(ra)
            Do While ja < NCol(ra) + Ccol(ra)
                letras = UCase(Cells(ia, ja).Value)
                Cells(ia, ja) = letras
                ja = ja + 1
            Loop
            ja = NCol(ra)
            ia = ia + 1
        Loop
        ra = ra + 1
    Loop
Else
    MsgBox "No aplica a más de 128 áreas, y usted seleccionó " & AreaCount & ".", vbDefaultButton1, "David le recuerda:"
End If
'Convierte de Mayuscula a minuscula
'Creado el 27/11/2003 por David García
Dim NFi(128), NCo(128), CFi(128), Cco(128), Nr, Ni, Nj, r, i, j As Integer
Dim Texto As String
AreaCount = Selection.Areas.Count
If AreaCount < 128 Then
    i = 1
    For Each B In Selection.Areas
        NFi(i) = B.Row
        NCo(i) = B.Column
        CFi(i) = B.Rows.Count
        Cco(i) = B.Columns.Count
        i = i + 1
    Next B
    Nr = i - 1
    r = 1
    i = 1
    j = 1
    Do While r <= Nr
        Ni = CFi(r)
        i = NFi(r)
        Nj = Cco(r)
        j = NCo(r)
        Do While i < NFi(r) + CFi(r)
            Do While j < NCo(r) + Cco(r)
                Texto = LCase(Cells(i, j).Value)
                Cells(i, j) = Texto
                j = j + 1
            Loop
            j = NCo(r)
            i = i + 1
        Loop
        r = r + 1
    Loop
Else
    MsgBox "No aplica a más de 128 áreas, y usted seleccionó " & AreaCount & ".", vbDefaultButton1, "David le recuerda:"
End If
End Sub
Responder Con Cita