Errore ciclo for



  • Errore ciclo for
    di yummy (utente non iscritto) data: 09/12/2013 23:22:52

    Ciao a tutti..Ho 2 fogli di lavoro.Nel foglio 1 ho una tabella suddivisa in righe e su ogni riga c'è una checkbox e accanto due aree di testo che indicano ID e la DESCRIZIONE.Se seleziono la CHKBX in automatico dovrei copiare ID e DESCRIZIONE nella stessa posizione nel foglio 2.

    Il numero di di righe nel foglio 1 possono variare (variabile counter)

    Il codice è riportato sotto.. ma mi da un errore.Dice che manca un End if.Sapete aiutarmi?
     
    Sub LoopExample()
    
     
    
    Dim StartNumber As Integer     'riga inizio primo range
    
    Dim EndNumberRange1 As Integer 'riga fine primo range
    
     
    
    Dim EndNumber As Integer     'variabile fine loop
    
    Dim counter As Integer       'numero checkbox
    
    NumCheck = 100               'inizializzazione counter
    
     
    
     
    
     
    
        For counter = 1 To NumCheck
    
       
    
            For StartNumber = 8 To EndNumber Step 2        'dalla riga 8
    
                EndNumberRange1 = StartNumber + 1          'riga successiva che chiude il range riga 9
    
     
    
     
    
                StartNumberSt = CStr(StartNumber)           'converto intero in stringa
    
                MsgBox StartNumberSt
    
                EndNumberRange1St = CStr(EndNumberRange1)   'converto intero in stringa
    
                MsgBox EndNumberRange1St
    
     
    
                
    
                If Sheet1.Controls("Checkbox" & counter).Value = True Then 'parto dalla checkbox1
    
     
    
     
    
                    Dim range1 As String
    
                    range1 = "C" & StartNumberSt 'definisco cella c8
    
                    MsgBox range1
    
     
    
                    Dim range2 As String
    
                    range2 = "E" & EndNumberRange1St 'definisco cella E9
    
     
    
                    Worksheets("Sheet1").Range(range1, range2).Copy _
    
                    Destination:=Worksheets("Sheet2").Range(range1)
    
     
    
                    Dim range11 As String
    
                    range1 = "F" & StartNumberSt 'definisco cella F8
    
                    MsgBox range11
    
     
    
                    Dim range22 As String
    
                    range2 = "I" & EndNumberRange1St 'definisco cella I9
    
                    MsgBox range22
    
     
    
                    Worksheets("Sheet1").Range(range11, range22).Copy _
    
                    Destination:=Worksheets("Sheet2").Range(range11)
    
       
    
                End If
    
     
    
                   If Sheet1.Controls("Checkbox" & counter).Value = False Then
    
     
    
                      Worksheets("Sheet1").Range(range1, range11).Copy _
    
       
    
                      counter = counter + 1
    
       
    
                   End If
    
     
    
                  Next StartNumber
    
     
    
            End Sub
    
     
    
      Next counter
    
     
    
    End Sub
    
     
    
    Private Sub CheckBox1_Click()
    
     
    
    End Sub
    
     
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
     
    
    End Sub



  • di gaetanopr (utente non iscritto) data: 09/12/2013 23:36:31

    Togli end sub tra i due next