You are here:---Rispondi a: msbbox multipage
Rispondi a: msbbox multipage2018-11-12T10:58:31+02:00

Home Forum Domande su Excel VBA e MACRO msbbox multipage Rispondi a: msbbox multipage

sidsid
Moderatore
    Post totali: 718

    Ciao
    Avevo pensato questo tipo di soluzione.
    La macro funziona allo stesso modo, a prescindere dalle pages che hai, e da quante combo o textbox hai nella page.
    In pratica funziona così:
    – attivo la prima page
    – ciclo ogni combo e ogni textbox
    – se ne trova anche uno vuota (sia obbligatorio che opzionale), un messaggio ti avvisa se vuoi continuare la stampa per le pages già compilate, oppure no.
    – attivo la page successiva e ripartono gli stessii controlli, fino all’ultima page

    Spero sia chiaro.

    Questo il codice del pulsante:

    Private Sub CommandButton1_Click()
    
    Dim Pagina As MSForms.Page
    Dim ctl As MSForms.Control
    Dim bStampa As Boolean, bEsci As Boolean
    
    bStampa = True
    For Each Pagina In Me.MultiPage1.Pages
         
         For Each ctl In Me.MultiPage1.Pages(Pagina.Index).Controls
            Me.MultiPage1.Value = Pagina.Index 'attivo la page ciclata
            Select Case True
                Case TypeOf ctl Is MSForms.ComboBox, TypeOf ctl Is MSForms.TextBox
                    If ctl.Value = vbNullString Then
                        If Pagina.Index = 0 Then
                            Select Case MsgBox("Uno o più controlli di page1 vuoti." & vbLf & _
                                "Eseguire la stampa?", vbYesNo Or vbExclamation Or vbDefaultButton1, "ATTENZIONE")
                                Case vbYes
                                        bEsci = True
                                        Exit For
                                    Case vbNo
                                        Exit Sub
                            End Select
                        End If
                            
                        Select Case MsgBox("Uno o più controlli di " & Pagina.Name & " vuoti" & vbLf & _
                            "Verrà eseguita la stampa fino alla page" & Pagina.Index & vbLf & "Eseguire la stampa?", _
                            vbYesNo Or vbExclamation Or vbDefaultButton1, "ATTENZIONE")
                            
                            Case vbYes
                                bEsci = True
                                Exit For
                            Case vbNo
                                Exit Sub
                        End Select
                       
                    End If
            End Select
        Next ctl
        If bEsci Then Exit For
    Next Pagina
    If bStampa Then
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
    End If
    End Sub

    Fa sapere, ciao.

    Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

    Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

    Chiudi