Détruire un exemplaire dont on connaît le code-barre

Un seul code-barre

Sub DetruitParCodeBarre()
	Dim CodeBarre, Exemplaire
	CodeBarre = "1500397582"
	Dim TrouveCodeBarre
	TrouveCodeBarre = Application.ActiveWindow.Title.Find(CodeBarre, True, False, False)
	If TrouveCodeBarre = True Then
		Application.ActiveWindow.Title.LineUp()
		Application.ActiveWindow.Title.StartOfField()
		Exemplaire = Application.ActiveWindow.Title.tag
		Application.ActiveWindow.Command "sup " & Exemplaire, False
		Application.ActiveWindow.PressButton("Supprimer")
	End If
End Sub

Syntaxe de Find : Find("chaîne", Casse, LigneCourante, Mot)

find (14K)

Casse : la recherche respecte la casse de la chaîne
LigneCourante : True/False. Si True, la recherche ne porte que sur la ligne courante. Ça évite de faire un InStr() sur la ligne copiée.
Mot : True/False. Si True, la chaîne est recherchée comme mot entier, non comme partie de mot.

La fonction (?) Application.ActiveWindow.Title.tag permet de récupérer l'étiquette du champ courant. En l'occurrence : "e04" par exemple.

Un tableau de codes-barres

Sub DetruitParCodeBarre()
	Dim CodeBarre, Exemplaire
	Dim LesCodesBarres
	LesCodesBarres = Array("0261726015","0260542999","0261489606","0261723946","0261720099","0261723953","0261720525","0261720082","0261518795","0261721843","0261721287","0261489941")
	For Each CodeBarre In LesCodesBarres
		Application.ActiveWindow.Command "che cod " & CodeBarre
		If Application.ActiveWindow.Messages.Count = 0 Then
			Application.ActiveWindow.Command "mod", False
			Dim TrouveCodeBarre
			TrouveCodeBarre = Application.ActiveWindow.Title.Find(CodeBarre, True, False, False)
			If TrouveCodeBarre = True Then
				Application.ActiveWindow.Title.LineUp()
				Application.ActiveWindow.Title.StartOfField()
				Exemplaire = Application.ActiveWindow.Title.tag
				Application.activeWindow.simulateIBWKey "FE"
				Application.ActiveWindow.Command "sup " & Exemplaire, False
				Application.ActiveWindow.PressButton("Supprimer")
			End If
		Else
			InputBox "Problème", "Problème", Application.ActiveWindow.Messages.item(0) & ":" & CodeBarre & ":" & Application.ActiveWindow.Variable("P3GPP")
		End If
	Next
End Sub