Área impresión

Respuesta de
Usuario
 
Quiero definir el área para impresión para 9 columnas fijas y líneas variables, tengo el código siguiente que funciona perfecto pero, mi problema es el siguiente:
Me marca también la columna 10 y esta está vacía.
La configuración de página es Horizontal y para que me abarque las 9 columnas en una sola hoja, y lo hace pero si son 10(está vacía) el texto se vuelve más pequeño y entonces a la derecha queda espacio vacío.
Pretendo que NO me seleccione la columna 10
 
Sub AreaImpresion() 'Opcion para agregar a Impresion, delimita el area para imprimir
    Dim primera, ultima As Variant
ActiveSheet.PageSetup.PrintArea = ""  'Eliminamos area de impresion
    Range("A1").Select 'Primer rango de area
    If ActiveCell.Value = "" Then
        Selection.End(xlRight).Select
    End If
    primera = ActiveCell.Address
    ActiveCell.SpecialCells(xlLastCell).Select   'Ultima celda con datos
    ultima = ActiveCell.Address
    MsgBox "Imprime desde " & primera & " hasta " & ultima 'Opcional: verificamos el rango a imprimir
ActiveSheet.PageSetup.PrintArea = (primera & ":" & ultima)  'Asignamos el area de impresion
End Sub
He intentado algunas cosillas pero no llego hasta resolverlo
¿Qué puede estar mal aquí?.
Agradecido de antemano y feliz navidad y un próspero año 2001
Avatar
Experto
Aparentemente este código funciona bien solo selecciona los rangos donde tienes datos comprueba que en la columna 10 no tengas datos de algún tipo como puede ser algún punto o bordes si aun así no te funciona pásame tu archivo
d2enrique arroba hotmail.com
Saludos
Usuario
Di con el fallo.
Te expuso dentro del libro algo para que hagas la prueba, ahora bien.
Si ves que se puede acomodar el código para que no este con eso de limpiar los rangos usados y vacíos y que selecioe SOLAMENTE el área CON DATOS, BIENVENIDO SEA
Gracias
Avatar
Experto
Hola ciertamente no se porque al borrar un dato no desaparece del área de impresión cuando ya lo borras pero añadiendo en tu código
ActiveWorkbook.Save'guardar
si selecciona los rangos bien prueba este código y ya me cuentas si te vale
Sub AreaImpresion() 'Opcion para agregar a Impresion, delimita el area para imprimir
    Dim primera, ultima As Variant
    ActiveSheet.PageSetup.PrintArea = ""  'Eliminamos area de impresion
    ActiveWorkbook.Save
    Range("A1").Select 'Primer rango de area
    If ActiveCell.Value = "" Then
        Selection.End(xlRight).Select
    End If
    primera = ActiveCell.Address
    ActiveCell.SpecialCells(xlLastCell).Select   'Ultima celda con datos
    ultima = ActiveCell.Address
   
    MsgBox "Imprime desde " & primera & " hasta " & ultima 'Opcional: verificamos el rango a imprimir
ActiveSheet.PageSetup.PrintArea = (primera & ":" & ultima)  'Asignamos el area de impresion
End Sub
Con esto no hace falta borrar el área de impresión pues el código ya te borra el área antes de guardar y seleccionar la nueva área de impresión
Saludos
Usuario
NO.
Hice esto; Copie a una hoja unas cuantas lineas de datos de otra hoja, luego seleccione unas cuantas lineas finales y Supr, Se elimino el contenido.
di a selecionar Area (codigo que me dejaste) y seleciona todo, con datos y donde anteriormente hubo datos.
Ejecuto el código para limpiar áreas usadas vacías y vuelvo con tu código y ya si sol oselecciona el área con datos.
Agradezco tu esfuerzo y auda.
Feliz año 2011
Avatar
Experto
Pues ami si me funciona bien y no tiene sentido que después de limpiar áreas funcione bien pues en el código de seleccionar área antes ya borra el área
Prueba a doblar la orden de limpiar área o a cambiar el código guardar antes de limpiar área
Así mismo te mando el archivo prueba en el cual ami si me selecciona bien
Saludos y Feliz año también
 
 
Usuario
Me acusa la ultima celda usada anteriormente.
Si tengo datos SOLAMENTE entre A2:A100 (9 columnas)
Si use la celda C200 y otras y luego elimine su contenido, sigo con datos solamente entre A2:A100 (9 columnas) marco el área de impresión y me acusa á parte del área de los datos contenidos, hasta donde había usado la ultima celda hacia abajo, en este caso C200.
Pero,. Te digo que es cosa de agregar una rutina más al código de seleccionar área y estos dos a su ves al código total para impresión y también al final de este ultimo, agregar la rutina para eliminar área de impresión para que no quede marcada, todo una question de buscarle la vuelta.
Agradezco una ves más tu ayuda y interés pero, como ves, hay cosas que se le puede conseguir solución.
Voy a tratar de enviarte el libro con un texto a ver si puedes darme otra ayuda en otro proyecto, teexplico en el texto, veré si consigo tu mail, sino me lo dejas acá, te agradezco
Usuario
Se puede dar por terminada