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 :

VBA problème textbox avec entiers


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 7
    Par défaut VBA problème textbox avec entiers
    Bonjour,

    Voilà mon problème : Je veux faire correspondre 3 éléments de 3 colonnes d'une feuille vba avec 3 textboxs , pour les deux premières qui sont des chaines de caractéres ça fonctionne parfaitement , en revanche dès que j'ajoute la dernière qui est de type entier ça ne fonctionne plus. Voici mon code résumé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim a AS string
    dim b AS string
    dim c 
     
    Dim trouve As Boolean
    trouve = false
    la je crée une boucle puis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     a = "B" & j 
        b = "C" & j 
        c = "F" & j 
     
     
        If UCase(TextBox1.Value) = Range(a).Value And UCase(TextBox2.Value) = Range(b).Value And TextBox3.Value = Range(c).Value Then
            trouve = True

    Ca ne trouve donc pas la correspondance entre le Range "c" et la textbox3 , je rappelle que ce sont des variables de type entier (une année en l’occurrence) le problème vient de là mais pourquoi ?

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    dès que j'ajoute la dernière qui est de type entier ça ne fonctionne plus
    A moins que tu sois sûr que ta date ne dépasse pas le 16/09/1989, elle doit être de type Long sinon, plantage (Integer max = 35667)
    Testes de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If UCase(TextBox1.Value) = UCase(Range(a).Value) _
        And UCase(TextBox2.Value) = UCase(Range(b).Value) _
        And CLng(TextBox3.Value) = CLng(Range(c).Value) Then
     
        trouve = True

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 7
    Par défaut
    Oui c'est bien ca merci beaucoup . Ce que je ne comprends pas c'est que les dates ce sont juste des années donc forcément <2000 et Integer permet d'avoir des Nombres entiers de -32'768 à 32'767.

  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
    Bonjour,

    une année, c'est une année, on est d'accord !

    mais une date, c'est jour-mois-année, ce n'est pas la même chose

    la date est stockée sous la forme d'un nombre, un "numéro de série" équivalant aux nombres de jours écoulés depuis le 31/12/1989 pour le calendrier 1900 (calendrier par défaut sur Excel Windows)

    donc, nous avons dépassé l'integer pour une date depuis le 16 Septembre 1989 environ !

    à lire impérativement si tu veux maîtriser : http://didier-gonard.developpez.com/...-excel-et-vba/

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Je souhaite éviter toute confusion entre "année" (millésime) et autre chose.
    Quelles données as-tu exactement en colonne F et quel format a été donné à ces cellules ? (évite de dire "année" si tu veux dire "millésime")

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Joe, tu veux dire 31/12/1900 au lieu de 31/12/1989 ? Induis en erreur par "16 Septembre 1989"

  7. #7
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
    Debug.Print Compteur(3)
    End Sub
    Function Compteur(Jmax As Integer) As Integer
    For I = 0 To Jmax
         If DateDiff("d", Date + I, Date + 3) = False Then Compteur = I: Exit For
    Next
    End Function

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 7
    Par défaut
    Merci

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

Discussions similaires

  1. problème avec l'apostrophe dans une requête
    Par mika0102 dans le forum VBA Access
    Réponses: 7
    Dernier message: 09/03/2019, 16h51
  2. [VBA-A]Remplir une textbox avec des données de tables.
    Par cuicui08 dans le forum VBA Access
    Réponses: 1
    Dernier message: 24/03/2006, 10h28
  3. [VBA] Problème avec composant VB6
    Par Diablo_22 dans le forum Général VBA
    Réponses: 8
    Dernier message: 16/03/2006, 20h41
  4. Réponses: 2
    Dernier message: 17/10/2005, 14h58
  5. [Requete SQL en VBA] Problème avec la fonction FLOOR
    Par zubral dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/07/2004, 13h24

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