Foliar hojas con macro en excel suya

Vi esto en unas preguntas y me pregunto.. Muy preguntoso

Sub imprimir()
    For i = 1 To 5
        Range("E4").Value = "Hoja Preparación N° " & Format(i, "A00000")
        ActiveSheet.PrintOut
    Next
End Sub

Cambia el 5 por el número de hojas que desees imprimir.

Cambia F1 por la celda donde quieres poner el número de folio.

Me pregunto si en ves de poner el for i= 1 To 5

Lo cambia por digamos un formulario emergente(o algo parecido) que se lo pida: ¿Desde - hasta?

Es más o menos lo que necesito pero también que me pida datos para los encabezados yo lo hice así:

Range("E4").Value = "Hoja Preparación N° " & Format(i, "A00000")

Range("A1").Value = "Nombre: " (aquí algo para poner el nombre de la persona que cambia dependiendo la hoja de preparación) 

1 Respuesta

Respuesta
1

Puedes crear un userform con 3 textbox y commandbutton, por ejemplo:


Instrucciones para crear un UserForm

  1. Abre tu hoja de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / UserForm
  4. En el panel del UserForm creas 3 TextBox y un commandbutton
  5. Le das dobleclik al commandbutton, en el panel que se abre, ahí pegas la macro del userform.

La macro del userform:

Private Sub CommandButton1_Click()
'Por Dante Amor
    'Validaciones
        If TextBox1.Value = "" Or Not IsNumeric(TextBox1.Value) Then
            MsgBox "Captura un número en el textbox1"
            TextBox1.SetFocus
            Exit Sub
        End If
        If TextBox2.Value = "" Or Not IsNumeric(TextBox2.Value) Or _
           TextBox2.Value < TextBox1.Value Then
            MsgBox "Captura un número válido en el textbox2"
            TextBox2.SetFocus
            Exit Sub
        End If
        If TextBox3.Value = "" Or Not IsNumeric(TextBox3.Value) Then
            MsgBox "Captura un texto en el textbox3"
            TextBox3.SetFocus
            Exit Sub
        End If
        '
    'Impresión
        For i = Val(TextBox1.Value) To Val(TextBox2.Value)
            Range("E4").Value = "Hoja Preparación N° " & Format(i, "A00000")
            Range("A1").Value = "Nombre: " & TextBox3.Value
            ActiveSheet.PrintOut
        Next
End Sub

Entonces, para abrir el userform: 

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: Abrir
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

La macro para el módulo:

Sub Abrir()
    UserForm1.Show
End Sub

Entonces, presiona el botón de la hoja, se abre el userform, capturas desde, hasta, el texto y presionas el botón del userform para enviar a imprimir.


'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas