Supprimer une ligne avec un bouton

SOSO -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je sais que plusieurs sujets ont été créés à ce sujet mais je ne trouve pas comment faire ce que je souhaite.

Voila j'ai une base de donnée où la première colonne est un matricule. Je voudrais rattacher une macro à un bouton pour que lorsque l'on clique dessus un message apparaisse demandant "quel matricule supprimer ?" et que la ligne correspondant au matricule saisi soit effacée.

Comment faire ?

Merci d'avance pour votre aide

2 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Pourquoi compliquer ?
    Avec cette macro dans le code de la feuille et un double clic sur la ligne à supprimer, cela fonctionne.
    Private Sub Worksheet_BeforeDoubleClick(ByVal sel As Range, Cancel As Boolean)
    If vbYes = MsgBox("Voulez-vous supprimer " & sel.Value, vbYesNo, "Suppression matricule") Then
        Rows(sel.Row).Delete
    End If
    End Sub
    0
    1. SOSO
       
      Bonjour,

      Merci pour votre réponse, effectivement ca pourrait marcher comme ca. Le soucis c'est que pour l'usage prévu de ce fichier il serait plus simple de procéder avec un bouton.
      Ou bien alors peut être une case où on saisirait le matricule et ensuite un bouton supprimer ?
      0
    2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonjour,

      Si tu tiens à compliquer, tu crées un bouton avec ce code :
      Private Sub CommandButton1_Click()
      Dim rep As Variant, cel As Range
          rep = InputBox("Saisissez le matricule à supprimer", "Suppression matricule")
          If rep = "" Then Exit Sub
          Set cel = ActiveSheet.Columns(1).Find(rep, [A1], xlValues, xlWhole)
          If cel Is Nothing Then
              MsgBox "Matricule absent"
          Else
              Rows(cel.Row).Delete
              MsgBox "Matricule supprimé : " & rep
          End If
      End Sub
      
      0
    3. SOSO
       
      Désolée pour le délais de réponse.
      Ca a marché nickel, juste ce que je voulais, merci beaucoup
      0
    4. SOSO
       
      Oups j'ai parlé un peu vite. En fait il faudrait que la maccro efface la ligne plutôt que de la supprimer. En effet j'ai d'autres onglets avec des formules et le fait que la ligne soit supprimée pose soucis. Comment faire pour que la ligne soit simplement effacée ?
      0
    5. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonjour,

      tu remplaces
      .Delete
      par
      .Clearcontents
      0
  2. guess
     
    Private Sub CommandButton1_Click()

    result= MsgBox("Saisissez le matricule à supprimer", ,"Suppression matricule")

    If rep = "" Then Exit Sub
    Set cel = ActiveSheet.Columns(1).Find(rep, [A1], xlValues, xlWhole)
    If cel Is Nothing Then
    MsgBox "Matricule absent"
    Else
    Rows(cel.Row).Delete
    MsgBox "Matricule supprimé : " & rep
    End If

    'on peut passer par la fonction find

    Sub exemple()
       'Activation de la feuille 1
       Sheets("Feuil1").Activate
       'Sélection de la cellule A8
       'Range("A8").Select
    Cells.Find(What:="result", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
    End Sub

    ActiveSheet.Rows(ActiveCell.Row).EntireRow.Delete
    End Sub

    Ce ne sont juste que des pistes
    0
    1. SOSO
       
      Merci pour votre aide. En final la macro de gbinforme a marché parfaitement.
      Merci quand même
      0