imprimir selectivo

29/01/2008 - 18:40 por Jose | Informe spam
Con el código que a continuación expongo, imprimo una serie de fichas
correlativas mediante la entrada con InputBox de los numeros de las fichas
(primero y último)
Quisiera modificar este codigo para que me imprimiera determinadas fichas
cuyos numeros no son correlativos pero que pertenecen a un rango nombrado
por ejemplo CP30010 entre otros rangos a elegir y cuya composición de
numeros puede variar en la cantidad y que se encuentran en filas sucesivas
de la misma columna.
Los titulos de los rangos se encuentra en la Hoja "Murcia", en la fila 2 y
los numeros empiezan en la fila 4 con una longitud de filas variable, cada
titulo en una columna diferente y por ello necesito las líneas de codigo
necesarias para elegir un titulo o nombre de rango e imprimir los numeros de
fichas que lo compongan.
He aqui un ejemplo:

1ª linea columna K 1ª linea columna L 1ª linea columna M
CP30007 CP30008 CP30009 ...(2ª línea)
MURCIA MURCIA MURCIA..(3ª línea)
765 790 26 ... 4ª
551 541 527 ... 5ª
599 644 ... 6ª
.. etc.
685
40


Sub Imprimirfichasdeclientes()
'

Dim N As Integer
Dim x As Integer, contador
On Error Resume Next

N = InputBox("Introduce el código de la primera ficha a imprimir", "Primer
número", "1")
x = InputBox("Introduce el código de la última ficha a imprimir", "Último
número", "830")
contador = 1
y = InputBox("¿Cancelar impresión?", "si quiere cancelar intruzca un 0, sino
1", "1")
If y = 0 Then End
Sheets("Plantilla").Select
For N = N To x

Application.Run "'Listado nº 9 de todos los clientes al
10-1-08.xls'!Imprimirestaficha"

contador = contador + 1

End If
If N = x + 1 Then Exit Sub

Next
MsgBox ("el nº de fichas es: ") & contador - 1
End Sub
 

Leer las respuestas

#1 Héctor Miguel
30/01/2008 - 08:09 | Informe spam
hola, Jose !

no se aprecia que haga tu macro en: -> Application.Run "'Listado nº 9 de todos los clientes al 10-1-08.xls'!Imprimirestaficha"
pero creo que podrias probar con algo +/- como lo siguiente y...
si cualquier duda (o informacion adicional mas... "especifica")... comentas ?
saludos,
hector.

Sub ImprimeFichasDelRango_X()
Dim Celda As Range, Listado As Range
On Error Resume Next ' por si las dudas '
Application.ScreenUpdating = True ' el refresco de la pantalla debe estar activo '
Worksheets("murcia").Select
Set Listado = Application.InputBox( _
Prompt:="Selecciona el titulo del listado...", _
Title:="En espera de la seleccion...", _
Default:=$K$2, _
Type:=8) ' Type:=8 significa que se espera que el usuario seleccione un objeto rango '
On Error GoTo 0 ' liberamos la omision de errores '
If Listado Is Nothing Then MsgBox "Operacion cancelada !": Exit Sub
Application.ScreenUpdating = False ' congelamos el refresco de la pantalla '
For Each Celda In Range(Cells(4, Listado.Column), Cells(4, Listado.Column).End(xlDown))
' AQUI es (casi) seguro que "algo" necesitaras hacer con el contenido de cada "Celda" ?????? '
Application.Run "'Listado nº 9 de todos los clientes al 10-1-08.xls'!Imprimirestaficha"
Next
Set Listado = Nothing
End Sub

__ la consulta original __
Con el codigo que a continuacion expongo, imprimo una serie de fichas correlativas
mediante la entrada con InputBox de los numeros de las fichas (primero y ultimo)
Quisiera modificar este codigo para que me imprimiera determinadas fichas cuyos numeros no son correlativos
pero que pertenecen a un rango nombrado por ejemplo CP30010 entre otros rangos a elegir
y cuya composicion de numeros puede variar en la cantidad y que se encuentran en filas sucesivas de la misma columna.
Los titulos de los rangos se encuentra en la Hoja "Murcia", en la fila 2 y los numeros empiezan en la fila 4
con una longitud de filas variable, cada titulo en una columna diferente y por ello necesito las líneas de codigo
necesarias para elegir un titulo o nombre de rango e imprimir los numeros de fichas que lo compongan.
He aqui un ejemplo:
1ª linea columna K 1ª linea columna L 1ª linea columna M
CP30007 CP30008 CP30009 ...(2ª línea)
MURCIA MURCIA MURCIA..(3ª línea)
765 790 26 ... 4ª
551 541 527 ... 5ª
599 644 ... 6ª
.. etc.
685
40

Sub Imprimirfichasdeclientes()
Dim N As Integer
Dim x As Integer, contador
On Error Resume Next
N = InputBox("Introduce el codigo de la primera ficha a imprimir", "Primer numero", "1")
x = InputBox("Introduce el codigo de la ultima ficha a imprimir", "Ultimo numero", "830")
contador = 1
y = InputBox("Cancelar impresion?", "si quiere cancelar intruzca un 0, sino 1", "1")
If y = 0 Then End
Sheets("Plantilla").Select
For N = N To x
Application.Run "'Listado nº 9 de todos los clientes al 10-1-08.xls'!Imprimirestaficha"
contador = contador + 1
End If
If N = x + 1 Then Exit Sub
Next
MsgBox ("el nº de fichas es: ") & contador - 1
End Sub

Preguntas similares