Varias dudas sobre Microsoft Excel y el uso de condiciones en columnas de datos

Hola valedor, te escribo para hacerte 2 preguntas especificas. Aquí van:
1°:Cual será la condición para que si una casilla esta solo con "espacios" (independiente del número de espacios)
No me la tome como una casilla llena. Veras cuando hago un selection. End(xldown) si hay una casilla con espacios.. Me la toma como llena.
2°: Como hacer una condición para que si es una casilla existe cierto patrón, me lo pinte de un colo específico. Este patrón puede estar acompañado por otras palabras (p.e.: saldo transf1 p80, gasto transf1 p80, gasto transf1 p82) en el caso que dentro del rango estén estas 3 casilla, que me las pinte las 3 por el hecho de que dentro del contenido esta la palabra "transf1".
El rango de casillas es de más de 500 y las posibles combinaciones son muchas como para hacer una condición caso a caso 8asi la tengo por ahora... Pero es larguísima la macro).
Bueno vale, eso sería... Si no quedaron claras las dudas te agradeceré me contestes y me digas qué para poder aclararlo.
Agradecido:
fernando.

1 Respuesta

Respuesta
1
1.- Selection. end(xldown) siempre te hara eso, para el los espacios son "algo", asi que no es que la tome llena, si no que "efectivamente" hay algo, posibles soluciones; hacer una macro que recorra tus celdas y elimine los espacios en celdas, para no hacer dos macros, aprovecha ese ciclo y puedes realizar tu seleccion, pero lo mejor es procurar que no haya esos espacios, no tienen caso y solo dificultan la programacion
2.- Para este caso se me ocurre como primer posibilidad, crear una macro genérica más o menos así
Public Sub EstablecerColor (ByVal RangoDatos As RAnge, ByVal Criterio As String, ByVal Color As Long)
Dim c As Range
For Each c In RangoDatos
If c.Value = Criterio Then
c.Interior.ColorIndex = Color
End If
Next c
End Sub
Para usarla seria algo así
EstablecerColor "A2:E500", "tranf1", 10
OJO, observa como la comparación no esta completa, es decir, solo pintara las celdas que sean IGUALES al criterio, para que coloree las celdas que CONTENGAN el criterio hay que hacer unos cuantos cambios, pero esos te quedan de tarea.
1°-El problema se me presenta porque lleno una base de datos a través de un formulario. Si dejan un espacio en blanco... no hay problema, porque la macro revisa antes de anotar los datos si es que las textboxes estaán vacías. El problema es que si en una textbox ponen un (dos, tres... muchos) espacio(s), la macro anota igual el dato, osea pega en la base el contenido del textbox (espacios). De aquí surge el problem. Me gustaría poder revisar si las casillas tienen espacio(s), lo puedo hacer buscando coincidencias exactas:
if userform1.textbox1.value=" "
if userform1.textbox1.value=" "
if userform1.textbox1.value=" "
if userform1.textbox1.value=" "
Etc.
Pero los espacios pueden ser bastantes más y la macro quedaría cada vez más grande. La pregunta iva hacia allá.
¿Existe algún comando que haga eso por mi?
2.- Lo de la coincidencioa exacta ya lo hice, es más... así lo tengo hecho. La pregunta apuntaba exactamente hacia lo que "dejaste de tarea...", osea cuando las celdas "contengan" el criterio.
¿Existe algún comando que haga eso por mi?
No es que no me guste hacer tareas, pero la verdad me he quebrado la cvabeza algunos días tratando de hacerlo y no he podido... por eso pregunté.
Ojala y si me puedas aclarar más, si no es así... gracias de todas maneras por tu tiempo.
Agradecido:
fernando
1.- Supongamos que en un TextBox1 tenemos muchos espacios " ", para eliminarlos y verificar que un cuadro de texto este vacío usa la función Trim
Dim strDato As String
strDato = Trim(TextBox1.Text)
En la variable strDato, tendremos el valor del TextBox1, pero sin ningún espacio, solo te resta checar que no este vacía dicha variable
2.- Para solucionar esto, usa la funcion InStr
Public Sub Buscar()
Dim Pos As Long
Pos = InStr(1, "hola fer", "fer", vbTextCompare)
MsgBox Pos
End Sub
Bueno, ahora tu tarea, es ser más claro en tus preguntas he investigar la función Trim y la función InStr, en la ayuda vienen bastante bien explicadas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas