Busco macro de excel para escribir en columna dependiendo de el color de una celda

Fernando, ya tengo el macro que busca y cambia el color de la celda, ahora necesito uno que si el color es "verde" escriba en la columna F fila (la que corresponda ) el valor 1

1 Respuesta

Respuesta
1
Me pregunto si quieres que lo haga en el mismo momento que "pinta" la celda.
(No veo ventaja a hacerlo después, pero depende de tu caso)
Si estuvieras de acuerdo, ésta sería la nueva versión:
Sub BuscaCelda()
Dim Buscar As String
Dim Nosta As Boolean
Sheets("Hoja1").Select
Buscar = Range("E3").Value
Nosta = True
If Buscar <> "" Then
For Each Hoja In ActiveWorkbook.Sheets
Hoja.Select
Hoja.Range("A1:A2000").Select
Set C = Selection.Find(Buscar)
If Not C Is Nothing Then
C.Select
C.Interior.ColorIndex = 4
Cells(ActiveCell.Row, 6).Value = 1
Nosta = False
End If
ActiveCell.Select
Next
'Notifica que no encontro nada
If Nosta Then MsgBox "Valor no encontrado"
'Liberamos la memoria
Set C = Nothing
Else
'Notifica que no se proporcionó dato a buscar
MsgBox "No hay nada que buscar"
End
End If
Sheets("Hoja1").Select
Range("E3").Select
End Sub
Me parece que esto debería resolver tu problema, pero dime si no.
Un abrazo!
Fernando
Fernando perfecto, tu macro hace lo que necesito.
Ahora el problema es el siguiente en la columna E tengo diferentes categorías (por ejemplo: agricultura, farmacéutica, cueros etc) lo que necesito es que una vez encontrado el dato cambiado el color en la celda, escrito el numero 1, para la siguiente búsqueda si ya en la categoría de la columna E hay un 1 pues escriba el siguiente 2 si hay un dos pues escriba el 3 así podre saber cuantos hay en cada categoría
Algo me confunde de tu planteo. Dices que en la columna E tienes categorías... Luego dices que si en la categoría de la columna E hay un 1 escriba el siguiente... (el uno debería estar en la columna F).
Además cuando dices "la siguiente búsqueda" te refieres a la búsqueda en la siguiente Hoja (durante el mismo procedimiento) o la búsqueda de otro código (en otro procedimiento)...
(a veces me cuesta...)
Bueno creo que es el último caso, si -de casualidad- acerté, prueba con este otra versión del mismo macro (agrega uno a lo que encuentre en la columna F):
Sub BuscaCelda()
Dim Buscar As String
Dim Nosta As Boolean
Sheets("Hoja1").Select
Buscar = Range("E3").Value
Nosta = True
If Buscar <> "" Then
For Each Hoja In ActiveWorkbook.Sheets
Hoja.Select
Hoja.Range("A1:A2000").Select
Set C = Selection.Find(Buscar)
If Not C Is Nothing Then
C.Select
C.Interior.ColorIndex = 4
Cells(ActiveCell.Row, 6).Value = Cells(ActiveCell.Row, 6).Value + 1
Nosta = False
End If
ActiveCell.Select
Next
'Notifica que no encontro nada
If Nosta Then MsgBox "Valor no encontrado"
'Liberamos la memoria
Set C = Nothing
Else
'Notifica que no se proporcionó dato a buscar
MsgBox "No hay nada que buscar"
End
End If
Sheets("Hoja1").Select
Range("E3").Select
End Sub
Pruebalo y/o corrigeme.
Fernando tienes toda la razón mi planteamineto es muy confuso, aquí voy de nuevo:
Tengo varias hojas en un libro, lo que necesito es que busque el dato que escribo en "hoja 1" celda B3 que cambie el color de la celda que contenga ese dato y que escriba el numero en la columna F (esto ya esta en el macro que me enviaste) lo nuevo es:
En la columna E hay diferentes categorías, si la búsqueda que hago es la primera de esa categoría pues debe escribir 1 si es la segunda 2 si la búsqueda corresponde a otra categoría en la fila E pues debe comenzar en 1.
Así al final podre saber cuantas búsquedas hay en cada categoría
si no me entiendes, solo preguntame de nuevo
OK, entiendo lo de las categorías en la Columna E.
Sin embargo me cuesta imaginar el proceso.
Supongamos que ingresas un valor en B3, busca en todas las hojas y donde encuentra coincidencia cambia de color la celda y deberá agregar un número según la categoría en la columna E.
La primera vez que busque un código, deberá poner indefectiblemente un 1.
Ahora bien ¿Pone 1 en todas las coincidencias que encuentre o va incrementando en 1 en la siguiente, dentro del mismo proceso?
Luego, colocas otro valor en al celda B3 y lanzas la macro.
Si la categoría es igual alguna encontrada antes deberá poner el valor siguiente para ese código. Si nunca se encontró alguna antes, otra vez coloca 1.
Sigue un tanto confuso el tema, pero supongo que podrás aclarármelo.
¿Probaste con el último código que te mandé?
¿En qué falla?
Espero tus comentarios para poder resolver esto.
Nos vemos!
Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas