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 :

question sur non lancement d'une focntion


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 26
    Points : 22
    Points
    22
    Par défaut question sur non lancement d'une focntion
    bonjour à toutes et à tous!

    Je suis nouveau sur le forum et je débute en programmation de macro.
    Donc voilà, j'ai réalisé une macro mais on me sort une erreur et je ne sais pas comment traiter cela...

    J'ai une procédure Va_dans_le_SELECT() qui est appellée lors de l'entrée de données. cette procédure se lance, ok.
    Dans cette procédure j'ai un Select case qui fonctionne.
    C'est dans le With Selection que ca "merdouille", là j'appelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomTECH = SELECT_TECH(Sheets("BASE"), CurLigne, 5)
    La fonction SELECT_TECH est décrite ci dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Function SELECT_TECH(ByVal sheet As String, ByVal currentligne As Long, ByVal colonne As Long) As Integer
    Select Case Sheets("BASE").Cells(currentligne, colonne).Value
    ....blablabla....
    End Select
    End Function
    Est ce quelqu'un sait pourquoi ca ne rentre pas dans SELECT_TECH??? Ca me sort Erreur 438: propriété ou méthode non gérée par cet objet...

    En fait, initialement j'ai ce select case incorporoé dans le case 1 de la méthode Va_dans_le_SELECT(), mais c'était trop gros, donc je l'ai sortie de là en pensant que ca marcherai et ma foi non...

    Qualu'un à une idée, désolee je n'ai pas pu mettre le fichier, il est trop gros!

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour
    Ton blablabla n'est pas du tout opportun pour déceler l'erreur.
    et à la fin SELECT_TECH devra récupérer un integer
    Alors, je ferai comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function SELECT_TECH(sht As Sheets, ByVal currentligne As Long, ByVal colonne As Integer) As Integer
    Select Case sht.Cells(currentligne, colonne).Value
    ....blablabla....
    End Select
    End Function
    Edit, j'ai relu ton post et changé le code, regarde les paramètres de la fonction

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Points : 877
    Points
    877
    Par défaut
    Bonjour

    au premier coup d'oeil dans la déclaration de ta fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Function SELECT_TECH(ByVal sheet As String, ByVal currentligne As Long, ByVal colonne As Long) As Integer
    1) tu devrais remplacer le nom de variable sheet qui est réservé par VB ex : mySheet

    2) la variable sheet est de type string et quand tu appelle ta fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomTECH = SELECT_TECH(Sheets("BASE"), CurLigne, 5)
    Sheets("BASE") est un objet Worksheet tu devrais utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomTECH = SELECT_TECH(Sheets("BASE").name, CurLigne, 5)
    ensuite dans la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select Case Sheets("BASE").Cells(currentligne, colonne).Value
    vu que tu passe le nom de la feuille en paramètre, pourquoi utiliser son nom en dur

    a remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'penser à remplacer sheet par un autre nom
    Select Case Sheets(sheet).Cells(currentligne, colonne).Value

Discussions similaires

  1. question sur l'utilisation d'une listBox
    Par Mickey.jet dans le forum Delphi
    Réponses: 3
    Dernier message: 02/06/2006, 17h57
  2. petite question sur la récupération d'une variable
    Par minusette dans le forum Langage
    Réponses: 6
    Dernier message: 17/11/2005, 16h57
  3. Question sur la création d'une table
    Par air dans le forum Oracle
    Réponses: 4
    Dernier message: 23/10/2005, 12h46
  4. Réponses: 5
    Dernier message: 13/10/2005, 12h46
  5. question sur la creation d'une base
    Par vbcasimir dans le forum Débuter
    Réponses: 4
    Dernier message: 27/05/2005, 11h17

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