ListBox e CheckBox



  • ListBox e CheckBox
    di Cobra93 (utente non iscritto) data: 19/12/2014 07:17:25

    Salve,
    ho un problema che me lo trascino da qualche mese.

    Vorrei caricare in una LISTBOX di una USERFORM aperta nel foglio 2 i dati del FOGLIO 1.

    Inoltre non riesco a modificare una riga di una listbox tramite la casella di controllo (CheckBox).
    Vorrei realizzare un modo che quando inserisco la spunta in una o più righe della listbox tramite la casella di controllo, formatta la riga o le righe inserendo una "X" nella casella di lavoro "SPUNTA" tramite la CheckBox, così tutte le righe con il segno X vengono copiate su un foglio (FATTURA).

    RINGRAZIO IN ANTICIPO IL VOSTRO AIUTO

    PS: ho inserito come carico i dati del foglio corrente in una listbox.
     
    Private Sub UserForm_activate()
    UserForm1.ListBox1.AddItem "DATA"
        UserForm1.ListBox1.List(RigaLista, 1) = "N° DOC"
        UserForm1.ListBox1.List(RigaLista, 2) = "ID CLIENTE"
        UserForm1.ListBox1.List(RigaLista, 3) = "NOME E COGNOME"
        RigaLista = 0
        riga = Worksheets(1).UsedRange.Rows.Count
        For indi = 2 To riga
                RigaLista = RigaLista + 1
                UserForm1.ListBox1.AddItem Range("A" & indi)
                UserForm1.ListBox1.List(RigaLista, 1) = _
                Range("B" & indi)
                UserForm1.ListBox1.List(RigaLista, 2) = _
                Range("C" & indi)
                UserForm1.ListBox1.List(RigaLista, 3) = _
                Range("D" & indi)
        Next
    End Sub



  • di lepat (utente non iscritto) data: 19/12/2014 08:26:16

    allega un file di esempio, altrimenti non è possibile testare il tuo codice



  • di Grograman data: 19/12/2014 09:05:43

    Concordo con Patel, a naso comunque sintetizzerei come segue il tuo codice, limitatamente all'alimentazione della listbox:

    1- Dichiarando le variabili
    2- Mettendo la proprietà "ColumnHeads = true" nelle prorietà della listbox, questo supponendo che nel foglio 1 le celle della prima riga siano "N° DOC ID CLIENTE NOME E COGNOME"
    3- alimentando la listbox sfruttando la proprietà "rowsource" piuttosto che applicando li metodo "additem"
     
    Option Explicit
    Private Sub UserForm_activate()
    Dim riga As Long
      riga = Worksheets(1).Range("A" & Rows.Count).End(xlUp).Row
      'ho messo il nome del foglio tra apici così da poter alimentare la listbox indipendentemente dal foglio attivo
      UserForm1.ListBox1.RowSource = "'" & Worksheets(1).Name & "'!" & Worksheets(1).Range("A2:C" & riga).Address
    End Sub