BOUTON_SUPPRIMER

Résolu
mzouali Messages postés 22 Statut Membre -  
mzouali Messages postés 22 Statut Membre -

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. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    bonjour,

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

    1
    1. mzouali Messages postés 22 Statut Membre
       

      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. mzouali Messages postés 22 Statut Membre
     

    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. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      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. mzouali Messages postés 22 Statut Membre > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       

      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. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > mzouali Messages postés 22 Statut Membre
       

      Merci de partager ton code comme du texte, en suivant ces conseils: https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code

      .

      Pour que tu comprennes mieux le code que tu as écrit, je suggère de modifier tes instructions msgbox, ainsi:

      msgbox "suppression: " & suppression
      '...
      msgbox "i: " & i
      0
    4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

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

      0
    5. mzouali Messages postés 22 Statut Membre > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       
      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. mzouali Messages postés 22 Statut Membre
     

    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. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

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

      0
      1. mzouali Messages postés 22 Statut Membre > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         

        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
      2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > mzouali Messages postés 22 Statut Membre
         

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

        1
  4. mzouali Messages postés 22 Statut Membre
     

    Bien sur, c'est fait Merci infiniment

    0