Autres Problème d'étoiles à supprimer lors d'un scan avec douchette

  • Initiateur de la discussion Initiateur de la discussion a26
  • 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 !

a26

XLDnaute Occasionnel
Bonjour,
Lors d'un scan de code barre 39 le résultat chiffré apparaît avec une étoile avant et après le chiffre.
Comme ceci : *25* alors que j'aimerai seulement 25
Des membres du forum m'ont donné une worksheet change qui ne fonctionne pas pour une variable non définie.
Pouvez-vous me conseiller sur ce problème.
Merci beaucoup.
a26
 
Bonjour a26,

Dans le code de la feuille où s'inscrivent les résultats collez cette macro :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Cells.Replace "~*", "", xlPart
Application.EnableEvents = True
End Sub
La plage où s'inscrivent les résultats est à mettre au format Texte s'il y a des nombres commençant par zéro.

A+
 
Bonjour A26,
Un essai en PJ avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("D5")) Is Nothing Then
        If Left(Target, 1) = "*" And Right(Target, 1) = "*" Then
            Application.EnableEvents = False
            Range(Target.Address) = Val(Mid(Target, 2, Len(Target) - 1))
            Application.EnableEvents = True
        End If
    End If
End Sub
Le Application.EnableEvents = False évite de boucler sur la macro puisque la macro écrit dans l'adress qui l'a appelée.
 

Pièces jointes

Pour avertir quand la valeur en G2 est dépassée :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim maxi#
maxi = Val(Replace([G2], ",", "."))
Application.EnableEvents = False
Cells.Replace "~*", "", xlPart
Set Target = Intersect(Target, UsedRange)
If Not Target Is Nothing Then
    For Each Target In Target 'si entrées multiples
        If IsNumeric(Target) Then If CDbl(Target) > maxi Then Target.Select: MsgBox "Limite " & maxi & " dépassée !", 48: Exit For
    Next
End If
Application.EnableEvents = True
End Sub
 
Dernière édition:
- 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
Retour