Buen dia
Como Hacer Para Que Al Escribir En Celda D5 Se Active mi macro con esta formula
Esta Formula
SI.ERROR(BUSCARV(D5,A1:B3,2,0),"")
Saludos...........
//-->
Buen dia
Como Hacer Para Que Al Escribir En Celda D5 Se Active mi macro con esta formula
Esta Formula
SI.ERROR(BUSCARV(D5,A1:B3,2,0),"")
Saludos...........
¿a qué te refieres con que se active una macro con una fórmula?
¿quieres que la macro calcule esa fórmula?¿o quieres escribir esa fórmula en alguna celda?
------
Ya sé Excel, pero necesito más.
que la celda acrive la macro
que al escribir el valor a buscar se active la macro con la formula vlookup
saludos
La Hoja tiene un evento Worksheet_Change que detecta cambios en la hoja, tiene un argumento Target que es la celda o el rango que cambia.
Así que esa detección de que cambie lo escrito en la celda D5 podría ser algo parecido a esto.
Verás que compruebo la intersección de D5 con Target, esto es porque la celda D5 puede cambiar si tecleas algo en ella, pero también si copias varias celdas de golpe y las pegas en un rango en el que se encuentre la celda D5, por ejemplo si pegas en las celdas D1:D8 esta intersección con D5 dará como resultado un rango (por eso pongo que no es nada, not ... is nothing)
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D5")) Is Nothing Then
'pon aquí una llamada a tu macro
MsgBox "un saludo de necesitomas.com"
End If
End Sub
sobre la fórmula vlookup:
puedes utilizarla dentro del código VBA mediante worksheetfunction
Application.WorksheetFunction.VLookup( aquí pones los argumentos como si lo escribieras en una celda)
------
Ya sé Excel, pero necesito más.
ya me funciono en D5 se activa le saludo cada que se escribe algo ahi
pero como ago para que apartir de la D5 hacia abajo me funcione la formula y no solo en D5
SI.ERROR(BUSCARV(D5,A1:B3,2,0),"")
Saludos ....y Gracias .....
Veo que entonces lo que quieres es escribir la fórmula en las celdas.
Bueno, pues es parecido a como se escribe un valor en una celda, pero en vez de utilizar .value, utiliza .FormulaLocal
por ejemplo:
Activecell.FormulaLocal= "=SI.ERROR(BUSCARV(D5,A1:B3,2,0),"")"
Utilizo FormulaLocal para escribir la fórmula directamente en el idioma de tu versión de Excel, si empleas .Formula deberías escribirlo en inglés.
Por supuesto, en vez de activecell puedes emplear cualquier rango
Range("B2:C4").FormulaLocal="=SI.ERROR(BUSCARV(D5,A1:B3,2,0),"")"
dos advertencias:
No olvides poner el signo = para que lo interprete como una fórmula y no como un texto.
Atención a las referencias absolutas y relativas. no es lo mismo D5 que $D$5.
------
Ya sé Excel, pero necesito más.
si asi es como es ,pero deseo que esta formula la pueda correr alas celdeas de abajo en la D5 D6 D7 D8 etc..
Saludos...........
¿hasta donde, hasta la fila mil?
Range("D5:D1000").FormulaLocal=...
------
Ya sé Excel, pero necesito más.
exelente ya corre bien con la formula
la puse asi
.
Sub FBuscarV()
Range("d5:d100").FormulaLocal = "=BUSCARV(C5;A1:B5;2;0)"
End Sub
pero me pone NA# Cuando ya que no encuentra datos en las demas celdas
quisiera que no haga nada si no encuentra datos en c5
saludos...........
Si la matriz en la que buscas los datos está siempre en A1:B3, pon un símbolo $ delante:
SI.ERROR(BUSCARV(D5,A$1:B$3,2,0),"")
y como hago para que cuando no haye valor a buscar se brinque ala celda siguiente y que no me ponga la formula en esa celda, ya que nesesito poner comentarios en las celdas donde no hay valores a buscar columna D
saludos
y como hago para que cuando no haye valor a buscar se brinque ala celda siguiente y que no me ponga la formula en esa celda, ya que nesesito poner comentarios en las celdas donde no hay valores a buscar columna D
saludos