eliminare una riga della tabella tramite listbox

Anonimo
2023-02-17T17:55:10+00:00

Buonasera; ho creato una userform nella quale è presente una listbox che contiene i righi del foglio "prima_nota".

Sulla userform ("GIORNALE") sono presenti pulsanti di comando che mi permettono di:

  • inserire nuove righe;
  • modificare riga (selezionandola dalla listbox "LISTA")

Non riesco ad eliminare la riga. Questo è codice:

Private Sub btnelimina_Click()
'--- CANCELLA RECORD SELEZIONATO -------
Dim riga_da_cancellare As Integer
Dim i As Integer
For i = 0 To lista.ListCount - 1
If lista.Selected(i) = True Then
codice = lista.List(i, 0)
Exit For
End If
Next i
Sheets("prima_nota").Activate
Columns("a:a").Select
riga_da_cancellare = Selection.Find(riga_da_cancellare).Row
Selection.Delete shift: xlUp
End Sub

Spero in un cortese aiuto: Grazie

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

7 risposte

Ordina per: Più utili
  1. Anonimo
    2023-02-17T20:04:34+00:00

    Ciao Nicola,

    Benissimo, non avevo definito la variabile wb as workbook! Scusami e grazie infinite funziona benissimo

    Mi fa piacere che abbia risolto il problema e ti ringrazio per il cortese riscontro.

    Per chiudere questa discussione, ti chiedo gentilmente di contrassegnare il mio codice.

    Alla prossima.

    ===

    Regards,

    Norman

    Immagine

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2023-02-17T19:53:26+00:00

    Benissimo, non avevo definito la variabile wb as workbook! Scusami e grazie infinite funziona benissimo

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2023-02-17T19:49:44+00:00

    purtroppo mi da errore

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2023-02-17T18:42:43+00:00

    Ciao Nicola,

    Modificando il nome dell'oggetto CommandButton in base al tuo scenario, il codice diventa:

    '========>>

    Private Sub btnElimina_Click()

    Dim WB as workbook
    
    Dim SH As Worksheet 
    
    Dim Rng As Range 
    
    Dim i As Long 
    
    Const sFoglio As String = "prima\_nota" 
    
    Set WB = ThisWorkbook 
    
    Set SH = WB.Sheets(sFoglio) 
    
    For i = 0 To Lista.ListCount - 1 
    
        If Lista.Selected(i) = True Then 
    
            codice = Lista.List(i, 0) 
    
            Exit For 
    
        End If 
    
    Next i 
    
    Set Rng = SH.Columns("A").Find(codice) 
    
    If Not Rng Is Nothing Then 
    
        Rng.Resize(1, Lista.ColumnCount).Delete Shift:=xlUp 
    
    End If 
    

    End Sub

    '<<========

    ===

    Regards,

    Norman

    Immagine

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2023-02-17T18:28:19+00:00

    Ciao Nicola,

    Buonasera; ho creato una userform nella quale è presente una listbox che contiene i righi del foglio "prima_nota".

    Sulla userform ("GIORNALE") sono presenti pulsanti di comando che mi permettono di:

    • inserire nuove righe;
    • modificare riga (selezionandola dalla listbox "LISTA")

    Non riesco ad eliminare la riga. Questo è codice:

    Private Sub btnelimina_Click()
    '--- CANCELLA RECORD SELEZIONATO -------
    Dim riga_da_cancellare As Integer
    Dim i As Integer
    For i = 0 To lista.ListCount - 1
    If lista.Selected(i) = True Then
    codice = lista.List(i, 0)
    Exit For
    End If
    Next i
    Sheets("prima_nota").Activate
    Columns("a:a").Select
    riga_da_cancellare = Selection.Find(riga_da_cancellare).Row
    Selection.Delete shift: xlUp
    End Sub

    Immagine

    Spero in un cortese aiuto: Grazie

    Prova a sostituire il tuo codice con la seguente versione:

    '========>>

    Private Sub CommandButton1_Click()

    Dim WB as Workbook
    
    Dim SH As Worksheet 
    
    Dim Rng As Range 
    
    Dim i As Long 
    
    Const sFoglio As String = "prima\_nota" 
    
    Set WB = ThisWorkbook 
    
    Set SH = WB.Sheets(sFoglio) 
    
    For i = 0 To Lista.ListCount - 1 
    
        If Lista.Selected(i) = True Then 
    
            codice = Lista.List(i, 0) 
    
            Exit For 
    
        End If 
    
    Next i 
    
    Set Rng = SH.Columns("A").Find(codice) 
    
    If Not Rng Is Nothing Then 
    
        Rng.Resize(1, Lista.ColumnCount).Delete Shift:=xlUp 
    
    End If 
    

    End Sub

    '<<========

    ===

    Regards,

    Norman

    Immagine

    La risposta è stata utile?

    0 commenti Nessun commento