Realizar reportes en excel

Respuesta de
a
Usuario

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...

Avatar
Experto

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
 

 

Usuario

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

quicewalther@hotmail.com

waquiro....

Usuario

En la linea de código del userform_initialize

Do While ActiveCell.Value <>

me sale error de compilación error de sintaxis

 gracias..

Avatar
Experto

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

Usuario

he tenido un problema con el formato fecha  a la hora de copiar los datos en la hoja reporte por que  me aparecían como números; pero ya lo solucione ahora me falta  es la ubicación de los datos en la hoja reporte y en la de word:

Me explico mejor, en la columna donde me aparecen las fechas no me salen organizadas por decir algo, que me salgan  centradas y lo mismo para las otras columnas.

por lo general salen en desorden pero si es la idea central de lo que requiero.

por favor una revisa dita para mejorar la presentación

gracias

Dios los  bendiga..... waquiro

Avatar
Experto

Ya te mandé la corrección por mail

Usuario

Gracias  don luis mondelo  ya solo me falta acomodar los datos de l a empresa como encabezados y nombre de el reporte con su respectiva fecha .

excelente tu ayuda... waquiro

Dios te bendiga .