Hola estoy tratando de crear una macro que me busque una intersección.

Tengo en hoja 1 una planilla que cargo datos(nombres y periodos) y en hoja 3 tengo en la columna A2 hacia abajo tengo 365 nombre y desde B1 hacia la derecha los periodos(ene-14, feb-14, etc)

Yo necesito programar que cuando cargue los datos en hoja1 busque en hoja 3 la intersección del nombre y el periodo y le coloque "P". ¿Se podrá hacer eso?. Por que me estoy volviendo loco.

Solo macro necesito, por que no me sirve la función INDICE Y COINCIDIR, ya que necesito anexar a la macro base.

Desde ya muchas gracias

1 Respuesta

Respuesta
1

En la hoja1 cómo tienes los datos, ¿en qué columnas?

En dónde quieres la "P"

Puedes poner un ejemplo de datos, ¿cómo lo tienes en hoja1 y cómo lo tienes en la hoja3?

¿En la hoja1 tienes varios nombres con su respectivo periodo?

¿Quieres qué la macro revise todos los nombres de la hoja1 y los busque en la hoja3?

¿O solamente quieres que busque el nombre que capturas?

Los datos se van cargando mediante MsgBox y se van descargando en cada columna, lo que necesito es que cada ves que cargue valla a la hoja 3

Busque la intersección del nombre y periodo y pegue una "P" de pagado cualquier cosa. ¿Soy más claro ahora?

Te agradezco tu prediposicion. Saludos

Definitivamente ahora es más claro, pero ahora tengo que saber en qué fila estás agregando datos con el "MsgBox", supongo que debe ser con un InputBox, porque con el MsgBox no se pueden agregar datos. Si estoy en lo correcto, supongo que primero localizas la fila y empiezas a agregar los datos, entonces la fila es la de la celda activa.

También puedo observar que en la hoja1 capturas una fecha, pero no pusiste un ejemplo, cómo pones la fecha, por ejemplo pones 26-¿Dic-2014? O pones dic-14, ¿lo qué pones es una fecha o un texto?

Ahora en la hoja3 tienes esto: nov-14, dic-14, no sé si es una fecha o un texto, si es una fecha y en el formato de la celda solamente tienes mes-año, entonces qué tienes por fecha, 1-dic-2014, para realizar a búsqueda esto es necesario.

Suponiendo que si tienes fechas, y que la celda activa es la que quieres buscar, pon la siguiente macro después de tu último InputBox.

Sub PonerP()
'Por.Dante Amor
    f = ActiveCell.Row
    nom = Cells(f, "A")
    fec = DateSerial(Year(Cells(f, "B")), Month(Cells(f, "B")), 1)
    Set h = Sheets("Hoja3")
    Set b = h.Columns("A").Find(nom, LookAt:=xlPart)
    If Not b Is Nothing Then
        fila = b.Row
        Set c = h.Rows(1).Find(fec)
        If Not c Is Nothing Then
            h.Cells(fila, c.Column) = "P"
            MsgBox "Pago actualizado", vbInformation, "PonerP"
        Else
            MsgBox "No se encontró el periodo", vbExclamation, "PonerP"
        End If
    Else
        MsgBox "No se encontró el nombre", vbCritical, "PonerP"
    End If
End Sub

Si los datos son diferentes a lo que estoy suponiendo, podrías explicarme cómo los tienes. O envíame tu archivo con la macro y le adapto mi macro.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario y el título de esta pregunta.

Avísame en esta pregunta cuando me lo hayas enviado.


Enviado al mail

Listo te envié el archivo, puedes ver la macro después de esta línea

Verificar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas