BUSCAR LETRAS EN CELDAS

08/09/2005 - 06:16 por DANILO ARANGO | Informe spam
Hola Foro

Alguien me puede ayudar: necesito buscar en las celdas de una columna si hay
datos con letras o simbolos por ejem:

columa A
1 789455
2 45877
3 AW5875
4 458-4846
Es este caso las fila 3 tiene letras y la fila 4 tiene un simbolo -, lo que
busco es una macro que me recorra toda la columna hasta donde tenga celdas
con datos si no encuentra datos con letras o simbolos me ejecuta una macro
pero si encuentra me ejecuta otra.
Sera posible esto ?

De antemano muchas gracias

Danilo A.

Preguntas similare

Leer las respuestas

#1 KL
08/09/2005 - 07:05 | Informe spam
Hola Danilo,

Segun como quieres tratar los espacios intercalados, los siguientes mactros
deberan darte las ideas iniciales:

Saludos,
KL

Sub Test1()
For Each c In Range("A1:A10")
If IsEmpty(c) Then
ElseIf IsNumeric(Replace(c, " ", "")) Then
c.Offset(, 1) = "NUMERO"
Else
c.Offset(, 1) = "TEXTO"
End If
Next
End Sub

Sub Test2()
For Each c In Range("A1:A10")
If IsEmpty(c) Then
ElseIf IsNumeric(c) Then
c.Offset(, 1) = "NUMERO"
Else
c.Offset(, 1) = "TEXTO"
End If
Next
End Sub
Respuesta Responder a este mensaje
#2 Héctor Miguel
08/09/2005 - 07:25 | Informe spam
hola, Danilo !

... necesito buscar en las celdas de una columna si hay datos con letras o simbolos por ejem:
columa A
1 789455
2 45877
3 AW5875
4 458-4846
... fila 3 tiene letras y la fila 4 tiene un simbolo -
... busco... macro que me recorra toda la columna hasta donde tenga celdas con datos
... si no encuentra datos con letras o simbolos me ejecuta una macro pero si encuentra me ejecuta otra.



sin mas comentarios... combina las propuestas siguientes con lo que ya te ha propuesto KL y...
tendras una extensa variedad de posibilidades iniciales para terminar de 'armar' el codigo que necesitas :))
=> analiza los 'resultados de comparar' y utiliza SOLO una de las opciones application.run <= OJO ;)

saludos,
hector.

Sub Ejecuta_Macros_Segun_Celda()
Dim Celda As Range
For Each Celda In Selection
Application.Run IIf(IsNumeric(Celda), "Macro1", "Macro2")
Application.Run IIf(Celda Like "*[-A-Za-z]*", "Macro3", "Macro4")
Next
End Sub
Private Sub Macro1()
MsgBox """Vale"" como solo numeros"
End Sub
Private Sub Macro2()
MsgBox "Contiene otros caracteres"
End Sub
Private Sub Macro3()
MsgBox "SI contiene literales o ""-"""
End Sub
Private Sub Macro4()
MsgBox "NO contiene literales o ""-"""
End Sub
Respuesta Responder a este mensaje
#3 DANILO ARANGO
09/09/2005 - 06:34 | Informe spam
Hola HM y KL
Me sirvieron mucho las macros, pero les cuento que necestio es que no me
ejecute la macro cada vez que encuentre una celda con leras o simbolossi no
que si en un rango dado encuentra letras o simbolos me ejecuta la macro no
importa si hay varias o una sola.

Aunque se podria hacer que con solo encontrar la primera celda con letras o
simbolos me ejecute la macro y no siga buscanco mas.

Gracias por su ayuda

Danilo A.



"Héctor Miguel" escribió:

hola, Danilo !

> ... necesito buscar en las celdas de una columna si hay datos con letras o simbolos por ejem:
> columa A
> 1 789455
> 2 45877
> 3 AW5875
> 4 458-4846
> ... fila 3 tiene letras y la fila 4 tiene un simbolo -
> ... busco... macro que me recorra toda la columna hasta donde tenga celdas con datos
> ... si no encuentra datos con letras o simbolos me ejecuta una macro pero si encuentra me ejecuta otra.

sin mas comentarios... combina las propuestas siguientes con lo que ya te ha propuesto KL y...
tendras una extensa variedad de posibilidades iniciales para terminar de 'armar' el codigo que necesitas :))
=> analiza los 'resultados de comparar' y utiliza SOLO una de las opciones application.run <= OJO ;)

saludos,
hector.

Sub Ejecuta_Macros_Segun_Celda()
Dim Celda As Range
For Each Celda In Selection
Application.Run IIf(IsNumeric(Celda), "Macro1", "Macro2")
Application.Run IIf(Celda Like "*[-A-Za-z]*", "Macro3", "Macro4")
Next
End Sub
Private Sub Macro1()
MsgBox """Vale"" como solo numeros"
End Sub
Private Sub Macro2()
MsgBox "Contiene otros caracteres"
End Sub
Private Sub Macro3()
MsgBox "SI contiene literales o ""-"""
End Sub
Private Sub Macro4()
MsgBox "NO contiene literales o ""-"""
End Sub



Respuesta Responder a este mensaje
#4 Héctor Miguel
09/09/2005 - 09:38 | Informe spam
hola, Danilo !

... necestio que no me ejecute la macro cada vez que encuentre una celda con leras o simbolos
... si en un rango dado encuentra letras o simbolos me ejecuta la macro no importa si hay varias o una sola [...]



siguiendo con la propuesta del metodo 'Application.Run "NombreDeLaMacro"'...
prueba con la siguiente variante...
en un modulo de codigo 'normal' ==Sub EjecutarMacroSegunTextoEnRango()
Application.Run _
IIf(Application.CountIf(Range("a1:a4"), "*"), _
"MacroSiTexto", "MacroSiNOTexto")
End Sub
Private Sub MacroSiTexto()
MsgBox "En el rango SI hay textos o simbolos"
End Sub
Private Sub MacroSiNOTexto()
MsgBox "En el rango SOLO hay numeros"
End Sub

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida