Extraccion de Caracteres

11/05/2005 - 03:22 por Johann Romero | Informe spam
Hola, tengo varias celdas que contienen palabras en "MAYUSCULAS" y palabras
seguidas en "minusculas", lo que quiero es como podria hacer una macro o
formula la cual me elimine las palabras que esten en minusculas, quedando
solo las palabras en MAYUSCULAS.

Como dije, tengo varias celdas, y en cada celda pues existen alrededor de 10
palabras, entre las cuales son 4 palabras Mayusculas y el resto minusculas.

Gracias

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
11/05/2005 - 08:56 | Informe spam
hola, Johann !

... varias celdas que contienen palabras en "MAYUSCULAS" y... "minusculas"
... macro o formula... elimine las... minusculas, quedando solo las... MAYUSCULAS.
... en cada celda... existen alrededor de 10 palabras... 4... Mayusculas y el resto minusculas.



[creo que para este caso 'en particular'] es preferible definir una funcion personalizada :-(
[igual y se puede lograr con funciones de hoja de calculo, aunque 'el largo' de la formula... ?]
prueba/usa la siguiente funcion como a las 'normales' de excel
devolvera [solo] las mayusculas si utilizas [p.e.] =SoloMayMin(A1)
o minusculas con el argumento -opcional- [p.e.] =SoloMayMin(A1,1) o.. [p.e.] =SoloMayMin(A1,Verdadero)
el primer 'Case 32, 44 To 47' es por si quieres 'permitir' que se agreguen 'separadores' [como espacio, coma, etc.]

si cualquier duda... comentas?
saludos,
hector.
en un modulo de codigo 'normal' ==Function SoloMayMin(Celda As Range, Optional EnMin As Boolean = False) As String
Dim Pos As Integer, Mayusculas As String, Minusculas As String
Mayusculas = ""
Minusculas = ""
For Pos = 1 To Len(Celda)
Select Case Asc(Mid(Celda, Pos, 1))
Case 32, 44 To 47
Mayusculas = Mayusculas & Mid(Celda, Pos, 1)
Minusculas = Minusculas & Mid(Celda, Pos, 1)
Case 65 To 90: Mayusculas = Mayusculas & Mid(Celda, Pos, 1)
Case 97 To 122: Minusculas = Minusculas & Mid(Celda, Pos, 1)
End Select
Next
SoloMayMin = Application.Trim(IIf(EnMin, Minusculas, Mayusculas))
End Function
Respuesta Responder a este mensaje
#2 KL
11/05/2005 - 13:09 | Informe spam
Hola chicos,

Solo quisiera ofrecer otra manera de hacer (casi) lo mismo. La diferencia es
que esta funcion permite todos los caracteres que no distiguen entre
mayusculas y minusculas como (p.ej. los espacios, las cifras, signos de
puntuacion, operadores matematicos, etc). Si la idea es omitirlos todos
menos lo espacios, entonces solo habria que modificar esta parte del codigo:

If Letra = LCase(Letra) Then
Mayusc = Mayusc & Letra
Minusc = Minusc & Letra
Else

para que aparezca asi:

If Letra = LCase(Letra) Then
If Letra = " " Then
Mayusc = Mayusc & " "
Minusc = Minusc & " "
End If
Else

El unico posible problema que les veo a ambos codigos, es que como no
evaluan palabras sino caracteres, las palabras mixtas saldrian incompletas,
p.ej: "Johann" saldria como "ohann" o "J". Pero igual es lo que se busca (?)

Saludos,
KL

Function SoloMayMin(Celda As Range, Optional EnMin As Boolean = False) As
String
Dim Pos As Integer, Letra As String, Mayusc As String, Minusc As String
For Pos = 1 To Len(Celda)
Letra = Mid(Celda, Pos, 1)
If Letra = UCase(Letra) Then
If Letra = LCase(Letra) Then
Mayusc = Mayusc & Letra
Minusc = Minusc & Letra
Else
Mayusc = Mayusc & Letra
End If
Else
Minusc = Minusc & Letra
End If
Next Pos
SoloMayMin = Application.Trim(IIf(EnMin, Minusc, Mayusc))
End Function
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida