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

Macros et VBA Excel Discussion :

Caractère non reconnu


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 14
    Points : 2
    Points
    2
    Par défaut Caractère non reconnu
    Bonjour à tous,
    voila je termine ma gestion de stock sous excel (voir autre discussion) à l'aide d'une douchette et de codes barre.
    Tout fonctionne (choix feuille, destockage, mise en stock etc.) sauf une petite chose.
    Ma douchette lit très bien toutes les références (sous forme de code barre) et les affiche parfaitement dans bloc note ou autre, mais dans ma TextBox le chiffre '7' n'est pas pris en compte.
    Par exemple je scanne une ref de type : acbd1007efg, j'obtiens bien ceci dans une cellule excel etc, mais dans ma TextBox, j'obtiens acbd100efg -> le 7 a disparu.
    Auriez vous une idée du pourquoi du comment ?

    Merci d'avance
    Bien Cordialement
    Louminor.

  2. #2
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour,
    Sans certitude il s'agit peut-être d'un caractère caché qui supprimerait le caractère suivant
    Tester la chaine de caractères
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub Test
    For i = 1 To Len(Range("A1"))
     Debug.Print i, Mid$( Range("A1"),i,1) , asc( Mid$( Range("A1"),i,1) )
    Next i
    End Sub
    Créer une procedure avec ce code qui doit afficher chaque caractère et peut-être découvrir ce qui se cache entre le 0 et le 7

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Salut à tous,
    je reviens sur le sujet car depuis tout ce temps je n'ai pas pu m'y mettre à ce prgm sous excel.
    Juste pour préciser que seul le 7 est victime de non lecture, tous les autres chiffres fonctionnent.

    Merci helas pour ta réponse mais cela ne fonctionne pas.

    Si vous avez une idée, cela m'aiderai grandement,
    merci par avance.
    Louminor

  4. #4
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,

    tu devrais montrer ton code , non ?

    Surtout la partie qui concerne ceci :
    Par exemple je scanne une ref de type : acbd1007efg, j'obtiens bien ceci dans une cellule excel etc, mais dans ma TextBox, j'obtiens acbd100efg -> le 7 a disparu.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Salut,
    voila,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub SCANNE_Exit(ByVal Cancel As MSForms.ReturnBoolean)
     
     Dim CODEBARRE As String
     CODEBARRE = SCANNE.Text
     
    Sheets("STOCK").Columns(1).Cells.Find(What:=SCANNE.Text).Activate 
                'fonction de remplacement de la qté
                Sheets("STOCK").Cells(ActiveCell.Row, 3).Value = Sheets("STOCK").Cells(ActiveCell.Row, 3).Value - 1
                SCANNE.Value = Null 'Efface la zone de texte
     
    End Sub
    Rien de très compliqué,

    Pour récap :
    Je scanne mon code barre du type AG7TR1000B6, j'obtiens dans le classeur excel AG7TR1000B6.
    Maintenant je lance ce script, je scanne ce code, et dans ma textbox SCANNE.Text, j'obtiens : AGTR1000B6
    Le 7 disparait, mais les autres chiffres sont bel et bien présents.

  6. #6
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Rien de très compliqué,
    Sauf que le code que tu montres (attention à bien lire les rêgles du forum pour utilisation correcte des balises codes ), ne correspond pas du tout à :

    Pour récap :
    Je scanne mon code barre du type AG7TR1000B6, j'obtiens dans le classeur excel AG7TR1000B6.
    Maintenant je lance ce script, je scanne ce code, et dans ma textbox SCANNE.Text, j'obtiens : AGTR1000B6
    Le 7 disparait, mais les autres chiffres sont bel et bien présents.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Désolé pour les balises.

    Pourtant, c'est avec ce code (en autres lignes) que mon stock est géré.
    Je ne peux pas en donner trop car c'est de l'ordre privé (et secret professionnel qu'ils disent...) .


    Grâce à ces lignes, je scanne le code barre, je recherche l'occurrence dans le classeur et je fais -1 dans la colonne en face de la référence trouvée...

  8. #8
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Ok pour les balises. merci.

    Le code que tu montres c'est la routine qui fait -1 dans ton stock.

    Pas possible de t'aider sur cette base.
    NB : il est toujours possible de montrer du code en respectant la privauté, sauf si tu travailles pour les services secrets !

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Non, pas pour les services secrets, mais pour un institut de recherche mondial et pas en France, ou j'ai d'énormes contraintes de secret professionnel... bref passons,

    Pour mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("STOCK").Columns(1).Cells.Find(What:=SCANNE.Text).Activate ' lance la recherche
    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("STOCK").Cells(ActiveCell.Row, 3).Value = Sheets("STOCK").Cells(ActiveCell.Row, 3).Value - 1 'recherche dans ma feuille STOCK le code scanné ET décale en colonne 3 et décrémente la quantité
    En tous cas, le 7 marche pas !

  10. #10
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Pas évident dans ce cas, mais il doit être possible de rendre ton code neutre et transparent.

    mais je persiste à dire que les 2 lignes de code que tu donnes n'ont rien à voir avec ton textbox et le 7 qui manque.

    ces lignes décrémentent de 1 unité le stock de l'article trouvé.

    Quel est le rapport ?

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Dans ce cas, il y a une chose que je ne comprends pas,
    Toutes mes autres lignes servent à mettre des pièces en stock, à choisir quel stock traiter, et faire une tempo
    Seule ces lignes me servent à la recherche et à la gestion du textbox.

    Voila mon code ou est appelé le textbox.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    Private Sub SCANNE_Exit(ByVal Cancel As MSForms.ReturnBoolean)
     
     
     Dim CODEBARRE As String
     CODEBARRE = SCANNE.Text
     
         If BOX_MISE_EN_STOCK = 0 Then
            If STOCK_1 = 0 Then
     
                Sheets("STOCK").Columns(1).Cells.Find(What:=SCANNE.Text).Activate ' recherche la chaine de char
                'fonction de remplacement de la qté
                Sheets("STOCK").Cells(ActiveCell.Row, 3).Value = Sheets("STOCK").Cells(ActiveCell.Row, 3).Value - 1
                SCANNE.Value = Null 'Efface la zone de texte
                Call Form_Load ' attend 1 seconde
     
            Else
     
                Sheets("ST_1").Columns(1).Cells.Find(What:=SCANNE.Text).Activate ' recherche la chaine de char
                'fonction de remplacement de la qté
                Sheets("ST_1").Cells(ActiveCell.Row, 4).Value = Sheets("ST_1").Cells(ActiveCell.Row, 4).Value + 1
                SCANNE.Value = Null 'Efface la zone de texte
                Call Form_Load ' attend 1 seconde
     
            End If
     
         Else
     
            If STOCK_1 = 0 Then
     
                Sheets("STOCK").Columns(1).Cells.Find(What:=SCANNE.Text).Activate ' recherche la chaine de char
                'fonction de remplacement de la qté
                Sheets("STOCK").Cells(ActiveCell.Row, 3).Value = Sheets("STOCK").Cells(ActiveCell.Row, 3).Value + Texte_Qte.Text
                SCANNE.Value = Null 'Efface la zone de texte
                Call Form_Load ' attend 1 seconde
            Else
     
                Sheets("ST_1").Columns(1).Cells.Find(What:=SCANNE.Text).Activate ' recherche la chaine de char
                'fonction de remplacement de la qté
                Sheets("ST_1").Cells(ActiveCell.Row, 3).Value = Sheets("ST_1").Cells(ActiveCell.Row, 3).Value + Texte_Qte.Text
                SCANNE.Value = Null 'Efface la zone de texte
                Call Form_Load ' attend 1 seconde
     
            End If
     
         End If
     
    End Sub
     
     
    ' Sous programme de Gestion du choix du Stock
    Private Sub STOCK_1_Click()
     
        If STOCK_1 = 0 Then    'décoché -> Stock 2
     
            ThisWorkbook.Sheets("STOCK").Activate
            STOCK_1.Caption = "Stock 2"
     
        Else                        'coché -> Stock 1
     
            ThisWorkbook.Sheets("ST_1").Activate
            STOCK_1.Caption = "ST_1"
     
        End If
     
    End Sub
    Voila mon code rendu relativement transparent
    Tout le reste de mon code n'a rien à voir avec ca donc ne figure pas ici.

  12. #12
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Où est le code qui alimente ta textbox (Scanne.text je pense ) ?

    Ici tu l'utilises, mais tu ne la change jamais !!!

  13. #13
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Intervention de forme (ou de fond), pour rendre la code plus lisible et performant (code de départ)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub SCANNE_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Dim c As Range
     
    If Len(Trim(SCANNE.Text)) > 0 Then
        With Sheets("STOCK")
            Set c = .Range("A:A").Find(SCANNE.Text, lookat:=xlWhole)
            If Not c Is Nothing Then
                .Range("D" & c.Row).Value = .Range("D" & c.Row).Value - 1
                Set c = Nothing
            End If
        End With
        SCANNE.Value = Null
    End If
    End Sub

  14. #14
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bonjour à tous,

    Je pense qu'il faut avancer pas à pas.

    Quel est le composant actif (ayant le focus) au moment où tu scannes le code barres avec la douchette?

    Autrement dit, où s'écrit ce qui vient de la douchette?

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Salut,
    alors quand je scanne le code barre il s'affiche dans la textbox SCANNE. et je récupère ceci dans SCANNE.text...

  16. #16
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Dans ce cas, pourquoi parles-tu d'une cellule où le code scanné serait correct?

  17. #17
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Hello,
    je me suis peut être mal exprimé.

    Je voulais dire que lorsque je scanne mon code barre (pour l'essayer disons) dans une cellule excel ou sous word ou bloc note ou autre le 7 s'affiche sans aucun problème.
    Maintenant je lance mon programme, et là dans la textbox tout s'affiche sauf le 7.
    Donc j'en conclu que le code barre est bon, que la douchette est bien configurée mais que j'ai un bug dans mon programme.

    J'espère avoir été plus clair...

    Merci d'avance

  18. #18
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Dans ce cas, il faudra que tu nous montres toutes les propriétés de la TextBox en question.
    Quoiqu'en y regardant de plus près, je ne vois pas quelle propriété pourrait engendrer ce genre de phénomène...
    N'y a-t-il aucun code d'événement (à part Exit) pour cette TextBox?

    Et si tu fais du pas à pas, le code scanné apparait-il bien dans la TextBox ou pas?
    Si oui, c'est donc quand tu lis son contenu (par SCANNE.Text) que se pose le problème?

  19. #19
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    A vrai dire il n'y a absolument rien d'autre qui gère la TextBox.

    Une nouvelle précision, qui peut s'avérer importante.
    Je vous ai dit que le 7 n'était pas pris en compte dans la TB. mais ca c'est uniquement lorsque je scanne avec la douchette. En effet, lorsque je saisi un code par exemple abcd7efgh à l'aide du clavier, ben là le 7 est bien pris en compte...
    Donc j'ai un léger problème avec le 7 et la douchette.
    C'est à ne plus rien y comprendre.

    Juste pour répondre à ta question,
    lorsque je fais du pas à pas détaillé tout fonctionne mais toujours pas le '7' à l'aide de la douchette. En revanche cela fonctionne très bien quand je tape le '7' au clavier...

    J'ai essayé avec des codes barre + simples du genre 1001, 1002, ... , 1007, et là ben quand je scanne 1007, s'affiche dans la textbox uniquement 100

    Dur dur !!

  20. #20
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Reste une chose à essayer.
    Est-il possible de programmer l'output rate de la douchette?
    Si oui, il faudrait le mettre au minimum possible pour voir les caractères s'écrire dans la TextBox.
    Cela te permettrait de voir si un step est sauté ou si un "caractère vide" est envoyé (s'il y a une pause à la place du 7 ou pas).

    Sinon, il ne restera plus qu'à essayer de trouver un autre modèle de douchette pour tester si ça vient du scanner ou d'Excel.

    Tant qu'on en est aux tentatives, as-tu essayé de mettre un Userform dans un nouveau fichier avec une TextBox sans aucun code?

Discussions similaires

  1. Load data infile caractères non reconnu
    Par didou70 dans le forum Débuter
    Réponses: 1
    Dernier message: 14/05/2009, 15h10
  2. Caractère "_" non reconnu dans un like
    Par lodan dans le forum Requêtes
    Réponses: 4
    Dernier message: 26/04/2007, 09h39
  3. Caractère EOF non reconnu
    Par rod59 dans le forum C
    Réponses: 14
    Dernier message: 11/11/2005, 17h15
  4. Creation de table, caractère non reconnu
    Par Missvan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 17/02/2004, 13h28
  5. xslt_create() non reconnu
    Par BRAUKRIS dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 11/12/2003, 14h43

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