FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
A ver si esto lo que quieres:
Código:
Sub MayuscMinusc() ' ' MayuscMinusc Macro ' Macro grabada el 12/02/2006 por Marcos 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) If Asc(Cells(ia, ja).Value) > 96 Then letras = UCase(Cells(ia, ja).Value) Cells(ia, ja) = letras ja = ja + 1 Else letras = LCase(Cells(ia, ja).Value) Cells(ia, ja) = letras ja = ja + 1 End If 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 End Sub
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
|||
|
|||
Hola Marcos
El codigo que me enviaste marca este error cuando ejecuto el macro: Se ha producido el error '5' en tiempo de ejecucion Argumento o llamada a procedimiento no valida y es en esta linea de codigo es donde lo marca:
Código:
If Asc(Cells(ia, ja).Value) > 96 Then |
#4
|
|||
|
|||
Disculpa Marcos
Ya encontré porqué me mandaba el error: lo que pasa es que escribia el texto en diferente celdas y lo seleccionaba con otras celdas vacias.
Otro favor como comparo las celdas vacias para que cuando ejecute el macro si encuentra celdas vacias que no lo tome en cuenta sino que haga la conversion a todas aquellas celdas que contengan texto. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Defecto grave de Excel al estar celda en estado de edición | Al González | Servers | 4 | 25-06-2016 01:09:59 |
Llevar desde Excel a una BD paradox | DarkSide | Servers | 39 | 08-09-2011 14:58:23 |
Esperar hasta que se cierre Excel | Er_Manué | Varios | 2 | 28-10-2005 04:08:18 |
Manipulacion de macros en excel desde delphi | vick | Conexión con bases de datos | 2 | 27-10-2005 23:11:31 |
generación de planilla excel super rapido | acertij022 | Servers | 5 | 13-02-2004 15:27:31 |
|