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

VBA Access Discussion :

Récupération valeur cellule Excel ("Expression non définie..")


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 44
    Points : 34
    Points
    34
    Par défaut Récupération valeur cellule Excel ("Expression non définie..")
    Bonjour à tous.

    Voila la situation : je dispose d'une base acces depuis laquelle je souhaite ouvrir un classeur excel, recherche une valeur dans ce classeur puis la stocker avant de lui faire subir des choses inavouable.

    J'ouvre sans peine le classeur, je me positionne sur l'onglet qui m'interesse, je parcours mes lignes pour chercher la valeur, et là c'est le drame, ca ne marche pas. Voila le code incriminé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
      'Ouvre le PDM
        Nom_Classeur_PDM_Actes = "BESOIN HEURES_" & Format(txt_date, "Mmmm") & ".xls"
        Const Chemin_Classeur_PDM_Actes = "M:\IOS\SFR LCO\Plan de Marche\"
     
        Workbooks.Open (Chemin_Classeur_PDM_Actes & Nom_Classeur_PDM_Actes)
     
     
      'Se positionne sur l'onglet Actes
        With Workbooks(Nom_Classeur_PDM_Actes).Worksheets("Actes Pdm")
     
        'Recherche la ligne correspondant à la date de traitement (la colonne qui contient la date ds le PDM est la N°2)
          For Num_Ligne_PDM = 2 To 40
            If .Cells(Num_Ligne_PDM, 2) = Format(txt_date, "dd") Then Exit For
          Next Num_Ligne_PDM
    Ce qui est bizarre c'est que quand je place un espion sur ".Cells(Num_Ligne_PDM, 2)", il me dit "expression non définie dans le conteste", alors que si j'écris par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test=.Cells(Num_Ligne_PDM, 2)
    alors ma variable test contient bien la valeur de ma cellule. Alors certe je peut bien sur contourner le pb en stockant ma valeur de cellule dans une variable, mais quand même j'aimerais bien savoir le pourquoi de cette erreur. Merci d'avance

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 44
    Points : 34
    Points
    34
    Par défaut
    bon en fait j'ai trouvé l'existence d'un pb de type entre mes 2 expressions comparés, ma cellule contenant du texte, alors que Format() renvoi un type date. donc du coup en mettant le code suivant ca marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If .Cells(Num_Ligne_PDM, 2) = CStr(Format(txt_date, "dd")) Then Exit For
    Donc mon code marche et c'est une bonne nouvelle (surtout pour moi ;-)

    Par contre access continu de me dire "expression non définie dans le contexte" quand je place un espion sur .Cells(Num_Ligne_PDM, 2) et ca ca m'énerve ... donc je vais mettre ce post en résolu, mais si quelqu'un sais pk access me dis ca je suis preneur.

  3. #3
    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
    Parce que, dans l'espion, tu n'as pas la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Workbooks(Nom_Classeur_PDM_Actes).Worksheets("Actes Pdm")
    il ne peut donc pas interpréter une expression commençant par un point.

    Tu dois donc écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Workbooks(Nom_Classeur_PDM_Actes).Worksheets("Actes Pdm").Cells(Num_Ligne_PDM, 2)
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 44
    Points : 34
    Points
    34
    Par défaut
    merci beaucoup pour l'info.

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

Discussions similaires

  1. Récupérer valeur cellule Excel pour app vb2005
    Par j-lo28 dans le forum VB.NET
    Réponses: 0
    Dernier message: 24/12/2008, 18h14
  2. Récupération commentaire cellule Excel
    Par looping dans le forum Langage
    Réponses: 1
    Dernier message: 18/07/2008, 08h34
  3. [EXCEL] Récupération valeur cellule
    Par mimic50 dans le forum Excel
    Réponses: 5
    Dernier message: 17/09/2007, 17h24
  4. Contourner une expression non définie
    Par TicTac75 dans le forum Access
    Réponses: 3
    Dernier message: 20/02/2007, 18h52
  5. Réponses: 2
    Dernier message: 23/01/2006, 18h07

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