Necesito seleccionar una hoja Excel e imprimirla por medio de un formulario.

Tengo un formulario donde escribo el nombre de la hoja que necesito imprimir. ¿Cómo hago eso?

1 Respuesta

Respuesta
1

Realiza los pasos de la siguiente respuesta:

MACRO de excel para imprimir varias hojas de un mismo libro

O si lo prefieres, puedes poner un combobox en tu userform, cargar todas las hojas en el combo y seleccionar un dato del combo, es más práctico seleccionar una nombre de hoja del combo que escribir todo el nombre de la hoja en un textbox.

Avísame si te sirvió la primer opción o si prefieres ayuda con el combo.

Está muy buena la primera idea, pero necesito ingresarlo manualmente el nombre del libro ya que con el tiempo ingresar muchas más hojas. Además, no solo lo usare yo, así que prefiero que ellos lo ingresen manualmente. Agradecería tu ayuda.

Ya no entendí, ¿vas a ingresar un nombre de hoja o un nombre de libro?

Perdón, de hoja. Me equivoqué.

Pon el siguiente código en tu userform

Crea un commandbutton. Captura el nombre de la hoja en el textbox1 y presiona el botón.

Private Sub CommandButton1_Click()
'Por.Dante Amor
    If TextBox1 = "" Then
        MsgBox "Ingresa el nombre de la hoja"
        TextBox1.SetFocus
        Exit Sub
    End If
    existe = False
    For Each h In Sheets
        If LCase(h.Name) = LCase(TextBox1.Value) Then
            existe = True
            Exit For
        End If
    Next
    If existe = False Then
        MsgBox "La hoja no existe"
        TextBox1.SetFocus
        Exit Sub
    End If
    Sheets(TextBox1).PrintOut
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Feliz Año 2018

.

¡Gracias! Te pasaste. Excelente. Justo lo que necesitaba.

Perdón, pero se me presento un problema. En el último ítem: Sheets (Textbox1).PrintOut me aparece un error. Dice: Se ha producido el error '13' en tiempo de ejecución: no coinciden los tipos.

¿Qué pusiste en el textbox1?

¿Y cómo se llama la hoja?

Dime exactamente qué dicen los dos datos.

La verdad, probé con el nombre hoja1. Y eso fue lo que coloque en el Textbox1.

¿Modificaste la macro?

Si tienes una hoja llamada "hoja1" y pusiste "hoja1" no debes tener ningún problema.

Puedes enviar una imagen del momento en que ocurre el error. Necesito ver exactamente qué estás poniendo en el textbox1 y qué nombres tienes en las hojas, pero envía una imagen.

Si ya no tienes problemas, r ecuerda valorar la respuesta.

O envíame tu archivo y lo reviso.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Pablo Lopez

Estimado:

Esto es lo que agrego en el formulario. Perdón por no haberte escrito antes, pero no pude. Gracias por todo!

Hay algo raro.

En tu imagen del userform se ve que estás ejecutando el form "check list", pero en la siguiente imagen el código corresponde al form "userform1"

Eso significa que no estás ejecutando el código que yo te envié.

Revisa que en tu form "check list" tengas el código que yo te envié.

También revisa que en tu form "check list" tengas un control llamado textbox1

Por último actualiza las macros con este código:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    If TextBox1.Value = "" Then
        MsgBox "Ingresa el nombre de la hoja"
        TextBox1.SetFocus
        Exit Sub
    End If
    existe = False
    For Each h In Sheets
        If LCase(h.Name) = LCase(TextBox1.Value) Then
            existe = True
            Exit For
        End If
    Next
    If existe = False Then
        MsgBox "La hoja no existe"
        TextBox1.SetFocus
        Exit Sub
    End If
    hoja = WorksheetFunction.Trim(TextBox1.Value)
    Sheets(hoja).PrintOut
End Sub

Si todavía no te funciona, entonces envíame tu archivo para poner el código.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Pablo Lopez


.

'S aludos. Dante Amor. Recuerda valorar la respuesta.

ok. lo probare. muchas gracias

Envíame tu archivo y adapto el código.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Pablo Lopez

Ahora sí me resultó. Muchas gracias. Y perdón por responder lento, pero cuando tengo tiempo, trabajo en el Excel. Muchas muchas gracias. Te pasaste!!

Al final de mi respuesta hay un botón para valorarla. No olvides valorar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas