Foros del Web » Soporte técnico » Ofimática »

macro excel imprimir seleccion

Estas en el tema de macro excel imprimir seleccion en el foro de Ofimática en Foros del Web. Buenas tardes busco ayuda para una macro. El tema es es siguiente dentro de una hoja de excel tengo filas que se corresponden a una ...
  #1 (permalink)  
Antiguo 17/11/2011, 11:58
 
Fecha de Ingreso: noviembre-2011
Mensajes: 5
Antigüedad: 12 años, 5 meses
Puntos: 0
macro excel imprimir seleccion

Buenas tardes busco ayuda para una macro.
El tema es es siguiente dentro de una hoja de excel tengo filas que se corresponden a una serie de datos de otra hoja del mismo excel, pues bien
mi intencion es que, por medio de checkbox, seleccionar las filas de esa primera hoja que me interese y, por medio de un boton de imprimir me imprima los diferentes rangos de datos de la otra hoja .
adjunto un archivo de ejemplo con el que me he roto la cabeza y no lo he conseguido.
muchas gracias de antemano.....
no se si me he explicado bien
un saludo
  #2 (permalink)  
Antiguo 17/11/2011, 12:01
 
Fecha de Ingreso: noviembre-2011
Mensajes: 5
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: macro excel imprimir seleccion

no se si se pueden adjuntar archivos
  #3 (permalink)  
Antiguo 17/11/2011, 15:38
Avatar de Omura
Colaborador
 
Fecha de Ingreso: julio-2006
Ubicación: Peru
Mensajes: 3.491
Antigüedad: 17 años, 9 meses
Puntos: 185
Respuesta: macro excel imprimir seleccion

para archivos adjuntos puedes subir el archivo a algún servidor gratuito tipo rapidshare, megaupload o similar y poner aquí el enlace.
__________________
Mi error era de código... pero de código genético.
  #4 (permalink)  
Antiguo 18/11/2011, 02:50
 
Fecha de Ingreso: noviembre-2011
Mensajes: 5
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: macro excel imprimir seleccion

el enlace de descarga del ejemplo es
https://rapidshare.com/files/2894292387/EJEMPLO_MACRO_EXCEL.xlsm
  #5 (permalink)  
Antiguo 18/11/2011, 15:48
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 8 meses
Puntos: 39
Respuesta: macro excel imprimir seleccion

Tengo este codigo en un Modulo, ve si te sirve
'''''''''''''''''''''''''''''''''''''''''''''''''
'imprimir seleccion de celdas
Sub PrintSelectedCells()
' impresion de celdas seleccionadas, utilizar un menú o un botón de barra de herramientas
Dim aCount As Integer, cCount As Integer, rCount As Integer
Dim i As Integer, j As Long, aRange As String
Dim rHeight() As Single, cWidth() As Single
Dim AWB As Workbook, NWB As Workbook
If UCase(TypeName(ActiveSheet)) <> "WORKSHEET" Then Exit Sub
'útil sólo en hojas de cálculo
aCount = Selection.Areas.Count
If aCount = 0 Then Exit Sub ' no hay celdas seleccionadas
cCount = Selection.Areas(1).Cells.Count
If aCount > 1 Then ' múltiples áreas seleccionadas
Application.ScreenUpdating = False
Application.StatusBar = "Printing " & aCount & " selected areas..."
Set AWB = ActiveWorkbook
rCount = ActiveSheet.Cells.SpecialCells(xlLastCell).Row
cCount = ActiveSheet.Cells.SpecialCells(xlLastCell).Column
ReDim rHeight(rCount)
ReDim cWidth(cCount)
For i = 1 To rCount
' encontrar el alto de fila de cada fila de la selección
rHeight(i) = Rows(i).RowHeight
Next i
For i = 1 To cCount
' encontrar el ancho de columna de cada columna en la selección
cWidth(i) = Columns(i).ColumnWidth
Next i
Set NWB = Workbooks.Add ' crear nuevo libro
For i = 1 To rCount ' Alto de fila del conjunto
Rows(i).RowHeight = rHeight(i)
Next i
For i = 1 To cCount ' anchos de columna del conjunto
Columns(i).ColumnWidth = cWidth(i)
Next i
For i = 1 To aCount
AWB.Activate
aRange = Selection.Areas(i).Address
' dirección de rango
Range(aRange).Copy ' copiar el rango
NWB.Activate
With Range(aRange) ' pega los valores y formatos
.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
.PasteSpecial Paste:=xlFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End With
Application.CutCopyMode = False
Next i
NWB.PrintOut
NWB.Close False ' Cierre el libro temporal sin guardar los cambios
Application.StatusBar = False
AWB.Activate
Set AWB = Nothing
Set NWB = Nothing
Else
If cCount < 10 Then ' menos de 10 celdas seleccionadas
If MsgBox(" ¿Está seguro de que desea imprimir " & _
cCount & " celda(s) seleccionada(s) ?", _
vbQuestion + vbYesNo, "Imprimir celdas seleccionadas") = vbNo Then Exit Sub
End If
Selection.PrintOut
End If
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''
No es mio, bajado de la WEB porque de macros o programacion me muero yo y mi familia queda pidiendo limosna jejejejej pero, si te sirve bien, si puedes adaptarlo bien, si no te sirve, echalo a la basura.

Ahora te pregunto como hacer para que al marcar el checkbox 2, desmarque automaticamente el 1 o el que este marcado

Tengo el CheckBox 3 marcado, marco el CheckBox 6, al marcar el 6, desmarcar el 3 y demas que eventualmente pueda estar marcado MENOS, el 3, ¿como hacer? estilo ImputBox.

Tambien puedo preguntar; ¿Puedo usar ImputBox en ves de Checkbox? ¿con el mismo codigo?

Última edición por JoaoM; 18/11/2011 a las 15:56
  #6 (permalink)  
Antiguo 18/11/2011, 19:11
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
De acuerdo Respuesta: macro excel imprimir seleccion

Hola! jcnalda
Sobrepoblar de checkboxs una hoja -no siempre- es una buena idea por las disficultades que devienen de su administración.

Por ello te muestro una alternativa basada en hacer "doble click" en la celda que nos interesa:

http://www.mediafire.com/?aqdrsb80zqus2zk

Saludos, Cacho R.
  #7 (permalink)  
Antiguo 18/11/2011, 20:07
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 8 meses
Puntos: 39
Respuesta: macro excel imprimir seleccion

Lo solucione con ImputBoxs y codigo para la seleccin de area de impresion.
A i modo claro (diria a lo bruto)
  #8 (permalink)  
Antiguo 21/11/2011, 00:54
 
Fecha de Ingreso: noviembre-2011
Mensajes: 5
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: macro excel imprimir seleccion

De antemano gracias por las respuestas.
¿mi pregunta es ?puedes colgar un ejemplo con imputbox para verlo.?

gracias
  #9 (permalink)  
Antiguo 21/11/2011, 00:57
 
Fecha de Ingreso: noviembre-2011
Mensajes: 5
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: macro excel imprimir seleccion

otra pregunta es como es el codigo para el doble click en la celda
no aparece

gracias
sois unas maquinas
  #10 (permalink)  
Antiguo 21/11/2011, 10:44
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
De acuerdo Respuesta: macro excel imprimir seleccion

Cita:
Iniciado por jcnalda Ver Mensaje
otra pregunta es como es el codigo para el doble click en la celda: no aparece ...
Haz click derecho en la solapa de la hoja en cuestión y selecciona: Ver código.

Saludos, Cacho R.
  #11 (permalink)  
Antiguo 21/11/2011, 16:48
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 8 meses
Puntos: 39
Respuesta: macro excel imprimir seleccion

Cita:
Iniciado por jcnalda Ver Mensaje
De antemano gracias por las respuestas.
¿mi pregunta es ?puedes colgar un ejemplo con imputbox para verlo.?

gracias
Quise decir OptionButton

Private Sub OptionButton1_Click()
Application.ScreenUpdating = False
Sheets("Hoja2").Activate
ActiveSheet.PageSetup.PrintArea = ""
ActiveSheet.Range("A1:B9").Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$B$9"
Sheets("Hoja3").Select
Application.ScreenUpdating = True
End Sub

Te marca el area de impresion a imprimir

Luego usas el codigo del CmmandButton

Private Sub CommandButton1_Click()
Sheets("Hoja2").Activate
With ActiveSheet.PageSetup

ActiveWindow.SelectedSheets.PrintPreview
.Orientation = xlPortrait 'xlLandscape
.PaperSize = xlPaperA4 'formato A4
.BlackAndWhite = False 'incluir colores o no
.FitToPagesWide = 1 'reduce el tamaño de la hoja (ancho)
.FitToPagesTall = 1 'reduce el tamaño de la hoja (alto)
.CenterHorizontally = True 'centrar horizontalmente
End With
ActiveWindow.Selection.PrintOut Copies:=1, Collate:=True
End Sub

Yo mismo hice la prueba y funciona a miles pero, LA OPCION QUE DA CACHO ES LAS MAS VIABLE pues no tienes que poblar la hoja con tantos chekbox o optionbotton.

Pasa que, si quieres usar la segunda via luego de agotada la cantidad de celdas en las A y B (A:A llegar hasta la 500 0 5000) y usar otra nueva (A:D), hay que hacer cambio en el codigo, cambiar A:A por A:D y en la hoja seria;

A1 en D1 numeracion en la celdas D2
y en E2 la segunda numeracion

A la de cacho solo le agrege la linea roja

ActiveWindow.SelectedSheets.PrintPreview
c.Resize(9, 2).PrintOut Copies:=1, Collate:=True 'C.Resize(9, 2) corresponden a (9 # de lineas y 2) # de columnas a imprimir

Set c = Nothing
End Sub

Lo que si me di cuenta es que imprime de la hoja1, la columna A y no la hoja2 con la respectiva seleccion de A1 o A2, ect ect

Última edición por JoaoM; 21/11/2011 a las 17:25

Etiquetas: excel, macro, seleccion, xp
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:34.