USERFORM spostare copiare cancellare



  • USERFORM spostare copiare cancellare
    di egly87 data: 06/04/2017 22:25:22

    Ciao a tutti,
    Ho un problema con un user form.
    Dovrei fare un userform con due listbox. Dovrei spostare da una listbox all'altra parole/stringhe e cancellarla dal listbox vecchia .
    Ho creato il codice che ho scritto sotto che si attiva tramite un buttone_click.
    Mi sposta la parola/stringa ma non me lo cancella e mi da errore.
    Volevo capire se qualcuno di voli mi sa aiutare dove sto sbagliando!!!
    vi ringrazio anticipatamente
     
    Private Sub inserisci_Click()
    Dim i As Long
    For i = 0 To Me.ListBox1.ListCount - 1
    If Me.ListBox1.Selected(i) = True Then
    Me.ListBox2.AddItem Me.ListBox1.List(i)
    End If
    Next i
    
    For i = Me.ListBox1.ListCount - 1 To 0 Step -1
    If Me.ListBox1.Selected(i) Then
    Me.ListBox1.RemoveItem i
    End If
    Next i
    End Sub
    



  • di Marius44 data: 07/04/2017 07:20:25

    Ciao
    dovresti provare con DUE pulsanti diversi. Con il primo sposti (e cancelli) da List1 a List2 l'elemento che hai selezionato, col secondo fai viceversa.

    Vedi se le due routine sotto fanno al caso tuo. Praticamente il codice è uguale ma a ListBox invertite.
    Fai sapere. Ciao,
    Mario
     
    Private Sub CB1_Click() 'sposta un elemento da sx a dx
        If List1.ListIndex >= 0 Then
            List2.AddItem List1.Text
            List1.RemoveItem List1.ListIndex
        End If
    End Sub
    
    Private Sub CB2_Click() 'sposta un elemento da dx a sx
        If List2.ListIndex >= 0 Then
            List1.AddItem List1.Text
            List2.RemoveItem List2.ListIndex
        End If
    End Sub



  • di somesif (utente non iscritto) data: 07/04/2017 10:46:59

    Che errore hai con il codice che hai mostrato?

    Anche se è ottimizzabile (usando un solo ciclo) non mi pare sbagliato.



  • di Albatros54 data: 07/04/2017 13:34:32

    vedi questo Tutorial
    h t t p://www.excelvba.it/corso/oggetti/EsempioRiepilogativo.mp4
    ciao
    albatros54





  • di egly87 data: 09/04/2017 23:10:08

    sono riuscito a trovare la soluzione grazie a tutti
    Grazie anche per il video è stato molto utile



  • di patel data: 10/04/2017 07:37:50

    visto che hai trovato la soluzione potresti mostrarla sul forum ? potrebbe tornare utile ad altri.





  • di egly87 data: 01/05/2017 17:21:46

    Eco la soluzione
     
    Private Sub BTN_moveAllLeft_Click()
      Dim iCtr As Long
    
        For iCtr = 0 To Me.ListBox2.ListCount - 1
            Me.ListBox1.AddItem Me.ListBox2.List(iCtr)
        Next iCtr
    
        Me.ListBox2.Clear
    End Sub
    
    Private Sub BTN_moveALLRight_Click()
        Dim iCtr As Long
    
        For iCtr = 0 To Me.ListBox1.ListCount - 1
            Me.ListBox2.AddItem Me.ListBox1.List(iCtr)
        Next iCtr
    
        Me.ListBox1.Clear
    End Sub
    
    Private Sub BTN_MoveSelectedLeft_Click()
        Dim iCtr As Long
    
        For iCtr = 0 To Me.ListBox2.ListCount - 1
            If Me.ListBox2.Selected(iCtr) = True Then
                Me.ListBox1.AddItem Me.ListBox2.List(iCtr)
            End If
        Next iCtr
    
        For iCtr = Me.ListBox2.ListCount - 1 To 0 Step -1
            If Me.ListBox2.Selected(iCtr) = True Then
                Me.ListBox2.RemoveItem iCtr
            End If
        Next iCtr
    End Sub