Hacer factura para imprimir

11/06/2006 - 12:16 por Josema | Informe spam
Hola de nuevo grupo, en esta ocasión quería preguntaros algo, sobre como
imprimir una factura. Veréis el tema es el siguiente. Abro un nuevo libro
con dos hojas llamadas "DatosCliente" y "Factura" en la primera tengo los
siguientes datos: Número de Factura, Nombre y Apellidos, Cantidad, Concepto
y Fecha.
Lo único que pretendo en la hoja factura, es que poniéndole el número de la
factura por ejemplo, 001, me imprima estos datos que tengo en
"DatosCliente", si pusiera 005, pues los datos correspondientes a ese otro
cliente, y así sucesivamente.
¿Podéis ayudarme a hacer esto? Muchas gracias por anticipado y un saludo.
Josema

Preguntas similare

Leer las respuestas

#6 Josema
13/06/2006 - 20:11 | Informe spam
Muchas gracias Iván, ahora mismo me pongo manos a la obra, espero que
ahora si que funcione. Veo que lo dominas bien, aunque dices que no.
Un saludo y muchas gracias.
Josema.


"Ivan" escribió en el mensaje
news:%236$
Hola Josema

Pon esta formula (la puedes copiar o trascribir, pero hazlo con ojo) en
cada una de las casillas que esta a continuacion del nombre del campo
(fecha, hora, turno-lo he puesto en f5 y f36-, cliente, concepto,
cantidad), y en el 2º "Factura nº" pones =$F$2. Por cierto, en la formula,
el rango de la hoja datos esta ajustado al maximo(A1:G11), lo suyo es que
lo cambies y le des margen para no tener que andar cambiandolo
continuamente; pej: cambia $G$11 por$G$** donde ** seria un nº mayor (tu
sabras tu nivel/velocidad de facturacion) que el numero de filas que
tengas en la hoja de datos.

FORMULA

=SI(O($F$2="";$F$2=0);"";SI(ESERROR(BUSCARV($F$2;DatosCliente!$A$1:$G$11;X;FALSO));"Nº
ERRONEO";BUSCARV($F$2;DatosCliente!$A$1:$G$11;X;FALSO)))

y luego cambias la X que va antes de ;FALSO por los siguientes numeros:

PARA:
>>fecha => 5 ; >>hora => 6 ; >>turno => 7 ; >>cliente => 2 ;

>>concepto => 4 ; >>cantidad => 3

lo repites en las dos zonas: factura y reporte. NOTA: si ves que te
incomoda mucho cuando se te pone como formula, puedes quitar el signo
igual mientras manipulas los datos y ponerselo cuando acabes de hacer los
cambios. Otro truco practico que quizas conozcas es cuando estas en una
celda dando a F2 el cursor se situa al final de lo que haya escrito en la
celda (evitando el dichoso doble click), y una vez dentro con inicio y fin
te ayudas.

En cuanto al problema con las fechas y horas, la verdad es que con
formulas no tengo mucha idea. Intenta una consulta especifica con el tema
o busca en el foro ( o via grupos de google), pues me suena que hay muchas
consultas al respecto.

De todas formas he estado intentando una solucion via codigo que te fuera
facil de manejar (no para lo de las fechas, que no creo que sea complicado
y si lo veo te lo mando), pero me da algun que otro error. Con tu permiso
voy a adjuntar a esta respuesta el codigo que estoy intentando para hacer
lo mismo que con la formula pero con eventos de hoja, por si algun
experto, o cualquiera que pueda, se anima a echar un vistazo.

En el modulo de una hoja("Factura", hoja2) he puesto este codigo (que
recoge datos de la hoja1 "DatosCliente" y los coloca en determinadas
celdas si cambia "F2") en el evento change y no acabo de ver donde/porque
se produce el bucle infinito que me obliga a cortar todas las veces desde
el administrador de tareas:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Celda As Range
Target = Range("f2")
If Target = "" Or Target = 0 Then
Exit Sub
Else
Application.ScreenUpdating = False
With Worksheets("DatosCliente")
For Each Celda In .Range(.Range("a1"), _
.Range("a65536").End(xlUp))
With Celda
If .Value = Target Then
Range("f33") = .Value
With .Offset(0, 1)
Range("c8") = .Value
Range("c39") = .Value
End With
With .Offset(0, 2)
Range("c10") = .Value
Range("c41") = .Value
End With
With .Offset(0, 3)
Range("c9") = .Value
Range("c40") = .Value
End With
With .Offset(0, 4)
Range("f3") = .Value
Range("f34") = .Value
End With
With .Offset(0, 5)
Range("f4") = .Value
Range("f35") = .Value
End With
With .Offset(0, 6)
Range("f5") = .Value
Range("f36") = .Value
End With
If MsgBox("¿Quieres imprimir ahora la factura?", _
vbYesNo) = vbNo Then
Exit Sub
Else
'' aqui la idea es imprimir si se quiere la factura pero
'' es aqui, o bien en el siguiente msgbox donde se bloquea
Worksheets("Factura").PrintPreview
Exit Sub
End If
Else
MsgBox ("El nº de factura no existe")
Exit Sub
End If
End With
Next
End With
Application.ScreenUpdating = True
End If
End Sub

Bueno, lo dicho, si algun experto (o no) esta echando un vistazo y se
anima a echar un cable, bienvenido sea.

Josema, si tienes algun problema comentalo, y no te fies mucho de mi.
De todas formas en cuanto tenga un rato y pueda dejartelo mas o menos bien
te devuelvo el archivo con las opciones que sean validas. En cualquier
caso con la formula de arriba deberia funcionar mas o menos bien.

Un saludo y hasta pronto
ivan


Respuesta Responder a este mensaje
#7 Josema
13/06/2006 - 20:37 | Informe spam
Hola de nuevo Iván, he seguido tus pasos (seguro que algo no lo he
puesto bien) el hecho es que no me funciona. Voy a enviártela para que veas.
He cambiado por los valores 3,4,5, etc., que me has comentado. Bueno casi
mejor lo ves y a ver si localizas el error.
Siento ser poco hábil para el tema y tener que molestarte tanto.
Un saludo y muchas gracias de nuevo
Josema
Respuesta Responder a este mensaje
#8 klomkbock
14/06/2006 - 01:33 | Informe spam
Hola Josema

Se que es una obviedad, pero el cambio de los datos se produce cuando
sales de la celda (intro, tab, etc) no cuando introduces el dato en ella.
En cualquier caso te he mandado el archivo con las formulas puestas, que a
mi si me funcionan.

A ver si hay suerte

Un saludo y hasta pronto
Ivan

Josema wrote:

Hola de nuevo Iván, he seguido tus pasos (seguro que algo no lo he
puesto bien) el hecho es que no me funciona. Voy a enviártela para que veas.
He cambiado por los valores 3,4,5, etc., que me has comentado. Bueno casi
mejor lo ves y a ver si localizas el error.
Siento ser poco hábil para el tema y tener que molestarte tanto.
Un saludo y muchas gracias de nuevo
Josema
Respuesta Responder a este mensaje
#9 klomkbock
14/06/2006 - 01:45 | Informe spam
Hola de nuevo, Josema

Disculpame, pero quizas estoy cometiendo un error de base. Al releer tu
primer mensaje me entra la duda de si lo que buscas es rellenar la factura
con los datos automaticamente o la impresion de la factura, si es esto
ultimo con la formula que te envio tienes que imprimir a mano, solo
rellena la factura. Para imprimir, creo que ya hay que irse al codigo (el
que expuse antes daba la opcion de ir a la vista previa -tambien se podria
imprimir directamente si tienes bien configurado el resultado- pero de
momento no he encontrado el fallo), aunque posiblemente tambien puedes
grabar una macro y asociarla a unas teclas.

Un saludo
Ivan

Josema wrote:

Hola de nuevo Iván, he seguido tus pasos (seguro que algo no lo he
puesto bien) el hecho es que no me funciona. Voy a enviártela para que veas.
He cambiado por los valores 3,4,5, etc., que me has comentado. Bueno casi
mejor lo ves y a ver si localizas el error.
Siento ser poco hábil para el tema y tener que molestarte tanto.
Un saludo y muchas gracias de nuevo
Josema
Respuesta Responder a este mensaje
#10 Josema
14/06/2006 - 13:14 | Informe spam
Hola Iván, y gracias por todo, me estas dedicando mucho tiempo y
esfuerzo. He probado la tabla y efectivamente, funciona bien, eso es lo que
quería. Para imprimir, no hay problema lo hago siguiendo los pasos manuales
de impresión, eso no es ningún problema, con el tiempo posiblemente quiera
mejorarla y añadirle algún botón o cosas de esas, pero eso me preocupa
menos, aunque hay que reconocer que esto engancha un poco y no para uno.
Mañana mismo estará puesta en funcionamiento en el trabajo, y luego poco
a poco ya iré haciendo lo de la hora fecha, etc..
Muchas gracias y un saludo
Josema
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida