j’ai un TS et je voudrai pouvoir supprimer la ligne choisie dans la listbox.
Voici le code que j’ai:
Private Sub CommandButton37_Click()
If ListBox1.ListIndex = -1 Then
MsgBox ("Veuillez effectuer un choix de commande préalable !!!")
Exit Sub
End If
If MsgBox("Voulez vous supprimer la commande sélectionnée ?", vbYesNo) = vbNo Then
MsgBox ("Traitement annulé !!!")
Exit Sub
End If
LIGNECHOISIE = ListBox1.ListIndex + 2
'Sheets("CDE BOULANGERIE PÂTISSERIE").Rows(LIGNECHOISIE & ":" & LIGNECHOISIE).Delete
[Tab_CDE_BP].Rows(LIGNECHOISIE & ":" & LIGNECHOISIE).Delete
MsgBox ("Suppression effectuée !!!")
Call UserForm_initialize
End Sub
Mais si j’active ce code il ne supprime pas la ligne choisie dans la listbox mais la dernière ligne du TS.
Pouvez vous m’aider avec cela ou faut-il un fichier exemple ?
je crois avoir trouvé une solution, enfin à priori cela fonctionne comme voulu.
Private Sub CommandButton37_Click()
If ListBox1.ListIndex = -1 Then Exit Sub
Sheets("CDE BOULANGERIE PÂTISSERIE").Rows(ListBox1.ListIndex + 2).Delete
ListBox1.RemoveItem (ListBox1.ListIndex)
MsgBox ("Suppression effectuée !!!")
Call UserForm_initialize
End Sub
Aux pros de ce forum de me dire si cela est correct ou pas .
Bonjour Rubis
Je vois que tu te débrouilles comme un chef
Bientôt tu ne n’auras plus besoin de notre aide à ce rythme
Moi pour supprimer une ligne j’écris la ligne de code comme ceci :
Sheets(« nom de l’onglet »).rows(« numéro de la ligne : numéro de la ligne »).delete
ou
Sheets(« nom de l’onglet »).Range(« A et numéro de la ligne »).Entirerow.Delete
Bravo bravo !!!
Tu deviens quasiment autonome
Félicitations
Je constate que mes propositions même anciennes ont toujours pour toi leur utilité c’est merveilleux
Une petite suggestion pour construire tes lignes de codes que moi même j’utilise lorsque j’ai à réaliser des opérations inhabituelles ou si ma memoire me fait défaut l’age aidant
Realises manuellement l’opération à effectuer après avoir activė l’enregistreur de macro
Tu récupères la ligne de code qu’il a généré en l’adaptant
Une roue de secours très pratique dont j’abuse fréquemment et bien utile
Le monde de la programmation VBA est immense impossible de tout retenir
Nos mains tendues en dernier recours restent à ta disposition
Au final j’ai modifié un peu le TS en lui ajoutant une colonne au départ avec un numéro via un Label invisible et j’ai placé le code ci-dessous.
Le code " TRIAGE_CDE_BP " sert comme triage. Il se fait aussi lorsque je veux créer une nouvelle commande ou modifier une commande, comme ça ma colonne avec les dates livraisons est toujours dans l’ordre.
Private Sub CommandButton37_Click() ' Supprimer la commande sélectionné
Application.ScreenUpdating = False
Set Wcde = Sheets("CDE BOULANGERIE PÂTISSERIE")
Dl = Wcde.Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To Dl
If Me.lblcdebp.Caption = Wcde.Cells(i, 1).Value Then
Wcde.Rows(i).Delete
Exit For
End If
Next
MsgBox "La commande à été supprimée."
Call TRIAGE_CDE_BP
Unload Me
End Sub
Demain matin je ferai une série de tests mais à priori cela fonctionne bien.
Je te tiendrai informé. Merci pour la main tendue.