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 :

Appel d'une sub -- > Erreur de sytaxe


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Août 2011
    Messages : 103
    Points : 49
    Points
    49
    Par défaut Appel d'une sub -- > Erreur de sytaxe
    Bonjour,

    Voila je me permet de vous détailler mon petit problème en VBA pour Excel

    J'ai un module simple avec une sub qui permet de construire un titre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    ' Oblige la déclaration des variables au préalable
    Option Explicit
     
    ' Constantes énumérées des différents Statut
    Enum Statut_Travail
        Consulter = 0
        Ajouter = 1
        Modifier = 2
        Supprimer = 3
    End Enum
    Const Statut_Fetat As String = "Consultation;Nouveau;Modification;Suppresion"
    ' Titre Fiche état
    Const DebTitre_Fetat As String = " Etat : "
    ' Tableau des différents statut
    Dim After_TitreFiche() As String
    '
     
     
    Sub Write_Titrefiche(ByVal Etat As Byte, Titre_Fiche As String)
        After_TitreFiche = Split(Statut_Fetat, ";")
        MsgBox Titre_Fetat & After_TitreFiche(Etat)
        Titre_Etat = DebTitre_Fetat & After_TitreFiche(Etat)
    End Sub
    J'ai aussi un Userform avec du code qui à l'activation de celui-ci fait appel a la sub du module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    ' Oblige la déclaration des variables au préalable
    Option Explicit
    
    ' Titre UserForm
    Const Titre_UFbook As String = ".::: Gestion des bookmakers"
    
    ' Etat du travail en cours
    Dim Etat_Travencours As String
    ' Titre fiche état
    Dim Titre_Fetat As String
    '
    
    
    Private Sub UserForm_Activate()
        Me.Caption = Titre_UFbook
        Etat_Travencours = Mod_functions.Statut_Travail.Consulter
        Mod_functions.Write_Titrefiche(Etat_Travencours,Titre_Fetat)
    End Sub
    La ligne rouge m'indique une erreur de syntaxe alors que le nombre de paramètre est bon ils sont tous les 2 déclaré en string.

    Je ne vois pas la problème, vous avez sas doute plus l'expérience que moi...

    Merci de votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Write_Titrefiche Etat_Travencours,Titre_Fetat

  3. #3
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 274
    Points
    34 274
    Par défaut
    Bonjour

    2 syntaxes me viennent en tete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mod_functions.Write_Titrefiche Etat_Travencours,Titre_Fetat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call Mod_functions.Write_Titrefiche(Etat_Travencours,Titre_Fetat)
    voire meme sans le Mod_function

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Write_Titrefiche Etat_Travencours,Titre_Fetat
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call Write_Titrefiche(Etat_Travencours,Titre_Fetat)
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  4. #4
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    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 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    mis à part ta question initiale qui a déjà fait l'objet d'une réponse que j'appuie.

    Etat_Travencours est déclaré en String
    Tu l'utilises comme paramètre dans une fonction qui attend un Byte, c'est normal ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sub Write_Titrefiche(ByVal Etat As Byte, Titre_Fiche As String)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Etat_Travencours As String
    Mod_functions.Write_Titrefiche(Etat_Travencours,Titre_Fetat)

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Août 2011
    Messages : 103
    Points : 49
    Points
    49
    Par défaut
    Erreur que j'ai corrigé entre le moment du post du message et votre message

    Citation Envoyé par joe.levrai Voir le message
    Bonjour,

    mis à part ta question initiale qui a déjà fait l'objet d'une réponse que j'appuie.

    Etat_Travencours est déclaré en String
    Tu l'utilises comme paramètre dans une fonction qui attend un Byte, c'est normal ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sub Write_Titrefiche(ByVal Etat As Byte, Titre_Fiche As String)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Etat_Travencours As String
    Mod_functions.Write_Titrefiche(Etat_Travencours,Titre_Fetat)
    Merci bien pour votre aide

Discussions similaires

  1. [XL-2010] Appel d'une Sub dans une fonction
    Par martinmacfly dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/05/2013, 09h14
  2. Réponses: 3
    Dernier message: 07/01/2010, 16h54
  3. appel d'une sub d'un autre fichier xls (avec sorties)
    Par hector2 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/08/2007, 11h28
  4. appel d une variable ds un sub
    Par NeHuS dans le forum ASP
    Réponses: 7
    Dernier message: 05/01/2005, 15h38
  5. [VB.NET] Appeler une sub public dans un module de form
    Par SergeF dans le forum Windows Forms
    Réponses: 3
    Dernier message: 01/06/2004, 13h08

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