BOUTON_SUPPRIMER

Résolu

Bonjour,

mon bouton "supprimer" ne fonctionne pas, je voudrais supprimer une ligne si je clique sur le bouton suprimer " mais pas n'importe quel ligne" sauf la ligne que je veux supprimer en utilisant son id.

pourriez vous m'aider s'il vous plait. j'arrive pas à trouver l'erreur sachant que le msgBox aprés le if ne fonctionne pas, donc probablement c'est le if qui fonctionne pas !


Windows / Firefox 102.0

4 réponses

  1. Contributeur Ambassadeur

    bonjour,

    as-tu exécuté le code en pas à pas?

    1
    1. Private Sub btnsupprimer_Click()

      Dim i As Integer
      Dim suppresion As String
      suppression = InputBox("veuillez entrer l'id à supprimer", "Suppression d'enregistrement")

      With ThisWorkbook.Sheets("Electrique")
           For i = .Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1
          
                 If .Range("A" & i).Value = suppression Then
                 'MsgBox suppression
                  Rows(i).Delete
                 End If
           Next i

      End With

      End Sub

      Voici mon code si vous voulez le tester

      0
  2. Oui je l'ai exécuté en pas à pas, et j'ai remarqué que la condition if ne s'execute pas, par contre la boucle for marche trés bien : quand je met msgBox aprés la boucle for, msgBox marche, mais quand je le met aprés la condition if, msgBox ne marche pas!

    j'ai aucune idée qu'est ce que je dois faire de plus ? pour tester mon code

    je vous remercie pour votre reponse

    0
    1. Contributeur Ambassadeur

      Le plus probable, c'est que la cellule ne contienne pas précisément la valeur recherchée.
      Quand tu es en pas à pas, tu peux confirmer que les deux valeurs semblent identiques?

      0
    2. @yg_be

      Bonjour yg_be,

      avec ce code que je te monte, j'ai eu les resultats suivants : ça m'affiche que la derniere ligne et la premiere(il affiche en premier 334 puis 1 et il s'arrete)  ! alors que j'ai demandé de parcourir toutes les lignes allant de la derniere ligne .

      c'est la boucle for qui marche pas bien n'est ce pas !

      0
    3. Contributeur Ambassadeur

      Es-tu certain d'avoir exécuté en pas à pas?  Comment as-tu fait?

      0
    4. @yg_be
      Private Sub btnsupprimer_Click()
      
      'Dim Indexlist
      'Détermination de la ligne dans la feuille de base
      'Indexlist = ListBox7.ListIndex + 2
      'If Indexlist < 2 Then Exit Sub
      'Sheets("Electrique").Rows(Indexlist).Delete
      'Application.ScreenUpdating = True
      'Me.ListBox7.RemoveItem Me.ListBox7.ListIndex
      
      'Unload Me
      'Electrique.Show
      
      Dim i As Integer
      Dim suppresion As String
      suppression = InputBox("veuillez entrer l'id à supprimer", "Suppression d'enregistrement")
       MsgBox suppression
      With ThisWorkbook.Sheets("Electrique")
           For i = .Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1
                 If (.Range("A" & i).Value = suppression) Then
                 
                  Rows(i).Delete
                 
                 End If
           Next i
       MsgBox i
      End With
      
      End Sub

      Est ce que tu veux dire par pas à pas, executer instruction par instruction ! c'est bien ça ? ligne par ligne ? c'est ça je que j'ai fait .

      0
  3. la ligne est bien supprimé grace à ton code je vous en remercie

    , j'ai remarqué que sur ma base de donée la colone ID

    devient #REF! sachant que j'ai supprimé la ligne 10

    0
    1. Contributeur Ambassadeur

      Probablement parce qu'elle contient une formule qui est perturbée par la suppression.

      0
    2. @yg_be

      Je te remercie infiniment yg_be , effectivement j'avais mis dans la colonne "ID" icrementation +1 de chaque cellule, je l'ai supprimé et ça marché très bien, 

      0
    3. Contributeur Ambassadeur
      @mzouali

      peux-tu alors marquer la discussion comme résolue?

      1
  4. Bien sur, c'est fait Merci infiniment

    0