Macro excel

Una duda quiero pasar pasar información de una hoja de excel (base de datos origen) a otra hoja, ¿pero solo algunos datos de la linea como resultado de una búsqueda en la base de datos de un parámetro especifico
como lo hago?

1 Respuesta

Respuesta
1
Primero vincula la hoja de excel dentro de access, con Archivo->obtener datos externos->vincular.
Una vez hecho eso solo tienes que crear una consulta en SQL parecida a esta que te pongo pero con los datos que tu necesites
INSERT INTO tabla_nueva1 SELECT columna1,columna2 FROM tabla_vieja WHERE Criterios;
Aun no se como hacerlo funcionar:
1. ¿El de VB lo tengo que correr en access o en excel?
2. Me genera un error que dice que se esperaba fina de instrucción.
Gracias por el apoyo
Saludos
Dime los nombres de los archivos Excel y el nombre de la Tabla de la base de datos.
Los campos que deseas pasar y el criterio
Seguramente no me explique:
Tengo un listado de productos con cantidades y todo en una hoja de excel, de esa hoja de excel quiero mandar a una nueva solo los que cumplan con una condición (en este caso el nombre del producto), esto es toda la linea de ese producto enviarla a una nueva hoja dentro de un mismo libro.
Saludos
Para hacer eso seria sumamente mucho más fácil hacerlo en access que en excel, pero si aun así quieres hacerlo en excel, dime todos los campos que tienes (con sus nombres) y también dime la condición para hacerte el código para eso
Si es más fácil en access pues adelante por ese medio.
Mira el listado es así
OC(col 1) Producto(Col 2) Costo(Col 3) Proveedor(Col 4)
De la columna de producto quiero seleccionar el que se llame SN 100
Y enviarl toda la linea de ese producto a la Hoja 2 y así cada vez que suceda este evento.
Saludos
Ok
Lo haremos en Excel pues.
Primero crearemos una macro en VB.
Vas a Herramientas->Macro->Editor Visual Basic
Cuando se te abra el editor Insertas Modulo y en esa hoja pegas esto:
Sub Traspaso()
Dim x, y As Integer
x = 1
y = 1
Do Until Hoja1.Cells(x, "A") = ""
    If Hoja1.Cells(x, "B") = "SN 100" Then
        Hoja2.Cells(y, "A") = Hoja1.Cells(x, "A")
        Hoja2.Cells(y, "B") = Hoja1.Cells(x, "B")
        Hoja2.Cells(y, "C") = Hoja1.Cells(x, "C")
        Hoja2.Cells(y, "D") = Hoja1.Cells(x, "D")
        y = y + 1
    End If
    x = x + 1
Loop
End Sub
Y una vez pegado cierras la ventana del editor.
Luego vas a Herramientas->Macro->Macro seleccionas Traspaso y lo ejecutas.
He supuesto que en la Columna 1 OC siempre hay valor, así que cuando lo encuentra vacío se para.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas