Realizar reportes en excel

Hola de nuevo por aca estoy solicitando de su valiosa ayuda.

Tengo una hoja llamada registros, en donde en b9(fecha); c9(articulo);c10(entradas) d10(salidas). Tengo un formulario llamado reportes en donde deseo ingresar el nombre del articulo y que me genere un reporte del movimiento de este; osea las fechas, las salidas y las entradas pero no en excel si no en word.

gracias por su ayuda, que hace mas eficiente mi trabajo...

1

1 respuesta

1
Respuesta de

Hola, esta es tu solución: por un lado tenemos el evento INITIALIZE para cargar el combo con todos los artículos, y una vez seleccionado uno, pulsamos en el botón para ejecutar la macro commandbuttom que creará un informe en word.

Por un lado tenemos la hoja DATOS donde está la base de datos y por otro tenemos la hoja REPORTE donde creamos el informe previo a word.

Si necesitas el archivo dime tu mail para mandártelo.

Private Sub CommandButton1_Click()
Sheets("reporte").Range("a2:d" & Sheets("reporte").Range("a65000").End(xlUp).Row).Clear
articulo = ComboBox1.Value
Set busca = Sheets("datos").Range("c9:c1000").Find(articulo, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
ubica = busca.Address
Do
filalibre = Sheets("reporte").Range("a65000").End(xlUp).Row + 1
Sheets("reporte").Cells(filalibre, 1).Value = busca.Offset(0, -1)
Sheets("reporte").Cells(filalibre, 2).Value = busca
Sheets("reporte").Cells(filalibre, 3).Value = busca.Offset(0, 1)
Sheets("reporte" ).Cells(filalibre, 4).Value = busca.Offset(0, 2)
Set busca = Sheets("datos").Range("c9:c1000").FindNext(busca)
Loop While Not busca Is Nothing And busca.Address <> ubica
End If
Sheets("reporte").Range("a1").CurrentRegion.Copy
Set appword = CreateObject("word.application")
appword.Visible = True
appword.Activate
appword.documents.Add
appword.Selection.Paste
Application.CutCopyMode = False
End Sub
Private Sub UserForm_Initialize()
Sheets("datos").Select
Range("c10").Select
Do While ActiveCell.Value <>
If InStr(valor, ActiveCell) = 0 Then
valor = valor &","& ActiveCell
End If
ActiveCell.Offset(1, 0).Select
Loop
valor = Mid(valor, 2, Len(valor) - 1)
valor = Split(valor, ",")
For x = 0 To UBound(valor)
ComboBox1.AddItem valor(x)
Next
End Sub

Hola luismondelo gracias otra vez por dedicar parte de tu tiempo para esta consulta

quicewalther@hotmail.com

waquiro....

En la linea de código del userform_initialize

Do While ActiveCell.Value <>

me sale error de compilación error de sintaxis

gracias..

El error es porque la web tiene un problema y no me copia las comillas. Esa línea es así:

Do While ActiveCell.Value <> ""

Te mandaré el archivo por mail

Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje
¿No es la respuesta que estabas buscando? Puedes explorar otras preguntas del tema Microsoft Excel o hacer tu propia pregunta: