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 :

problème de comparaison de valeur [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Par défaut problème de comparaison de valeur
    Bonjour à tous,
    J'espère que vous allez bien

    J'ai un problème de comparaison de valeur:

    J'ai une feuille nommée Base qui est une base de données. J'ai une autre feuille Essai avec un USF et un textbox pour entrer une référence.
    Je veux que lorsque je quitte ma textbox en entrant ma référence de type string même si c'est des nombre, la macro parcours ma base de donéne et trouve la correspondance du type de produit (PETRI)

    j'ai ce code mais la comparaison ne se fait pas je pense pour la simple et bonne raison que si je mets en exemple 33606, la macro ressrot deux "valeurs différentes"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Tabl(i, 1) = UserForm1.TextBox1.Value Then
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tabl(i, 1) 'donne pour valeur 33606
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UserForm1.TextBox1.Value 'donne pour valeur "33606" et non pas 33606
    Je pense que l'erreur vient d'ici...


    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
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
        Dim Tabl() As Variant
        Dim AUTOQ As String
        Dim GENRE As String
        'ReDim Tabl(2, 1)
        'construction du tableau
        'Tabl(0, 0) = 1
        Tabl() = ThisWorkbook.Worksheets("Base").Range("A2:I4000").Value
            'recherche le n° 2
        For i = LBound(Tabl, 1) To UBound(Tabl, 1)
            If Tabl(i, 1) = UserForm1.TextBox1.Value Then
                AUTOQ = Tabl(i, 4).Value
                GENRE = Tabl(i, 3).Value
            End If
        Next i
    If ActiveSheet.Name = "Essai" And GENRE <> "PETRI" Then
    MsgBox "erreur"
    Cancel = True
    End If

    Peut être y a-t-il une manière plus simple et plus rapide de faire ce que je veux faire?
    Merci de votre aide

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    et si tu convertis la valeur de ton textbox en Long par exemple ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Tabl(i, 1) = Clng(UserForm1.TextBox1.Value) Then
    après, ça dépend du type de nombre que tu as (entier, à virgule etc..). Il faudra peut être adapter et convertir sous un autre format.

  3. #3
    Membre chevronné
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Par défaut
    bien joué je n'y avait pas pensé +1

    Du coup j'ai converti le tout en string car j'ai des référence avec des lettres (ex D1076).

    par contre un autre problème se pose maintenant :S

    si je met en référence D1076, ceci fonctionne bien mais si je mets d1076 (avec une petit "d"), alors il ne reconnais pas la même valeur...

    Comment faire pour passer outre les majuscules svp?

    Merci d'avance

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Pour effectuer une recherche qui ne tienne pas compte de la casse, il faut ajouter tout en haut du module où est ta macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Option Compare Text

  5. #5
    Membre chevronné
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Par défaut
    Merci Joe de ton aide c'est parfait

    Bonne journée

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/08/2014, 14h43
  2. problème pour récupérer une valeur dans ma bd (débutante)
    Par auryn111 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/08/2005, 17h49
  3. problème count avec la valeur 0
    Par cristolb dans le forum Langage SQL
    Réponses: 8
    Dernier message: 28/07/2005, 09h39
  4. Nouveau problème de récupération de valeurs.
    Par pmboutteau dans le forum ASP
    Réponses: 4
    Dernier message: 09/03/2005, 10h48
  5. Problème de comparaison de dates
    Par MiJack dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/03/2004, 21h43

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