Bloquear hoja si no encuentra impresora con macro (Print.Out)
publicado
Hola! Como estan?
Estoy necesitando ayuda con lo siguiente, tengo una hoja que se encuentra bloqueada excepto 2 columnas, luego de accionar distintos botones, se vuelve a bloquear TODA la hoja excepto esas 2 columnas.
Pero el problema que estoy teniendo, es que uno de los botones, imprime la hoja con el codigo Print.Out y si no encuentra impresora cargada, arroja un error y se DESBLOQUEA TODA la hoja.
Se me ocurrio un If, pero no se como insertarlo, tal vez hay otra forma.
Copio parte del codigo y explico:
Es una planilla de stock que genera un remito, la planilla de stock se envia a distintas personas pero NADIE deberia poder alterar los valores, por eso es que esta bloqueado con contraseña.
Al principio invoca una Ruta (es Remito creado en hoja de excel) que se encuentra en el libro activo. Luego copia ciertas filas de una columna en la hoja activa y las copia en el Remito y procede a imprimir 2 copias.
Como comente, si no encuentra impresora, me aparece un error y me desbloquea toda la hoja. Lo que necesito es que, imprima o no imprima, la hoja tiene que quedar bloqueada.
Hola! Como estan?
Estoy necesitando ayuda con lo siguiente, tengo una hoja que se encuentra bloqueada excepto 2 columnas, luego de accionar distintos botones, se vuelve a bloquear TODA la hoja excepto esas 2 columnas.
Pero el problema que estoy teniendo, es que uno de los botones, imprime la hoja con el codigo Print.Out y si no encuentra impresora cargada, arroja un error y se DESBLOQUEA TODA la hoja.
Se me ocurrio un If, pero no se como insertarlo, tal vez hay otra forma.
Copio parte del codigo y explico:
Es una planilla de stock que genera un remito, la planilla de stock se envia a distintas personas pero NADIE deberia poder alterar los valores, por eso es que esta bloqueado con contraseña.
Al principio invoca una Ruta (es Remito creado en hoja de excel) que se encuentra en el libro activo. Luego copia ciertas filas de una columna en la hoja activa y las copia en el Remito y procede a imprimir 2 copias.
Como comente, si no encuentra impresora, me aparece un error y me desbloquea toda la hoja. Lo que necesito es que, imprima o no imprima, la hoja tiene que quedar bloqueada.
Gracias!!!
Ruta = Worksheets("Datos").Cells(16, 2)
Application.ScreenUpdating = False
Set h1 = Sheets("Stock")
Set h3 = Sheets("Datos")
Set h2 = Workbooks.Open(Ruta)
Set h22 = h2.Worksheets("Remito")
j = h22.Range("B" & Rows.Count).End(xlUp).Row + 16 'selecciona la primera fila libre en col B
For i = 11 To 500
If h1.Cells(i, "N").Value > 0 Then
h1.Range("N" & i).Copy
h22.Cells(j, "K").PasteSpecial Paste:=xlValues
h1.Range("D" & i).Copy
h22.Cells(j, "E").PasteSpecial Paste:=xlValues
j = j + 1
h3.Range("B9").Copy
h22.Range("E9").PasteSpecial xlPasteValues
h3.Range("B11").Copy
h22.Range("E10").PasteSpecial xlPasteValues
h3.Range("B10").Copy
h22.Range("I10").PasteSpecial xlPasteValues
Application.CutCopyMode = False
End If
Next
'imprime
ActiveSheet.PrintOut
ActiveSheet.PrintOut
' guarda
h2.Save
h22.Range("K3").Value = h22.Range("K3").Value + 1
h22.Range("D17:K57").Select
Selection.ClearContents
h22.Range("E9:E10").Select
Selection.ClearContents
h22.Range("I9:I10").Select
Selection.ClearContents
h2.Save
h2.Close
h1.Range("O11:O500").Select
Selection.Copy
ActiveCell.Offset(0, -7).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("N11:N500").Select
Selection.ClearContents
Worksheets("Stock").Range("J10:J500").Locked = False
Worksheets("Stock").Range("N10:N500").Locked = False
Worksheets("Stock").Range("M2:Q3").Locked = False
Worksheets("Stock").Range("S2:U10").Locked = False
Range("J10").Select