Bouton supprimé marche pas correctement

Résolu
mimi -  
 mimi -

Bonjour tout le monde,

J'ai realisé une application en VBA avec des boutons, ajouter, modifier, supprimer et quitter.

le fonctionnement de mon application est comme suit :

j'ai 6 feuilles au totale dans mon classeur :

feuille 1 : "Menu" 

feuille 2: ma premiere base de donnée

feuille 3: ma deuxieme base de donnée

feuille 4: ma troisieme base de donnée

feuille 5: ma cinquième base de donnée

dans la feuille "Menu", j'ai mis que des boutons " 5 boutons" au total; quand je clique sur le premier bouton un userform s'affiche, le userform est lié à la premiere base de donnée.

mes boutons ajouter et quitter marchent très bien, par contre les deux boutons supprimer et modifier marchent sauf si je suis dans la feuile de la base à supprimer !

je m'explique : si je suis dans la feuille "Menu" et je clique sur le premier bouton, le premier userform s'affiche, j'ai une listbox dans le userform qui affiche ma base recherchée, si je selectionne la lisgne à supprimer ! la ligne ne se supprime pas! parce que je suis dans la feuille menu!

par contre quand je rentre à 2 eme feuille du la premiere base et je rentre au code et je complile mon userform, si je clique sur supprimer, la ligne se supprime.

j'espere j'ai bien expliquer mon probleme, en bref, le bouton supprimer du userform ne marche pas si je suis dans la feuille menu, et si je suis dans la feuille du base de donnée, le bouton marche. !

voici mon code du bouton supprimer


Windows / Firefox 105.0

Private Sub btnsupprimer_Click()
Dim i As Long, suppression As String, present 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
 present = .Range("A" & i).Value
 If present = suppression Then
   MsgBox "suppression de la piece numero " & suppression
   MsgBox "la pièce est supprimée"
   Rows(i).Delete
Else 'If present <> suppression Then
   MsgBox "l'identifiant n'existe pas"
End If
 Next i
End With

End Sub

2 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    bonjour,

    En ligne 11, tu ne précises pas dans quelle feuille tu veux agir.  Il suffit sans doute d'ajouter un point en début de ligne, pour préciser que tu veux agir dans la feuille précisée dans le with.

    0
    1. mimi
       

      Merci infiniment , c'est exactement ce qu'il me manquait , un point au debut de la ligne.

      je vous remercie encore une fois

      0
  2. mimi
     

    Pourriez vous voir avec moi le fonctionnement du bouton modifier s'il vous plait, j'ai le meme probleme que j'avais avec le bouton supprimer. le bouton marche sauf si je suis dans la base !

    merci infiniment,

    Private Sub b_modif_Click()
    
     Dim i As Long
    
       If MsgBox("Confirmez-vous la modification ?", vbYesNo, "Confirmation de modification") = vbYes Then
        
       With ThisWorkbook.Sheets("Electrique")
        For i = .Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1
        If Cells(i, 1) = Me.T_Id.Text Then
        Cells(i, 1).Select
        Exit For
        End If
        Next i
        ActiveCell.Offset(0, 1) = Me.T_Designation.Value
        MsgBox " Modification confirmée"
     End With
     End If
    End Sub
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      Je ferais plutôt ainsi (non testé):

      Private Sub b_modif_Click()
      
       Dim i As Long
      
         If MsgBox("Confirmez-vous la modification ?", vbYesNo, "Confirmation de modification") = vbYes Then
          
         With ThisWorkbook.Sheets("Electrique")
          For i = .Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1
            If .Cells(i, 1) = Me.T_Id.Text Then
              .Cells(i, 1).Offset(0, 1) = Me.T_Designation.Value
              MsgBox " Modification confirmée"
              Exit For
            End If
          Next i
       End With
       End If
      End Sub

      Il manquait un point devant les deux "Cells".
      Et l'utilisation du Select et Active peut conduire à des comportements inattendus.

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

        Je vous remercie infiniment, votre proposition marche très bien.

        merci encore une fois

        0