Estimados amigos,
Estoy desarrollando un macro,Test(), que toma un valor de la celda Z10, y si este valor es 3 entonces va a la hoja Sheet1 e imprime el rango nombrado como TESTAREA.
Lo que yo necesito hacer es tener la potestad de reasignar el rango al área TESTAREA y no tener que cambiar el macro cada vez que cambie el área. El macro como esta no funciona ya que no reconoce el rango TESTAREA como un rango o quizás el macro de impresión (MacroforPrinting) esta mal definido. Por ejemplo, TESTAREA puede ser A1:G15 ó cualquier otro rango.
Por favor, ¿Alguien me puede ayudar a localizar los errores?
Gracias,
Dim Area As String
Dim Sh As String
Sub Test()
If Range("Z10") = 3 Then
Sh = "Sheet1"
Area = "TESTAREA"
MacroforPrinting Sh, Area
End If
End Sub
Sub MacroforPrinting(Sh, Area)
With Worksheets(Sh)
With .PageSetup
.PrintArea = Area
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
.PrintOut Copies:=1, Collate:=True
End With
End Sub
Estoy desarrollando un macro,Test(), que toma un valor de la celda Z10, y si este valor es 3 entonces va a la hoja Sheet1 e imprime el rango nombrado como TESTAREA.
Lo que yo necesito hacer es tener la potestad de reasignar el rango al área TESTAREA y no tener que cambiar el macro cada vez que cambie el área. El macro como esta no funciona ya que no reconoce el rango TESTAREA como un rango o quizás el macro de impresión (MacroforPrinting) esta mal definido. Por ejemplo, TESTAREA puede ser A1:G15 ó cualquier otro rango.
Por favor, ¿Alguien me puede ayudar a localizar los errores?
Gracias,
Dim Area As String
Dim Sh As String
Sub Test()
If Range("Z10") = 3 Then
Sh = "Sheet1"
Area = "TESTAREA"
MacroforPrinting Sh, Area
End If
End Sub
Sub MacroforPrinting(Sh, Area)
With Worksheets(Sh)
With .PageSetup
.PrintArea = Area
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
.PrintOut Copies:=1, Collate:=True
End With
End Sub