textbox dinamiche ciclo do



  • textbox dinamiche ciclo do
    di Andrea (utente non iscritto) data: 21/09/2013 18:59:35

    Salve a tutti
    premetto che sono alle prime armi con vba come potrete vedere dalla richiesta di aiuto e spero possiate darmi una mano.
    Vi spiego cosa vorrei riuscire a fare

    All'interno di una userform ho creato una CheckBox che una volta selezionata mi "espande" le dimensioni della userform mostrando una frame.
    Volevo creare all'interno della frame una serie di righe di textbox il cui numero dipende dall'essere nullo o vuoto il valore della textbox precedente.
    praticamente dovrebbe a crearsi in una nuova riga una nuova textbox.
    ho creato quindi un ciclo do loop until che vedere sotto.
    e qui nasce il problema.
    non riesco a salvare i dati , nel senso il ciclo si ferma immediatamente perchè non mi lascia inserire alcun valore, o meglio si ferma perchè il ciclo vede subito una riga vuota.
    come faccio a " stoppare " questo ciclo per inserire questo valore e salvarlo in "Worksheets("Start").Cells(2 * i + 1, 2 * jjjj + 2).Value" e poi ripartire con questo ciclo nuovamente per inserire altri valori?
    con che nome viene salvato un valore di una textbox dinamica?

    ho provato di tutto ma con scarsi risultati quindi ho pulito il codice perche fosse il più comprensibile possibile

    grazie a tutti dell'aiuto

     
    Private Sub CheckBox1_Click()
    Dim laB1 As Control
    i = Worksheets("Foglio3").Range("A1").Value
    If CheckBox1.Value = True Then
    With UserForm2
        .Width = 1000
    End With
    jjjj = 0
    Do
        jjjj = jjjj + 1
        Worksheets("Grafico").Range("B" & i).Value = jjjj
        Set laB1 = Frame2.Controls.Add("Forms.TextBox.1")
            With laB1
                .Name = "chkDemo" & jjjj
                .Height = 20
                .Width = 100
                .Left = 20
                .Top = 10 * jjjj * 2 + 30
            End With
            '?????
            '?????
            '   Worksheets("Start").Cells(2 * i + 1, 2 * jjjj + 2).Value = ??????
     Loop Until Worksheets("Start").Cells(2 * i + 1, 2 * jjjj + 2).Value = 0 Or Empty
    
    End If
    End Sub



  • di Vecchio Frac data: 22/09/2013 14:33:41

    Forse si può pensare a soluzion migliori.
    Comunque ti invito a riflettere sull'ultima riga quella che contiene la condizione del Loop:
    Loop Until Worksheets("Start").Cells(2 * i + 1, 2 * jjjj + 2).Value = 0 Or Empty
    Sicuro che faccia quello che ti aspetti? A cosa serve Or? che cosa fa? che risultato ottieni mettendo in Or un valore di tipo integer e il valore vuoto?