Test if jamais vrai VBA

Résolu
Bonjour,et bon année,
voila j'ai un petit problème avec une condition if en VBA , j'aimerai savoir d'ou peut provenir le problème:
je teste si la valeur de la cellule "G" & i est = à la combobox2, voila partie de mon code:
    If Sheets(4).Range("G" & i).Value = Me.ComboBox2.Value Then
le problème c'est qu'il ne passe jamais le then ( j'ai mis juste un Msgbox dedans pour vérifier)
dans la feuille 4 colonne G il y a bien la valeur cherchée qui est un nombre.
j'èspère que vous pourez m'aider parce que la je sèche , je fait le meme test avec une chaine de caractère et ca passe nikel chrome... :/
Par avance merci.
Pou Pouille
--
la théorie et la pratique c'est la même chose...enfin en théorie
Configuration: win Xp Sp2

13 réponses

  1. Modérateur
    Salut,
    Peut être un problème de format.
    Essaye ceci :
    si G & i est un nombre :
    If Sheets(4).Range("G" & i).Value = Cnum(ComboBox2) Then

    0
    1. merci de ta réponse rapide, mais quand je lance il me dis:
      erreur de compilation:
      sub ou fonction non définie
      et il me surligne le
      Cnum
      0
      1. Contributeur
        Bonjour,

        Comme le dit Pijaku, cela ressemble à un problème de format
        c'est un des 2
        regarde dans la feuille si la cellule comporte un nombre (=estnum(la cellule))

        pour transformer en nombre dans la proc VBA
        Csng ou Cdbl si nombre a virgule
        cint ou Clng si nombre entier

        (Cnum est une fonction XL pas VBa: réveille toi Pijaku, c'est l'heure!) ;-)
        0
        1. Modérateur
          Salut michel,
          Oui effectivement, n'ai pris que 2 cafés ce matin... Merci de m'avoir repris.
          Si tu n'as pas vu mon message d'hier, je te présente mes meilleurs voeux pour 2010.
          0
      2. Merci a tout le deux.
        alors oui les cellules sont au format numérique ( je l'ai fais mois meme et vérif avec la fonction).
        en effet le problème venait bien du format de la combobox :/
        et avec Cint ca fonctionne bien mieux maintenant :)
        Merci
        0
        1. Contributeur
          donc, meilleurs voeux, Pijaku, et pendant que j'y suis, même punition pour pou pouilleet tous ceusse qui liront cette discussion
          what else ?
          0
          1. merci ,meilleurs voeux a vous deux aussi
            0
            1. j'ai une autre question concernant les formats.
              existe-t-il le meme genre de fonction que Cint etc... mais pour une format date jj/mm/aaaa
              quelquechose du style date(range("G" & i))
              je sais que il existe Format mais j'ai un soucis: quand je transfert une date d'une feuille à une autre les date supérieures au 12ème jour basculent en format anglais :s
              0
              1. Modérateur
                Essaye CDate(range("G" & i))
                0
                1. Contributeur
                  re-re,

                  essaies
                  range("G" & i).NumberFormat = "dd/mm/yy;@"
                  0
                  1. ha.... alors la c'est la fin , je comprend plus grand chose a ce qui se passe , déja j'avai essayer de régler le problème en bidouillant, mais la du coups il me passe tout au format anglais , ca craint.
                    je met mon fichier en ligne si vous pouvez juste jetter un petit coup d'oeil le formulaire s'apelle consulter formation et le DTPicker 1 est celui ou j'ai essayé de metre le format.
                    http://www.cijoint.fr/cjlink.php?file=cj201001/cijq6FgsGJ.xls
                    0
                    1. Hoooo , la galère , j'ai fini par résoudre mon problème mais c'est pas du très joli ,déja que mon fichier est gros.
                      la solution est que j'ai viré le format date de la feuille dans laquelle je colle des donnée et à chaque fois que je colle j'écrit ca :
                          ladate = Sheets(4).Range("B" & i)
                          Sheets(5).Range("B" & j).Value = Format(ladate, "M/d/yyyy")
                          ladate = Sheets(4).Range("C" & i)
                          Sheets(5).Range("C" & j).Value = Format(ladate, "M/d/yyyy")
                      
                      0
                      1. salut,
                        as tu vérifié que tes variables i et j était bien égal aux ligne souhaité ? que ces variables soit bien initialisé au début ?
                        0
                        1. oui oui , ca c'est vérifié ,mais le problème ne venais pas des variables pour les cellules mais plustot du formats des cellules.
                          Problème résolu
                          0