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