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

  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
    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
    Arf oui, bien vu, mais toi aussi tu as mal écrit ?

    "un "numéro de série" équivalant aux nombres de jours écoulés depuis le 31/12/1899 pour le calendrier 1900"

    ==> puisque le numéro de série 1 correspond au 01/01/1900

  8. #8
    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
    Oups,

    bon, 1 partout

  9. #9
    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 beaucoup en tout les cas

  10. #10
    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
    J'ai un autre problème qui se pose au niveaux des dates, voici mon code :

    Nom : 18035727_10210502993508524_119442004_n.png
Affichages : 105
Taille : 5,5 Ko

    Le problème c'est que ça marche pour la première date de mon fichier excel et ensuite ça ne marche plus (quand je rentre la première date ça la trouve mais ensuite ça ne trouve plus les autres), vous voyez d'où peux provenir mon problème?

    Merci à vous

  11. #11
    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
    Ben ... Exit do est une instruction de sortie de la boucle. Il est donc normal que tu ne trouves que la première occurrence .
    Précise par ailleurs ce que tu veux obtenir : un compte ou des données ?
    Si des données : dans quoi tu souhaites mettre les résultats trouvés (ce ne saurait être une simple variable)

  12. #12
    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
    Je souhaite obtenir l'indice où se situe ma date. Mon excel est trié par date, si je rentre la première date de mon tableau je récupère bien le bon indice de sa ligne, mais quand je rentre une date différente (qui se trouve par exemple au milieu de ma feuille je n'arrive pas à récupérer l'indice.
    Pour ce qui est du exit do je suis d'accord avec toi mais le IF ne s'applique que si ma condition est vraie or, quand je cherche une date au milieu de la feuille il est toujours faux jusqu'à cette dernière et c'est seulement là que je devrais sortir de la boucle.

    Merci

  13. #13
    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

  14. #14
    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