Generar PDF de Boletas de Alumnos a partir de una Tabla de Calificaciones.

Para: Dante Amor

¿Cómo Genero todas las boletas for a un Documento PDF o a otra hoja?

1 Respuesta

Respuesta
1

H o  l a:

Envíame un correo nuevo, con el archivo; y en una hoja adicional me explicas un ejemplo de cómo se debe llenar la boleta.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Gabriel Ochoa” y el título de esta pregunta.

Ya le envié el correo. gracias

Te anexo la macro:

Sub GenerarBoletas()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Application.StatusBar = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("Boleta FRM")
    ruta = l1.Path & "\"                'para guardar los pdf
    '
    For Each h In Sheets
        Select Case Left(h.Name, 1)
            Case "1", "2", "3"          'solamente para las hojas que empiezan con 1, 2 o 3
            i = 10
            grado = h.[G6]
            secc = h.[L6]
            Do While h.Cells(i, "A") <> ""
                h1.Copy after:=Sheets(Sheets.Count)
                Set h2 = ActiveSheet
                'datos de los 2 alumnos (2 por hoja)
                alum1 = h.Cells(i, "B"):    alum2 = h.Cells(i + 1, "B")
                clav1 = h.Cells(i, "A"):    clav2 = h.Cells(i + 1, "A")
                h2.[C3] = clav1:    h2.[C28] = clav2
                h2.[C6] = alum1:    h2.[C31] = alum2
                h2.[G4] = grado:    h2.[G5] = secc
                h2.[G29] = grado:   h2.[G30] = secc
                Application.StatusBar = "Generando Boletas, Grupo: " & h.Name & ". Alumnos: " & clav1 & "_" & clav2
                '
                Set r = h.Columns("B")
                Set b = r.Find(alum1, lookat:=xlWhole)
                If Not b Is Nothing Then
                    celda = b.Address
                    bimes = 3
                    Do
                        '
                        fila1 = 9                               'fila boleta 1
                        fila2 = 34                              'fila boleta 2
                        For j = 3 To Columns("Q").Column        'poner calificaciones
                            h2.Cells(fila1, bimes) = h.Cells(b.Row, j)
                            h2.Cells(fila2, bimes) = h.Cells(b.Row + 1, j)
                            fila1 = fila1 + 1
                            fila2 = fila2 + 1
                        Next
                        bimes = bimes + 1                       'cambia la columna al sig bimestre
                        Set b = r.FindNext(b)
                    Loop While Not b Is Nothing And b.Address <> celda
                    h2.ExportAsFixedFormat Type:=xlTypePDF, _
                        Filename:="grupo " & h.Name & " " & clav1 & "_" & clav2 & ".pdf", _
                        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
                        IgnorePrintAreas:=False, OpenAfterPublish:=False
                End If
                h2.Delete
                i = i + 2
            Loop
        End Select
    Next
    Application.ScreenUpdating = True
    MsgBox "fin"
End Sub

Al final de mi respuesta puedes valorar con “Votar” o con “Excelente”, si requieres de más información puedes solicitarla, de lo contrario, podrías cambiar la valoración.

¡Gracias! , solo que no me di a a entender necesitaba solo un PDF con todas las hojas 2 registros por hoja.  no un archivo PDF por cada 2.

No explicaste cómo querías el pdf.

Faltaron otros datos que no explicaste, por ejemplo:

  • En dónde se va a guardar el pdf
  • Qué nombre debe llevar el pdf
  • Cómo se debe llenar la clave
  • Cuántos pdf quieres, quieres uno por grupo, uno por grado o uno por toda la escuela.
  • La fórmula del promedio ya va a existir en la hoja, o la macro la tiene que calcular.

Cambia la valoración de esta respuesta y crea una nueva pregunta con todo el detalle que necesitas para la macro.

En la nueva pregunta escribe "Para Dante Amor"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas