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 :

Tester existance feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyste
    Inscrit en
    Août 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste
    Secteur : Services de proximité

    Informations forums :
    Inscription : Août 2003
    Messages : 85
    Par défaut Tester existance feuille
    Dans cette discussion, j'ai du mal à saisir l'intérêt de la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    debug.print Sheets(sonnom).name
    Pouvez-vous l'expliquer à un débutant comme moi ?


    Merci.


    Edit.
    Je viens de tester la fonction feuille_existe et je n'arrive pas à la faire marcher.

    Je vous mets mon bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If feuille_existe("en cours client")=false then
       Sheets.add
       Sheets("feuil1").select
       Sheets("feuil1").name = "en cours client"
    End if
    Dans mon classeur, la feuille "en cours client" existe. Donc ma fonction devrait envoyer Vrai... et bah j'arrive à rentrer dans mon If et message d'erreur :
    erreur d'exe 1004
    Impossible de renommer une feuille comme une autre feuille.

    Pouvez-vous m'indiquer où se situe mon erreur ?

  2. #2
    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 : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Evite de poster à la suite d'un sujet résolu, tu risques de ne pas recevoir de réponse.

    Pour ta première question, si tu tentes une action quelconque sur un objet qui n'existe pas, tu provoques une erreur.

    Pour ton problème, on ne sait pas quelle syntaxe tu as choisi.
    Postes-nous donc le code de feuille_existe tel que tu l'as écrit.

    N'oublie pas les balises [code], stp.
    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!

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    Slt,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    debug.print Sheets(sonnom).name
    C'est un debug.print on s'en sert pour verifier la valeur d'une variable ou autre...

    Je viens de tester la fonction feuille_existe et je n'arrive pas à la faire marcher.

    Je vous mets mon bout de code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Code :
    If feuille_existe("en cours client")=false then
       Sheets.add
       Sheets("feuil1").select
       Sheets("feuil1").name = "en cours client"
    End if
    la fonction feuille_existe n'est pas une fonction vba, on est d'accord?
    tu as donc quelque part dans un module une fonction qui s'appele feuille_existe et qui renvoie un boolean ?

  4. #4
    Membre éprouvé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Par défaut
    Petite astuce :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If feuille_existe("en cours client")=false
    est equivalent à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not feuille_existe("en cours client")

  5. #5
    Membre confirmé
    Homme Profil pro
    Analyste
    Inscrit en
    Août 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste
    Secteur : Services de proximité

    Informations forums :
    Inscription : Août 2003
    Messages : 85
    Par défaut
    Citation Envoyé par Elstak

    la fonction feuille_existe n'est pas une fonction vba, on est d'accord?
    tu as donc quelque part dans un module une fonction qui s'appele feuille_existe et qui renvoie un boolean ?
    Bonjour à tous,

    Merci au modérateur d'avoir mis ma question sur un nouveau post.
    J'essaierais à l'avenir de faire attention

    Pour répondre à Elstak, oui j'ai fais une fonction mais par contre je ne l'ai pas mis dans un module. C'est peux-être là mon erreur.
    Je joins le code de la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function feuille_existe(sonnom As String) As Boolean
       On Error GoTo final
          Sheets(sonnom).Select
       feuillexiste = True
       Exit Function
    final:
     feuillexiste = False
     On Error GoTo 0
      End Function
    Comme cela ne fonctionnait pas. J'ai cherché autre chose et j'ai mis le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function feuille_existe(nom as string) as boolean
      On error resume next
      set x=activeworkbooks.sheet(nom)
      if err = 0 then feuille_existe = true else : feuille_existe=false
    Et là avec ce code, ça fonctionne.


    Merci pour Debug.
    A plus tard.
    Je mets le post en résolu.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/11/2005, 16h51
  2. tester existance Formulaire
    Par LeScandinave dans le forum Access
    Réponses: 3
    Dernier message: 02/11/2005, 11h20
  3. Réponses: 4
    Dernier message: 08/09/2005, 22h24
  4. Tester existence d'une contrainte
    Par castaka dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 29/07/2005, 17h47
  5. [C#] Tester existence d'une variable de session
    Par IDNoires dans le forum ASP.NET
    Réponses: 2
    Dernier message: 31/12/2004, 12h30

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