IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Somme scan code barre [XL-2016]


Sujet :

Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 396
    Points : 127
    Points
    127
    Par défaut Somme scan code barre
    Bonjour,

    dans la case A1 je scanne un code barre qui s'affiche et çà tabule dans la case A2.
    Je voudrais que dans B1 s'affiche 1.
    Je voudrais faire çà sur plusieurs lignes.
    j'ai essayé ce code qui me compte pas 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        If Target.Count > 1 Then Exit Sub
     
        If Not Intersect(Target, Range("A1")) Is Nothing Then
           Range("B1") = Range("B1") + Target
        End If
     
    End Sub
    Comment faire

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 240
    Points : 5 655
    Points
    5 655
    Par défaut
    Bonjour,

    Si vous voulez mettre 1 dans la cellule à côté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Count = 1 And Target.Address = "$A$1" Then Target.Offset(0, 1).Value = 1
    End Sub

    Si vous voulez mettre incrémenter de 1 la cellule à côté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Count = 1 And Target.Address = "$A$1" Then Target.Offset(0, 1).Value = Target.Offset(0, 1).Value + 1
    End Sub
    Cdlt

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 396
    Points : 127
    Points
    127
    Par défaut
    Cà fonctionne que pour la cellule A1.
    Comment faire pour les autres cellules B1, C1, D1... ?

  4. #4
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 240
    Points : 5 655
    Points
    5 655
    Par défaut
    Je suppose que vous voulez dire A1, A2, A3 etc à la place de A1, B1, C1, parce que dans ce cas et d'après votre demande initiale, vous écrasez la cellule d'à côté à chaque fois.

    Si les cellules à tester vont de A1 à A10, e, reprenant les 2 exemples précédents:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Count = 1 Then
            If Not Intersect(Target, Range("A1:A10")) Then Target.Offset(0, 1).Value = 1
        End If
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Count = 1 Then
            If Not Intersect(Target, Range("A1:A10")) Then Target.Offset(0, 1).Value = Target.Offset(0, 1).Value + 1
        End If
    End Sub

    dlt

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 396
    Points : 127
    Points
    127
    Par défaut
    J'ai ce message d'erreur

    Nom : Capture.JPG
Affichages : 149
Taille : 81,7 Ko

  6. #6
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    Ajoutes Is Nothing entre la parenthèse et le Then
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 396
    Points : 127
    Points
    127
    Par défaut
    Top çà marche merci Patrice740 et ARTURO83.
    J'ai une autre demande alors je post à la suite sinon je crée un nouveau post.
    J'aimerai que le nombre que je saisis sur l'onglet 1 passe en rouge s'il existe dans l'onglet 2.
    Par exemple dans l'onglet 2 je saisis en A1 : 123 et A2 : 456.
    Dans l'onglet 1 quand je scanne le code barre 123 dans A1 et 456 en A2 je voudrais que ces nombres passent en rouge.
    Je pensais à la fonction si et vlookup ?

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut.

    Sur base des deux tableaux structurés suivants, on peut utiliser EQUIV avec un SIERREUR, parmi d'autres possibilités.

    Nom : 2021-02-26_084820.png
Affichages : 129
Taille : 7,1 Ko
    1. Créer une formule nommée qui pointe vers la colonne du tableau de ta feuille 2 (dans mon exemple, le tableau t_Produits) pour permettre l'extension de la plage aux nouvelles données que tu saisirais dans ce tableau;
    2. Utiliser SIERREUR(EQUIV(...)) dans une mise en forme conditionnelle formulée que l'on applique sur la colonne du tableau de la feuille 1, t_Scan.



    Nom : 2021-02-26_085323.png
Affichages : 138
Taille : 22,5 Ko


    J'avais fait cette vidéo à l'époque qui expliquait comment mettre cela en place.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 396
    Points : 127
    Points
    127
    Par défaut
    Bonjour,
    est-il possible de faire la même chose mais sans liste déroulante ?
    La couleur rouge c'est juste une indication. Quand les numéros sont équivalents je l'ai efface.
    Merci

  10. #10
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Dans ce que j'ai expliqué, il n'y a pas de liste déroulante. C'est le principe de la MFC (Mise en Forme Conditionnelle) qu'il faut comprendre. Ce principe s'appuie sur des tableaux structurés et sur une "plage nommée" car la MFC n'accepte pas les références structurées.

    Que n'arrives-tu pas à mettre en place?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 396
    Points : 127
    Points
    127
    Par défaut
    J'ai mis cette formule sur mon premier onglet dans la MFC
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(EQUIV(A2;Tableau3;0)>0;FAUX)
    J'ai ce message d'erreur

    Nom : Capture.JPG
Affichages : 117
Taille : 41,0 Ko

  12. #12
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Comme je l'ai dit, les références structurées ne peuvent pas être utilisées dans la MFC. Il faut passer par une "plage nommée" qui, elle, utilise la référence structurée. Tu baseras alors ta mfc sur cette plage nommée et pas tu la référence du tableau.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 396
    Points : 127
    Points
    127
    Par défaut
    Bonjour
    je réouvre le sujet.
    Dans la case A2 je scanne un code barre qui s'affiche et çà tabule dans la case B2 en affichant 1.
    Cà fonctionne mais comment faire pour que çà tabule automatquement à la cellule A3 ?
    Voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Count = 1 Then
            If Not Intersect(Target, Range("A02:A250")) Is Nothing Then Target.Offset(0, 1).Value = 1
        End If
    End Sub

  14. #14
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Count = 1 Then
            If Not Intersect(Target, Range("A02:A250")) Is Nothing Then
              Target.Offset(0, 1).Value = 1
              Target(2).Activate
            End If
        End If
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  15. #15
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 240
    Points : 5 655
    Points
    5 655
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal Target As Range)
        Application.EnableEvents = False
        If Target.Count = 1 Then
            If Not Intersect(Target, Range("A02:A250")) Is Nothing Then Target.Offset(1, 0).Value = 1
        End If
        Application.EnableEvents = True
    End Sub
    Cdlt

  16. #16
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par ARTURO83 Voir le message
    [...]
    Perso, je mets toujours une gestion d'erreur avec un Application.EnabledEvents = False. Sans cette précaution, on risque bien de se retrouver sans gestion de l'évènement suite à un arrêt du code après erreur...

    Avec ton code, si on valide avec TAB, on part à droite et pas en dessous
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  17. #17
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 396
    Points : 127
    Points
    127
    Par défaut
    Merci à Pierre Fauconnier et ARTURO83 pour la réponse rapide

  18. #18
    Membre éclairé Avatar de PrinceCorwin
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Mars 2012
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 337
    Points : 692
    Points
    692
    Par défaut
    Bonjour à tous,

    je me permets une petite réflexion.

    Pour qu'après le scan du code barre par la douchette le curseur se positionne en dessous et non à droite, il faut paramétrer le lecteur code barre.
    Dans les options de scan on peut soit :
    - ne rien faire,
    - faire une tabulation,
    - faire un retour chariot ( touche entrée)
    - faire un autre code

    Dans ce cas, pas de gestion via macro pour faire un retour chariot.
    Si ce message vous a aidé, appuyez sur le petit , ca fait toujours plaisir
    Merci.

  19. #19
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par PrinceCorwin Voir le message
    [...]


    Surtout que si le code d'ajout de 1 en B est le code réellement employé et pas un code de test, on pourrait utiliser une colonne formulée en B dans le cadre d'un tableau structuré...

    Je suis curieux de connaître la finalité de tout ceci ^^
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. scan code barre
    Par sylvain1809 dans le forum Access
    Réponses: 9
    Dernier message: 18/07/2016, 12h15
  2. Scan code barre sortie incorrecte
    Par freud dans le forum Langage
    Réponses: 6
    Dernier message: 26/05/2015, 10h32
  3. [WM17] Scan Code Barre Ios
    Par favierpaul dans le forum Windev Mobile
    Réponses: 1
    Dernier message: 27/03/2013, 16h27
  4. API scan code barre
    Par l-amoureu dans le forum Android
    Réponses: 1
    Dernier message: 09/03/2011, 07h43
  5. Scan code-barre avec une douchette
    Par slevindonofrio dans le forum wxPython
    Réponses: 14
    Dernier message: 20/09/2010, 13h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo