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

#1 Héctor Miguel
12/06/2006 - 02:28 | Informe spam
hola, Josema !

... el tema es... un... libro con dos hojas... "DatosCliente" y "Factura"
en la primera tengo... Numero de Factura, Nombre y Apellidos, Cantidad, Concepto y Fecha.
... pretendo en la hoja factura... poniendole el numero 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 asi sucesivamente...



para 'combinar' una plantilla/formato/pantalla/... con una 'base de datos'...
y dependiendo de en que celda 'pongas' el dato 'a buscar' [como p.e. la factura 005 o la que sea]...
y en cuales celdas debieras 'recibir' el resultado de la busqueda -?- podrias [como minimo]...

op 1: usar funciones [p.e. buscarv] para 'traer' de la base de datos a los 'campos' en la plantilla
op 2: incrustar objetos [como combos, validaciones, etc.] para 'minimizar el riesgo' de errores
op 3: diseñar formularios de usuario [y usar codigo] para 'amenizar' la 'captura' de los datos
op 4: 'combinar' las opciones anteriores.

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Josema
12/06/2006 - 14:47 | Informe spam
Gracias por tu respuesta Héctor, pero es demasiado complicado para mi.
Solo pretendía que cuando haga una factura (más bien es un pequeño recibo,
no necesita grandes cosas) se lo pudiera imprimir. Cuando llega otro, pues
imprimir el del otro y así sucesivamente. Había pensado que Excel entendiera
que imprimir todos los campos (es decir los que tengo) por el número de
factura, pero me da igual que fuera otro criterio.
Mira para que te hagas una idea sería esto: (Para DatosCliente)

Número de Factura Apellidos y Nombre Cantidad Concepto Fecha Hora
Turno
001 Ruíz Del Olmo, Juan Luis 500,00 ? Combustible domingo, 11
de junio de 2006 14:39 T
002 Dieguez Pelaez, Morcillo 100,00 ? Dietas 14:39 T
003 Cuellar Alverez, Luis Hotel 14:39 T
004 Monaz Touru, Loui Comida 14:39 T
005 Martinez Blanco, Juan Averia 14:39 T
007 Martinez Blanco, Elvira Teléfono 14:39 T


En Turno, es para recoger que si son más de las 14:00 horas aparezca T (de
turno de tarde) y si es anterior M (de turno mañana) pero ese pequeño
detalle me daría lo mismo, si es lioso no lo pongo. Entre otras cosas
quitaría tambien la fecha automática y la pondría a mano, por que cada vez
que entro en Excel me pone la del momento y lo que quiero es que quede la
del momento de hacer la factura, no que la cambie.
Por lo que respecta a la hoja factura (la que imprimiría) sería la
siguiente:


Logo de la Empresa

Trasportes Internacionales Factura Núm. 00001
Filial de Valladolid Fecha 11 de junio de 2006
Hora 14:44



Cliente
Concepto
Cantidad







Si puedes ayudarme en alguna cosa, tanto tú como cualquiera de las personas
que participan en el foro, os lo agradecería, además me quitaría un montón
de trabajo.
Un saludo y muchas gracias.
Josema
Respuesta Responder a este mensaje
#3 klomkbock
13/06/2006 - 03:22 | Informe spam
Hola Josema

Creo que la funcion BuscarV seria la que te haria el apaño. Echal un
istazo en la ayuda pues no es demasiado complicada. Supongo que te valdria
algo asi:

En la hoja "Factura":

Si en la celda A1 (puede ser cualquiera) es donde introduces el nº de
factura, y en la hoja de los datos estos estan pej. en el rango A1:F100 (y
suponiendo que en la columna a esta el nº de factura -en la 1ª columna del
rango-), en las celdas (de "Factura") en que deban ir los restantes datos
introduces algo parecido a esto:

=SI($A&1="";"";BUSCARV($A$1;NombreDeLaHojaDeDatos!$a$1:$f$100;aqui el nº
de la columna(de la hoja de datos) del dato que quieres que aparezca;aqui
falso si los datos no estan ordenados y si si verdadero))

un ej. sin tanto rollo :
=SI($A$1="";"";BUSCARV($A$1;HOJADATOS!$A$1:$F$100;3;FALSO))

El rango de la hoja de datos puedes ponerlo, cuando llegues a ese punto,
clicando en la hoja y seleccionando el rango en el que te interese buscar.
Conviene que te asegures de que los signos de dolar preceden a los rangos,
aunque al o desplazar la busqueda quizas no importe. Si pones la hoja a
mano asegurate de poner el signo de exclamacion. Y por ultimo antes de
hacer nada echa un vistazo a la ayuda, trabaja sobre copias y no te fies
mucho de mi.

Esperoque te valga mientras vuelve hector.
Un saludo y hasta pronto
ivan

Josema wrote:

Gracias por tu respuesta Héctor, pero es demasiado complicado para mi.
Solo pretendía que cuando haga una factura (más bien es un pequeño recibo,
no necesita grandes cosas) se lo pudiera imprimir. Cuando llega otro, pues
imprimir el del otro y así sucesivamente. Había pensado que Excel entendiera
que imprimir todos los campos (es decir los que tengo) por el número de
factura, pero me da igual que fuera otro criterio.
Mira para que te hagas una idea sería esto: (Para DatosCliente)

Número de Factura Apellidos y Nombre Cantidad Concepto Fecha Hora
Turno
001 Ruíz Del Olmo, Juan Luis 500,00 ? Combustible domingo, 11
de junio de 2006 14:39 T
002 Dieguez Pelaez, Morcillo 100,00 ? Dietas 14:39 T
003 Cuellar Alverez, Luis Hotel 14:39 T
004 Monaz Touru, Loui Comida 14:39 T
005 Martinez Blanco, Juan Averia 14:39 T
007 Martinez Blanco, Elvira Teléfono 14:39 T


En Turno, es para recoger que si son más de las 14:00 horas aparezca T (de
turno de tarde) y si es anterior M (de turno mañana) pero ese pequeño
detalle me daría lo mismo, si es lioso no lo pongo. Entre otras cosas
quitaría tambien la fecha automática y la pondría a mano, por que cada vez
que entro en Excel me pone la del momento y lo que quiero es que quede la
del momento de hacer la factura, no que la cambie.
Por lo que respecta a la hoja factura (la que imprimiría) sería la
siguiente:


Logo de la Empresa

Trasportes Internacionales Factura Núm. 00001
Filial de Valladolid Fecha 11 de junio de 2006
Hora 14:44



Cliente
Concepto
Cantidad







Si puedes ayudarme en alguna cosa, tanto tú como cualquiera de las personas
que participan en el foro, os lo agradecería, además me quitaría un montón
de trabajo.
Un saludo y muchas gracias.
Josema
Respuesta Responder a este mensaje
#4 Josema
13/06/2006 - 12:23 | Informe spam
Gracias Iván, he tratado de adaptar la formula a mis necesidades pero no lo
he conseguido, voy a tratar de enviártelo a la dirección de correo que veo
abajo a ver que te parece. (espero acertar a quitar las K)
Un saludo y gracias
Josema

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

Creo que la funcion BuscarV seria la que te haria el apaño. Echal un
istazo en la ayuda pues no es demasiado complicada. Supongo que te valdria
algo asi:

En la hoja "Factura":

Si en la celda A1 (puede ser cualquiera) es donde introduces el nº de
factura, y en la hoja de los datos estos estan pej. en el rango A1:F100 (y
suponiendo que en la columna a esta el nº de factura -en la 1ª columna del
rango-), en las celdas (de "Factura") en que deban ir los restantes datos
introduces algo parecido a esto:

=SI($A&1="";"";BUSCARV($A$1;NombreDeLaHojaDeDatos!$a$1:$f$100;aqui el nº
de la columna(de la hoja de datos) del dato que quieres que aparezca;aqui
falso si los datos no estan ordenados y si si verdadero))

un ej. sin tanto rollo :
=SI($A$1="";"";BUSCARV($A$1;HOJADATOS!$A$1:$F$100;3;FALSO))

El rango de la hoja de datos puedes ponerlo, cuando llegues a ese punto,
clicando en la hoja y seleccionando el rango en el que te interese buscar.
Conviene que te asegures de que los signos de dolar preceden a los rangos,
aunque al o desplazar la busqueda quizas no importe. Si pones la hoja a
mano asegurate de poner el signo de exclamacion. Y por ultimo antes de
hacer nada echa un vistazo a la ayuda, trabaja sobre copias y no te fies
mucho de mi.

Esperoque te valga mientras vuelve hector.
Un saludo y hasta pronto
ivan

Josema wrote:

Gracias por tu respuesta Héctor, pero es demasiado complicado para mi.
Solo pretendía que cuando haga una factura (más bien es un pequeño
recibo,
no necesita grandes cosas) se lo pudiera imprimir. Cuando llega otro,
pues
imprimir el del otro y así sucesivamente. Había pensado que Excel
entendiera
que imprimir todos los campos (es decir los que tengo) por el número de
factura, pero me da igual que fuera otro criterio.
Mira para que te hagas una idea sería esto: (Para DatosCliente)



Número de Factura Apellidos y Nombre Cantidad Concepto Fecha Hora
Turno
001 Ruíz Del Olmo, Juan Luis 500,00 ? Combustible domingo,
11
de junio de 2006 14:39 T
002 Dieguez Pelaez, Morcillo 100,00 ? Dietas 14:39 T
003 Cuellar Alverez, Luis Hotel 14:39 T
004 Monaz Touru, Loui Comida 14:39 T
005 Martinez Blanco, Juan Averia 14:39 T
007 Martinez Blanco, Elvira Teléfono 14:39 T




En Turno, es para recoger que si son más de las 14:00 horas aparezca T
(de
turno de tarde) y si es anterior M (de turno mañana) pero ese pequeño
detalle me daría lo mismo, si es lioso no lo pongo. Entre otras cosas
quitaría tambien la fecha automática y la pondría a mano, por que cada
vez
que entro en Excel me pone la del momento y lo que quiero es que quede la
del momento de hacer la factura, no que la cambie.
Por lo que respecta a la hoja factura (la que imprimiría) sería la
siguiente:




Logo de la Empresa



Trasportes Internacionales Factura Núm. 00001
Filial de Valladolid Fecha 11 de junio de 2006
Hora 14:44





Cliente
Concepto
Cantidad









Si puedes ayudarme en alguna cosa, tanto tú como cualquiera de las
personas
que participan en el foro, os lo agradecería, además me quitaría un
montón
de trabajo.
Un saludo y muchas gracias.
Josema





Respuesta Responder a este mensaje
#5 klomkbock
13/06/2006 - 19:40 | Informe spam
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
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida