Como Exportar solo algunos datos de Excel

Hola, mi consulta es: tengo una planilla de Excel con datos. (Varias filas y columnas)
Ahora yo quiero hacer con macros, o similar una búsqueda de datos y solo exportar los datos buscados a otra planilla Excel para poder imprimirla sin modificar la original.
Ej: Planilla 4x4, datos:
Fecha/Nombre/Convenio/Cuota
19-7-09/Pepe/20/Nov
19-7-09/Carla/103/Jul
20-7-09/Thomas/20/May
-------
Yo quiero poner un botón que haga la búsqueda por convenios (el usuario elija que convenio buscar) y luego exporte todo a una planilla nueva para poder imprimirla.
Ej: Según la lista anterior:
Busco convenio 20 y luego me exporta los siguientes datos al nuevo listado.
PD: El encabezado también se debería copiar...
Resultado:
Fecha/Nombre/Convenio/Cuota
19-7-09/Pepe/20/Nov
20-7-09/Thomas/20/May
Bueno espero alguien me pueda ayudar y espero haber sido bastante claro.
Saludos, Diego.

1 respuesta

Respuesta
1
Este código te puede ayudar, solo cópialo y pégalo a tu editor VBA, te generará una nueva hoja y tu podrás hacerle los cambios que quieras para imprimir tus registroso que selecciones sin modificar tu hoja original.
Sub importar()
base = ActiveSheet.Name
dato = Application.InputBox("Proporcione el número de convenio a imprimir", Type:=1 + 2)
Worksheets.Add
ActiveSheet.Name = "Print"
Range("A1").Select
ActiveCell.Value = "Fecha"
ActiveCell.Font.Bold = True
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "Nombre"
ActiveCell.Font.Bold = True
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "Convenio"
ActiveCell.Font.Bold = True
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "Cuota"
ActiveCell.Font.Bold = True
Sheets(base).Select
Range("C2").Select
While ActiveCell.Value <> ""
        If ActiveCell.Value = dato Then
           ActiveCell.Offset(0, -2).Select
           Fecha = ActiveCell.Value
           ActiveCell.Offset(0, 1).Select
           nombre = ActiveCell.Value
           ActiveCell.Offset(0, 1).Select
           convenio = ActiveCell.Value
           ActiveCell.Offset(0, 1).Select
           cuota = ActiveCell.Value
           ActiveCell.Offset(0, -1).Select
           Sheets("Print").Select
           Range("A1").Select
           While ActiveCell.Value <> ""
                ActiveCell.Offset(1, 0).Select
           Wend
           fila1 = Row
           ActiveCell.Value = Fecha
           ActiveCell.Offset(0, 1).Select
           ActiveCell.Value = nombre
           ActiveCell.Offset(0, 1).Select
           ActiveCell.Value = convenio
           ActiveCell.Offset(0, 1).Select
           ActiveCell.Value = cuota
        End If
        Sheets(base).Select
        ActiveCell.Offset(1, 0).Select
Wend
Sheets("Print").Select
Range("A1").Select
End Sub
Hola excelinomano, desde ya muchas gracias por responder a la brevedad...
Estuve probando el código que me diste... y tengo una consulta como puedo hacer para que los datos que exporte desde mi planilla original, me los exporte a una planilla Excel NUEVA, porque este código lo que hace es reemplazar los datos de mi planilla original! Y si por algún motivo el usuario se equivoca y después de imprimir o antes guarda la planilla, me borraría la original... y tendríamos un desastre je je...
Se deberían exportar a una planilla nueva y que luego el usuario guarde esa info luego de imprimirla con otro nombre si lo desea...
PD: Una opción extra que si serias tan amable me podrías dar (como para tener dos) es que directamente la consulta se haga desde un Excel donde este el botón de consulta y me traiga las consultas SIN ABRIR MI PLANILLA ORIGINAL, y los datos exportados se vayan guardando en HOJAS 2,3,4, etc (dependiendo de las consultas realizadas) y de ahí se impriman. Claro que siempre dejando la HOJA 1 para el botón de consulta!.
Es una opción más que se podría llegar a hacer, con tu ayuda obviamente.
Desde ya muchas gracias...
Saludos, Diego
Con esta línea agregala al último del código que te dí en el post anterior (antes del End sub lógicamente) y con eso ya te generará un nuevo libro para que tus datos originales queden intactos. Esta es la línea:
Sheets("Print"). Move
Con lo segundo no te entendí bien qué es lo que quieres, por qué no cierras esta pregunta y haces otra detallándome más a fondo lo que pretendes que se haga.
Bueno ahora voy a modificar un poco el macro que me mandaste, me sirvió de mucha ayuda tu respuesta... cualquier duda que tenga te vuelvo a consultar.
Desde ya muchas gracias y que bueno es tener gente que sabe para que lo aconseje y ayude a uno...
Saludos, Diego.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas