Supprimer une ligne depuis un Userform

  • Initiateur de la discussion Initiateur de la discussion ivan27
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ivan27

XLDnaute Occasionnel
Bonjour le Forum

Dans le fichier joint, feuille "Accueil" un bouton ouvrant un formulaire.
Ce formulaire affiche les lignes de la feuille "Clients"
Je souhaiterais supprimer la ligne sélectionnée dans le combobox
Le problème : Le code me supprime la bonne ligne mais sur la feuille "Accueil".
La solution est certainement toute simple mais après pas mal de recherches et des désignations différentes dans le code, de la feuille "Clients", je n'y arrive toujours pas et j'ai décidé de faire appel à vous...
Merci d'avance
Ivan
 

Pièces jointes

Re : Supprimer une ligne depuis un Userform

Bonjour,

Code:
Private Sub CommandButton1_Click()
    
    On Error Resume Next
    With Sheets("Clients")
        .Rows(.[A1:A100].Find(ComboBox1.Value).Row).EntireRow.Delete
    End With
    ComboBox1.RemoveItem (ComboBox1.ListIndex)
    ComboBox1.Text = ""
    TextBox1 = ""
    TextBox2 = ""
    
End Sub

P.S. attention à la méthode .FIND si quelqu'un modifie les paramètres de recherche dans (Chercher/remplacer) par exemple le paramètre MatchCase, la méthode .Find risque de ne plus trouver la valeur cherchée.

Voir l'aide excel sur . FIND

A+
 
Re : Supprimer une ligne depuis un Userform

Bonjour
j'ai modifié comme ci-dessous, ça me parait fonctionner

Code:
' Formulaire Consultation Clients

Private Sub UserForm_Initialize() ' Initialisation
Set f = Sheets("Clients")
For Each c In f.Range("A2:A" & f.[A65000].End(xlUp).Row)
Me.ComboBox1.AddItem c
Me.ComboBox1.SetFocus
Next c
End Sub

Private Sub ComboBox1_Click()
  Set f = Sheets("Clients")
  ligne = Me.ComboBox1.ListIndex + 2
  Me.TextBox1 = f.Cells(ligne, 2)
  Me.TextBox1.Value = Format(Me.TextBox1.Value, "0.00 %")
  Me.TextBox2 = f.Cells(ligne, 3)
  Dim txt As String
  txt = Replace(Replace(Replace(TextBox2, ".", ","), " ¤", ""), " ", "")
  TextBox2 = Format(CDbl(txt), "### ### ##0.00 ¤")
End Sub

Private Sub TextBox1_Change()
TextBox1 = Replace(TextBox1.Value, ".", ",")
End Sub

Private Sub TextBox2_Change()
TextBox2 = Replace(TextBox2.Value, ".", ",")
End Sub

Private Sub Fermer_Click()
Unload Me
End Sub

Private Sub CommandButton1_Click()
Set f = Sheets("Clients")
Application.ScreenUpdating = False
On Error Resume Next
Sheets("Clients").[A1:A100].Find(ComboBox1.Value).EntireRow.Delete
Application.ScreenUpdating = True
End Sub
Bonne journée
 
Re : Supprimer une ligne depuis un Userform

bonjour ivan27,Toine45,Hasco🙂🙂

en simplifiant un peu tout

Code:
Private Sub userform_initialize()
 ComboBox1.List = Feuil1.Range("a2:c" & Feuil1.Cells(Rows.Count, 1).End(3).Row).Value
End Sub
Private Sub ComboBox1_Click()
 TextBox1 = Replace(Format(ComboBox1.List(ComboBox1.ListIndex, 1), "0.00 %"), ".", ",")
 TextBox2 = Replace(Format(ComboBox1.List(ComboBox1.ListIndex, 2), "### ### ##0.00 ¤"), ".", ",")
End Sub
Private Sub CommandButton1_Click()
 If ComboBox1.ListIndex > -1 Then Feuil1.Rows(ComboBox1.ListIndex + 2).Delete
 Unload Me: UserFormClients.Show
End Sub
Private Sub Fermer_Click()
 Unload Me
End Sub
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour