Création d'un bouton par une action externe

Bonjour,

Je suis entrain de construire un excel avec une scanette que j'ai récupéré pour faire un état des stocks de mes livres.

Je m'explique, je m'achète plusieurs livres, je les scans 1 par 1 ( le code-barre), ils s'incrémentent dans mon Excel, jusque la aucun problème !

Maintenant, je vends 2 livres ! Je souhaite les retirer de mon stock Excel.

Mon idée est de scanner le code-barre du livre que j'ai vendu, mais plutôt que d'incrémenter, je veux qu'il supprime la ligne correspondante.

Je ne parviens pas à "coder" ca..

J'ai commencé le VBA il y'a 2 semaines et au début, j'avais créé une fenêtre avec un bouton effacé, mais je trouve ca finalement trop long et fastidieux...

En vous remerciant par avance,

Sans fichier exemple c'est un peu difficile de te donner une solution toute faite.

Mais mon idée serait :

  • Lorsque tu scannes ton code barre tu récupère déjà ce code ?
  • Donc tu stock dans une variable
  • Tu cherches dans la bonne colonne de la bonne feuille ton code
  • Si trouve alors tu supprimes la ligne entière correspondante

Je t'écris la procédure avec une boucle qui prend en argument le code-barre :

Private Sub DeleteRow(code As String)
    Dim i As Integer, ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Feuil1")
    For i = 1 To ws.UsedRange.Rows.Count
        If ws.Range("A" & i).Value = code Then
            ws.Rows(i).EntireRow.Delete
             i = i - 1
        End If
    Next i
End Sub

Après c'est le code simple, si tu souhaites optimisés un peu au lieu de faire une boucle qui peut être longue suivant ton nombre de lignes, tu peux utiliser un ".Find code", comme ceci :

Private Sub DeleteSpecificRow(code As String)
    Dim rng As Range, cel As Range
    Set rng = ThisWorkbook.Worksheets("Feuil1").Range("A:A")
    Set cel = rng.Find(code, LookIn:=xlValues, LookAt:=xlWhole)
    If cel Is Nothing Then
        MsgBox "Ce code barre est introuvable dans : " & rng.Parent.Name & "!" & rng.Address, vbExclamation + vbOKOnly, "Impossible à supprimer"
    Else
        cel.EntireRow.Delete
    End If
End Sub

Si tu veux supprimer l'ensemble de tes lignes avec cette référence (possibilité d'avoir plusieurs lignes avec le même code) je te laisse te rapprocher de cela : https://docs.microsoft.com/fr-fr/office/vba/api/excel.range.findnext

En espérant t'avoir aidé ;)

Bonjour @Tenders
  • Lorsque tu scannes ton code barre tu récupère déjà ce code ? -> oui je récupère le code barre dans mon Excel
  • Donc tu stock dans une variable -> Actuellement je ne déclare pas de variable non ( je te joins mon fichier )
  • Tu cherches dans la bonne colonne de la bonne feuille ton code -> Oui
  • Si trouve alors tu supprimes la ligne entière correspondante -> Exactement

Merci pour tes informations !

je vérifie ce que ca me donne avec tes explications et je fait un retour :)

1stock-livres.xlsm (20.40 Ko)

Visiblement je n'arrive pas à supprimer..

Je voudrais un bouton sur mon excel qui une fois que je clique dessus, tout ce que je vais scanner, cette fois sois supprimé plutôt qu'ajouté.

En quelques sorte un bouton On/off.

On = Entrée Off = Sortie

Cordialement,

Rechercher des sujets similaires à "creation bouton action externe"