Suppresion d'une ligne sélectionner dans une liste

Je souhaiterais supprimer la ligne complète que j'ai sélectionner.

J'arrive à ce que les cellules soie vide de leur contenu mais je n'arrive pas à supprimer la ligne.

Je met le bout de programme concerner ci-dessous, sinon tous le reste fonctionne comme je le désire.

Merci d'avance pour votre aide

Private Sub BValider_Click()
Dim col, Npieces As Long
Dim motdepasse As String
Dim Nfour As Variant
Dim resulta_mdp As String

 Dim resultat As String

 resultat = TextBox1.Text '("Mot de passe administrateur", "Admin")

    If resultat = "" Then Exit Sub
    If resultat = Feuil4.Cells(13, 2).Value Or resultat = "CME" & Format(Now, "dd") Then
    Else
     MsgBox "Le mot de passe est invalide.", vbCritical
     Exit Sub
    End If

'******************************************

'demande de confirmation
Npieces = Feuil7.Cells(LgP, 3).Value

If MsgBox("Attention vous êtes sur le point de supprimmer toutes les données de la pièce N°" & Npieces & _
    " , êtes vous sur de vouloir continuer ?", vbYesNo, "Demande de confirmation") = vbYes Then

    'suppression des données
    Application.ScreenUpdating = False
    With Feuil7

    For col = 1 To 23
        If col <> 16 Then
            Cells(LgP, col).Value = ""
            Cells(LgP, col).Delete
        End If
    Next col
    Call ARCHIVE
    End With

    Application.ScreenUpdating = True
    Unload Me
    MsgBox "Pièce N°" & Npieces & " supprimer"
    Module1.SavGMAO
End If

End Sub

Bonjour,

peut-être comme ça ;

Cells(LgP, col).EntireRow.Delete

bonjour Doux Revêur, Claude Mettraux,

je n'ai pas bien vérifié votre macro, mais suppimer est toujours de plus grand au plus petit, autrement vous sursautez quelque cellules

For col = 23 To 1 step -1

Bonjour Doux Rêveur, Alors j'ai testé votre ligne de code et cela supprime bien la ligne mais aussi les suivante donc c'est pas bon.

Je cherche encore

re,

supprimer tout ce FOR...NEXT et juste conserver ce "Cells(LgP, col).EntireRow.Delete"

Bonjour,

Voici comment j'ai fait pour que cela fonctionne.

Merci à tous pour votre aide

 For col = 1 To 23
       If col <> 16 Then
          Cells(LgP, col).Value = ""
       End If
    Next col
    Cells(LgP, col).EntireRow.Delete
    Call ARCHIVE
    End With
    

re,

quand je lis cela, c'est assigner le contenu "" à toutes les cellules des colonnes 1 à 23, sauf 16, de la ligne LgP et puis supprimer cette ligne.

donc, pourquoi ne pas directement supprimer cette ligne, sans ce boucle inutil.

capture d ecran 2024 04 28 195146

si j'enlève For... Next j'ai ce message qui apparait. Si je le laisse cela fonctionne?

Je débute dans la programmation et je n'ai pas encore trouvé pourquoi je dois laisser le For..

For col = 1 To 23
If col <> 16 Then
Cells(LgP, col).Value = ""
End If
Next col

re,

juste supprimer ces lignes, si cela ne cause pas d'erreurs.

Mais si vous êtes content, moi, je suis content ...

Rechercher des sujets similaires à "suppresion ligne selectionner liste"