Errore Do While Loop



  • Errore Do While Loop
    di Francesca (utente non iscritto) data: 29/04/2015 16:18:17

    Buonasera a tutti,

    ho un problema sul ciclo do while...qualcuno può aiutarmi?

    Posto il codice...

     
    Do While b > VariabileInput1
                                                    
                                                            Range("F2:W2").Select
                                                            ActiveCell.FormulaR1C1 = "='CARICO'!R[" & b & "]C[-5]"
        
                                                            Range("F32:W32").Select
                                                            ActiveCell.FormulaR1C1 = "='CARICO'!R[" & a & "]C[-5]"
                                                            
                                                            a = a - 2
                                                            b = b - 2
                                                    
                                                                ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
                                                                IgnorePrintAreas:=False
                                                   
    Loop 'ERRORE QUI..! QUALCHE IDEA?



  • di Albatros54 data: 29/04/2015 16:37:26

    Scusa ,domanda stupida, la variabile "VariabileInput1" è stata inizializzata prima del loop?
    Ciao
    Albatros54




  • Errore Do While Loop
    di Francesca (utente non iscritto) data: 29/04/2015 16:51:44

    Allego tutta la macro..
     
    Sub Stampa_Interno_Da_Riga_a_Riga()
    
    
            Dim VariabileInput1 As Integer
            Dim VariabileInput2 As Integer
            Dim UltimaRiga As Integer
            
            Dim a As Integer
            Dim b As Integer
            
        
            UltimaRiga = Sheets("CARICO").Range("A65000").End(xlUp).Row 'ULTIMA RIGA NEL FOGLIO CARICO
                VariabileInput1 = InputBox("Stampare Interno dalla riga numero:") 'RICHIEDO PRIMA RIGA DA STAMPARE
                
                StampaEsterno = MsgBox("Vuoi stampare fino all'ultima riga?", vbYesNo) 'RICHIESTA SE VUOI STAMPARE FINO ALLA FINE
                        If StampaEsterno = vbYes Then 'SE SI
                            VariabileInput2 = UltimaRiga 'IMPOSTO LA VARIABILE COME ULTIMA RIGA
                        Else 'SE NO
                            VariabileInput2 = InputBox("Stampare Interno fino alla riga numero:") 'RICHIEDO ULTIMA RIGA DA STAMPARE
                        End If 'FINE SE SI/NO
                    
                Sheets("Stampa_Interno").Select
                If VariabileInput1 = Empty Then 'CONTROLLO SE IL PRIMO VALORE IMMESSO E VUOTO
                    MsgBox "Valore Input Vuoto, non posso proseguire"
                    Exit Sub 'SE VUOTO ESCO
                End If 'FINE CONTROLLO SE PRIMO VALORE VUOTO
                If VariabileInput2 = Empty Then 'CONTROLLO SE IL SECONDO VALORE IMMESSO E VUOTO
                    MsgBox "Valore Input Vuoto, non posso proseguire"
                    Exit Sub 'SE VUOTO ESCO
                End If 'FINE CONTROLLO SE SECONDO VALORE VUOTO
                If Not IsNumeric(VariabileInput1) Then 'CONTROLLO SE PRIMO VALORE IMMESSO E UN NUMERO
                    MsgBox "Devi Inserire solo numeri, non posso proseguire"
                    Exit Sub 'SE NON NUMERO ESCO
                End If 'FINE CONTROLLO SE PRIMO VALORE IMMESSO E UN NUMERO
                If Not IsNumeric(VariabileInput2) Then 'CONTROLLO SE SECONDO VALORE IMMESSO E UN NUMERO
                    MsgBox "Devi Inserire solo numeri, non posso proseguire"
                    Exit Sub 'SE NON NUMERO ESCO
                End If 'FINE CONTROLLO SE SECONDO VALORE IMMESSO E UN NUMERO
                If VaribileInput1 > UltimaRiga Then 'CONTROLLO SE PRIMO VALORE IMMESSO E MAGGIORE DELL ULTIMA RIGA
                    MsgBox "La riga inserita è maggiore del file analizzato, non posso proseguire"
                    Exit Sub 'SE E MAGGIORE ESCO
                End If 'FINE CONTROLLO SE PRIMO VALORE IMMESSO E MAGGIORE DELL ULTIMA RIGA
                If VaribileInput2 > UltimaRiga Then 'CONTROLLO SE SECONDO VALORE IMMESSO E MAGGIORE DELL ULTIMA RIGA
                    MsgBox "La riga inserita è maggiore del file analizzato, non posso proseguire"
                    Exit Sub 'SE E MAGGIORE ESCO
                End If 'FINE CONTROLLO SE SECONDO VALORE IMMESSO E MAGGIORE DELL ULTIMA RIGA
                If VariabileInput1 > VariabileInput2 Then 'CONTROLLO SE PRIMO VALORE E MAGGIORE DEL SECONDO
                    MsgBox "La prima riga non può essere maggiore della seconda, non posso proseguire"
                    Exit Sub 'SE E MAGGIORE ESCO
                End If 'ALTRIMENTI
        
    
                        a = -29 'IMPOSTO RIFERIMENTI SU FOGLIO STAMPA_INTERNO RISPETTO A FOGLIO CARICO (RIGA SOTTO)
                        b = 0 'IMPOSTO RIFERIMENTI SU FOGLIO STAMPA_INTERNO RISPETTO A FOGLIO CARICO (RIGA SOPRA)
    
    
                            StampaInterno = MsgBox("Vuoi stampare Interno dalla riga " & VariabileInput1 & " fino alla riga " & VariabileInput2 & "?", vbYesNo) 'RICHIESTA SE VUOI STAMPARE
                                If StampaInterno = vbYes Then 'SE SI
                                
                                        If VariabileInput2 Mod 2 = 0 Then 'SE INPUT2 NUMERO PARI
                                             b = VariabileInput2 - 2
                                                
                                                If VariabileInput1 Mod 2 = 0 Then 'SE INPUT1 NUMERO PARI
    
                                                    Do While b > VariabileInput1
                                                    
                                                            Range("F2:W2").Select
                                                            ActiveCell.FormulaR1C1 = "='CARICO'!R[" & b & "]C[-5]"
        
                                                            Range("F32:W32").Select
                                                            ActiveCell.FormulaR1C1 = "='CARICO'!R[" & a & "]C[-5]"
                                                            
                                                            a = a - 2
                                                            b = b - 2
                                                    
                                                                ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
                                                                IgnorePrintAreas:=False
                                                   
                                                    Loop
                                                End If
                                         End If
                                End If
    Sheets("Funzioni").Select
    End Sub



  • di Albatros54 data: 29/04/2015 17:10:37

    Ho provato il codice,sembra che il ciclo lo completi. Ho messo nelle inputbox valore 2 come inizio e 40 come fine, non mi da nessun errore, rpova a variare i valori mettendo i valori che ho messo io
    Ciao
    Albatros54




  • Errore Do While Loop
    di Francesca (utente non iscritto) data: 29/04/2015 17:18:03

    Sempre stesso errore!



  • di Albatros54 data: 29/04/2015 17:46:08

    che errore ti da?