Generar reporte de todos los nombre

Para preguntar haber si me puede ayudar

Mira tengo estos códigos:

Private Sub ComboBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If ComboBox2 = Empty Then
Cancel = True
MsgBox "El Genero no puede ir vacio", vbCritical, "Error"
End If
Set h2 = Sheets("Base Entrada")
TextBox1 = 0
For i = 1 To h2.Range("A" & Rows.Count).End(xlUp).Row
If h2.Cells(i, "A") = ComboBox1 And h2.Cells(i, "B") = ComboBox2 Then
TextBox1 = Val(TextBox1) + h2.Cells(i, "L")
End If
Next

Set h3 = Sheets("Base Salidas")
TextBox2 = 0
For i = 1 To h3.Range("A" & Rows.Count).End(xlUp).Row
If h3.Cells(i, "A") = ComboBox1 And h3.Cells(i, "D") = ComboBox2 Then
TextBox2 = Val(TextBox2) + h3.Cells(i, "H")
End If
Next
TextBox3 = (TextBox1) - (TextBox2)
End Sub

y tambien un boton con esto

Application.ScreenUpdating = False
Sheets("Reportespdf").Visible = xlSheetVisible
Sheets("Reportespdf").Select
Dim valorb As String, Dato As String 'definimos el tipo de dato
valor = ComboBox1
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select ' encuentro celda vacia y me desplazo hacia abajo
ActiveCell.FormulaR1C1 = valor
valor = ComboBox2
Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Select ' encuentro celda vacia y me desplazo hacia abajo
ActiveCell.FormulaR1C1 = valor
valor = TextBox1
Cells(Rows.Count, 3).End(xlUp).Offset(1, 0).Select ' encuentro celda vacia y me desplazo hacia abajo
ActiveCell.FormulaR1C1 = valor
valor = TextBox2
Cells(Rows.Count, 4).End(xlUp).Offset(1, 0).Select ' encuentro celda vacia y me desplazo hacia abajo
ActiveCell.FormulaR1C1 = valor
valor = TextBox3
Cells(Rows.Count, 5).End(xlUp).Offset(1, 0).Select ' encuentro celda vacia y me desplazo hacia abajo
ActiveCell.FormulaR1C1 = valor
ActiveWindow.SelectedSheets.PrintOut copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("A3:E3").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("A3").Select
Sheets("Reportespdf").Visible = xlSheetVeryHidden
Unload Me

Este código funciona muy bien, lo que quiero hacer es insertar un OptionButton o algo parecido y

Con eso deshabilitar el combobox1 y que me genere el reporte de todos los nombres que están en columna "A" solo que cumplan con el criterio de combobox2,¿podría ayudarme con eso o requiere que le envíe el archivo?

Respuesta
2

H o l a : En un correo nuevo envíame tu archivo con el formulario y me explicas con comentarios lo que necesitas.

Mi correo [email protected]

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

H o l a: Te anexo la macro para el reporte.

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("Reportespdf")
    h1.Visible = xlSheetVisible
    h1.Range("A3:E" & h1.Range("A" & Rows.Count).End(xlUp).Row + 3).ClearContents
    '
    If OptionButton1 = False And ComboBox1 = "" Then
        MsgBox "El Productor no puede ir vacío", vbCritical, "Error"
        ComboBox1.SetFocus
        Exit Sub
    End If
    If ComboBox2 = Empty Then
        MsgBox "El Genero no puede ir vacío", vbCritical, "Error"
        ComboBox2.SetFocus
        Exit Sub
    End If
    '
    Call LlenarHoja(h1, "Base Entrada", "C", "B", "L")
    Call LlenarHoja(h1, "Base Salidas", "D", "D", "H")
    '
    h1.PrintOut copies:=1, Collate:=True, IgnorePrintAreas:=False
    h1.Visible = 2
    Unload Me
End Sub
'
Sub LlenarHoja(h1, hoja, cMov, cCombo, cImp)
    Set h2 = Sheets(hoja)
    For i = 1 To h2.Range("A" & Rows.Count).End(xlUp).Row
        If ComboBox1 = "" Then pr = h2.Cells(i, "A") Else pr = ComboBox1
        If h2.Cells(i, "A") = pr And h2.Cells(i, cCombo) = ComboBox2 Then
            existe = False
            For j = 3 To h1.Range("A" & Rows.Count).End(xlUp).Row
                If h1.Cells(j, "A") = pr And h1.Cells(j, "B") = ComboBox2 Then
                    existe = True
                    Exit For
                End If
            Next
            If existe Then u = j Else u = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
            h1.Cells(u, "A") = pr
            h1.Cells(u, "B") = ComboBox2
            h1.Cells(u, cMov) = h1.Cells(u, cMov) + h2.Cells(i, cImp)
            h1.Cells(u, "E") = h1.Cells(u, "C") - h1.Cells(u, "D")
        End If
    Next
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas