Aplicar una Macro como evento "Private Sub Worksheet_SelectionChange(ByVal Target As Range)"

Dante Amor en la pregunta que esta en este link

MACRO buscar dato de una celda en otra archivo de excel y copiar un dato al costado de la celda seleccionada

Me diste un Macro que si funciona en los ejemplos de DATOS1 Y DATOS2, pero cuando lo quize aplicar caso practico no pude activar la Macro ya que no la podia grabar. Aqui te anexo la imagen del caso.

Lo que hice en un 1er momento iguale datos con la funcion "&" como veras en las columnas color "lucma", luego compare con la funcion "contar.si" (columna "L") y condirme que la valorizacion del kardex se hizo con igv. Ahora lo que quiero es "jalar" los datos de "V1" (VOUCHER1) y "BASE IMP 1" del "REGISTRO DE COMPRAS ENERO 2014" (columnas pintadas de amarillo) a las columnas "J" y "K" del "KARDEX ENERO 2014". Para esto he copiado como valor en las columnas de color "celestes" las formulas de la columna de color "lucma" ya que no creo que la comparacion se pueda hacer directamente entre las columnas "lucma" ya que son formulas y lo que yo quiero comprarar son resultados.

Bueno el resultado es que en cada factura del kardex que aparece en la columna "A" yo obtenga su "VOUCHER 2" (columna "J") y su "BASE IMP 2" (columna "K") respectiva. Te envio los archivos a tu yahoo.

1 respuesta

Respuesta
1

Puedes explicarme lo que necesitas con un ejemplo.

En el archivo que me enviaste no viene explicado un ejemplo.

¿Quieres qué la macro se ejecute en automático cuando capturas un dato? ¿En qué columna?

¿O quieres que se ejecute al presionar un botón?

Hola Dante Amor, como te dije es una aplicación a mi pregunta anterior “MACRO buscar dato de una celda en otra archivo de excel y copiar un dato al costado de la celda seleccionada”, bueno que es lo que quiero del Macro:

La Macro compara columnas entre 2 archivos y trae 2 datos del 2do archivo y los coloca al costado derecho, explico:

1) La Macro tiene que funcionar en el archivo "KARDEX01.xls".

2) Pregunta ¿LIBRO Y COLUMNA DE "KARDEX01.xls" A COMPARAR?, respondo libro "VALOR" y columna "J" (VALOR2).

3) Pregunta ¿CON QUE ARCHIVO SE RELACIONA "KARDEX01.xls"?, respondo con "CONTA01.xls"

4) Pregunta ¿LIBRO Y COLUMNA DE "CONTA01.xls" A COMPARAR?, respondo libro "COMPRAS" y columna "R" (VALOR1).

5) Pregunta ¿COLUMNAS A EXTRAER DATO DE "CONTA01.xls"?, respondo columna "A" (V1) y columna "H" (BASE IMP 1).

6) coloco cursor en la celda "J5" osea dato "1189461 - 89133.45"

7) inmediatamente la MACRO busca dicho dato en "CONTA01.xls", y lo encuentra en la celda "R430" (VALOR1).

8) datos a extraer celda "430" = "423" y celda "H430" = "75536.85".

9) dichos datos los reemplaza en el archivo "KARDEX01.xls", libro "COMPRAS", en las celdas "J5" y "k5" respecivamente.

2da BUSQUEDA Y REEMPLAZO

10) coloco el cursor en la celda "I6" = "152 - 1180", repitiendo el punto del (7) al (9).

11) ahora supongamos que al poner el cursor en la celda "I6" no encuentra el citado dato en el archivo "CONTA01.xls" llenara lo siguiente en el "KARDEX01.xls", en la celda "J6" = "vacio1"  y en la celda "K6" = "vacio2".

Los archivos ya te los envie a tu yahoo, saludos, JOHNMOR41

Yo creo que me diste otro archivo

Me enviaste este archivo

"KX MP ENE 2014"

Y este otro

"ENE 2014 CONTA"

En el primer archivo no hay una hoja "compras", hay una hoja "VOU.COMPRAS"

Puedes revisar los archivos y enviarme los correctos

Si Dante exacto esos mismos son: (1) "kX MP ENE 2014.xls" = "KARDEX01.xls" y (2) "ENE 2014 CONTÁ.xls" = "CONTA01.xls", los renombre para poder explicarte que es lo quería que haga la MACRO (es más para poder ejecutar la MACRO pienso renombrar dichos nombres LARGOS por estos CORTOS ya que son más prácticos de usar.

Bueno esto es lo que contiene cada archivo

"kX MP ENE 2014.xls" = "KARDEX01.xls",y este archivo contiene un libro es "VALOR" y en este libro tenemos las siguientes colummnas:

1) "VALOR2" (columna "I").- esta la columna esta pintada de CELESTE, y es la que contiene el dato que se RELACIONA con el archivo "CONTA01.xls".

2) "VOUCER 2" (columna "J") y "BASE IMP 2" (columna "K").- Son las columnas pintadas de "amarillo", cuyos datos vienen del archivo "CONTA01.xls"

y

"ENE 2014 CONTA.xls" = "CONTA01.xls", y este archivo el libro "COMPRAS", y en este libro tenemos las siguientes columnas:

3) "VALOR1" (columna "R").- Esta la columna esta pintada de CELESTE, y es la que contiene el dato que se RELACIONA con el archivo "KARDEX01.xls".

4) "VOUCHER 2" (columna "J") y "BASE IMP 2" (columna "K").- Son las columnas pintadas de "amarrillo", cuyos datos van a ir al archivo "KARDEX01.xls".

Saludos, JOHNMOR41

La macro debe ir en los eventos de tu hoja

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Columns("I")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        With Range("J:K").Interior
            .Pattern = xlNone
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        Set h2 = Workbooks("ene 2014 conta.xls").Sheets("compras")
        '
        Set b = h2.Range("R:R").Find(Target.Value, lookat:=xlWhole)
        If Not b Is Nothing Then
            Target.Interior.ColorIndex = 6
            h2.Activate
            With h2.Range("S:T").Interior
                .Pattern = xlNone
                .TintAndShade = 0
                .PatternTintAndShade = 0
            End With
            b.Select
            h2.Range("S" & b.Row, "T" & b.Row).Interior.ColorIndex = 4
            Cells(Target.Row, "J") = h2.Cells(b.Row, "A")
            Cells(Target.Row, "K") = h2.Cells(b.Row, "H")
            ThisWorkbook.Activate
        End If
    End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)

Saludos. Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas