Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Base de données excel et code barre enregistré avec un téléphone

djedjeto

XLDnaute Junior
salut chers ainés. j'ai un souci et j'ai besoin de l'aide des experts. En fait, j'ai une petite base de données en Excel et dont la colonne A de la Feuil1 contient les code barre scanné à l'aide de scan it office. Mon problème est comment faire pour éviter de scanner des doublons dans cette colonne et au cas où le code exciterait déjà que la cellule correspondante soit sélectionnée et non enregistrée à nouveau. merci.
 

Patrice33740

XLDnaute Impliqué
Bonjour,

Dans le module de la feuil1 :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range

If Target.Column = 1 And Target.Count = 1 Then
    If Target.Value <> "" Then
      Set c = Me.Columns(1).Find(Target.Value, , xlValues)
      If Not c Is Nothing Then
        Target.ClearContents
        c.Select
      End If
    End If
  End If

End Sub

Mais attention : si tu reste sur cette cellule, un scan écrasera la valeur actuelle
Ne serait'il pas préférable de supprimer la ligne du premier doublon ?
 

djedjeto

XLDnaute Junior
merci Patrice. je n'ai pas compris la valeur actuelle sera écrasée.
 

Patrice33740

XLDnaute Impliqué
Tu ne précises pas comment tu utilises ton fichier, mais en principe chaque valeur scannée s'inscrit dans la cellule sélectionnée et la cellule suivante (en dessous) est automatiquement sélectionnée pour recevoir le prochain scan.
Dans ton cas, la cellule contient déjà une valeur (l'ancien doublon), un nouveau scan écrasera cette valeur.
Ne serait'il pas préférable de conserver le nouveau doublon et de supprimer la ligne complète du premier ?
 

djedjeto

XLDnaute Junior
non. la ligne comporte d'autres valeurs. c'est pourquoi je préfére que la cellule correspondante qui existait soit sélectionnée au lieu d'être écrasée. si le code scanné existe déja que le cellule corresponde soit donc sélectionnée. peut être ce que je pense il met d'abord le doublons mais recherche la dernière valeur scanner dans les cellules précédente et s'il trouve sélectionne la cellule et supprime la dernière ligne sinon ne fait rien . comment le traduire en vba. merci
 

Patrice33740

XLDnaute Impliqué
Je pense que tu exprime mal ton besoin.

Je n'ai pas Scan-it Office mais d'après la démo, il envoie en colonne A le code et en colonne B la quantité.
S'il n'y a que ces 2 colonne, le plus simple est bien de supprimer le premier doublon, mais avant de le supprimer il faut ajouter la quantité déjà existante pour le premier doublon à celle qui vient d'être rentrée pour le second doublon ::
Quelque chose comme :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
  If Target.Column = 2 And Target.Count = 1 Then
    If Target.Offset(0, -1).Value <> "" Then
      Set c = Me.Columns(1).Find(Target.Offset(0, -1).Value, , xlValues)
      If Not c Is Nothing Then
        If c.Row < Target.Row Then
          Application.EnableEvents = False
          Target.Value = Target.Value + c.Offset(0, 1).Value
          c.EntireRow.Delete
          Application.EnableEvents = True
        End If
      End If
    End If
  End If
End Sub
A tester ...
 

Discussions similaires

Réponses
27
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…