Suppression ligne choisie

Bonjour le forum,

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 ?

Merci d’avance à vous

Rubis

Re,

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 .

Merci à vous

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

Donc dans ton traitement je mettrais :

Sheets(« CDE BOULANGERIE PÂTISSERIE »).Rows(ListBox1.ListIndex + 2 & « : » & ListBox1.ListIndex + 2).Delete
ou
Sheets(« CDE BOULANGERIE PÂTISSERIE »).Range(« A » & ListBox1.ListIndex + 2).Entirerow.Delete

Maintenant si ton écriture te donne le bon résultat inutile de la modifier

Concernant ton appel au secours lors de mon déplacement en Italie as tu réussis à solutionner ta problématique
Tu voudras bien me dire

Dans l’attente de lire

Bonjour FFO,

Merci pour ce retour ( et les compliments) :hear_no_evil:

Tout fonctionne, j’ai réussi.

Pour mon appel à l’aide, oui j’ai retrouvé le fichier que tu m’avais fais à une époque et j’ai pu créer le userform la semaine dernière.

Heureusement que certains fichiers étaient sur une clé usb et que elle n’a pas brûlée lors de notre incendie su site.

Merci à toi FFO et peut-être à demain, pour aujourd’hui j’ai fini.

Rubis

il faut ajouter 1 au lieu de 2


     lignechoisie = ListBox1.ListIndex + 1   'parce qu'on commence avec 0

     Range("Tab_CDE_BP").Rows(lignechoisie).Delete     ' traiter comme une plage
     oubien
     Range("Tab_CDE_BP").ListObject.ListRows(lignechoisie).Range.Delete     'traiter commen un TS


1 « J'aime »

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 plaisirs de t’aider à nouveau

1 « J'aime »

Re FFO,

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.

Bonne soirée A+

Rubis.

Bonjour Cow18

Merci pour ton code, mais tu verras dans le post pour FFO j’ai modifié l’ensemble avec un nouveau code et cela à l’air de bien tourné.

Je laisserai des infos concernant cela demain.

A+

Rubis