Área impresión

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

1 respuesta

Respuesta
-1
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
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
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
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
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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas