VBA para Excel, creando algún tipo de declaración if dinámica

VBA para Excel, creando algún tipo de declaración if dinámica

Estoy trabajando en un documento similar a una base de datos para almacenar elementos y su información. Tengo problemas para pensar en una forma de producir un informe para estos usando VBA. Actualmente tengo un formulario de usuario que tiene varias páginas con pestañas para cada fila de información de los elementos:

Pestañas: [agregar todo al representante] [agregar por estado] [agregar por tipo] [agregar por serie] [agregar por fecha de expedición]

cada pestaña tiene diferentes botones de alternancia.

Al principio solo quería que el código generara un informe usando un caso seleccionado con multipage.SelectedItem.index, y me di cuenta de que el informe iba a ser muy limitado. Decidí tener una "página para agregar" a las pestañas para que pudieras agregar diferentes criterios, por ejemplo agregar todos los elementos con estado A con expDate A a expDate B. Con esto me di cuenta de que tengo 6 pestañas y tendría para codificar todas las declaraciones IF posibles... Ahora, una petición de ayuda: ¿hay alguna manera de crear un bloque IF o CASE dinámico en el que solo se puedan tener las pestañas "activas" o agregadas a los criterios de búsqueda? el resto del código consistiría en contar la cantidad de elementos en la hoja de trabajo e iterar mediante el uso de un bucle FOR y agregarlos a un documento de Word a medida que cumplan con los criterios. Todavía no tengo un código sólido escrito, pero lo que tengo se parece a esto:

En este fragmento de código intenté crear una función de "recopilación" para gestionar las posibles declaraciones IF, dependiendo de los argumentos que le hayas pasado:

Private Function advancedGathering(Optional status As String, Optional itemType As String, Optional id As Integer, Optional expDate As Date, Optional holder As String)

Select Case advancedGathering
    Case status <> Null And _
         itemType <> Null And _
         id <> Null And _
         expDate <> Null And _
         holder <> Null

    Case status <> Null And _
         itemType <> Null And _
         id  <> Null And _
         expDate <> Null And _
         holder <> Null

    End Select


End Function

Está incompleto como puedes ver.

Y también tengo esto para el evento de clic en el botón:

Private Sub Button_generate_Click()

    Dim row, quantity As Integer

    quantity = WorksheetFunction.Count(Range(colHandler.column("id") & 3, colHandler.column("id") & 900)) 'There are less than 900 items, this is just to capture all

    If Toggle_status_ATR.Value = False Or _
       Toggle_type_ATR.Value = False Or _
       Toggle_id_ATR.Value = False Or _
       Toggle_expDate_ATR.Value = False Or _
       Toggle_holder_ATR.Value = False Then

        Select Case MultiPage_main.SelectedItem.Index
            Case 0 'Add All"
                If Toggle_all_addAll.Value = True Then
                    'This is the first tab which I'm not worried about because if selected it will add all the info on the items
                Else

                End If

            Case 1 'Add by Status
                    If Toggle_status_wayOverdue.Value = True Then
                ElseIf Toggle_status_overdue.Value = True Then
                ElseIf Toggle_status_due.Value = True Then
                ElseIf Toggle_status_good.Value = True Then
                ElseIf Toggle_status_valid.Value = True Then
                End If

            Case 2 'Add by Type

            Case 3 'Add by ID

            Case 4 'Add by expDate

            Case 5 'Add by Holder

        End Select

    Else '> Any of the [Toggle_xxx_ATR] buttons are clicked

    End If

Multipage_selection: 'I tried to use GOTO statements


check_valid:

    Unload Me

End Sub

Honestamente, me quedé sin ideas, no soy un codificador competente y he estado trabajando con VBA solo durante unos meses como un proyecto adicional a mi trabajo actual. ¡Cualquier idea ayuda y gracias a todos por su tiempo!

información relacionada