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 :

Erreur avec la commande "Type"


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 211
    Points : 137
    Points
    137
    Par défaut Erreur avec la commande "Type"
    Bonjour,

    J'ai essayé d'utiliser la commande "Type".
    voici mon code:

    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
    Public Type VirementsReguliers
    Count As Integer
    Index As Integer
    TabStartDate(100) As Date
    TabFinDate(100) As Date
    TabMontant(100) As Double
    End Type
    
    Public Type VirementsExceptionnels
    Count As Integer
    Index As Integer
    TabDate(100) As Date
    TabMontant(100) As Double
    End Type
    
    Private Sub CommandButton1_Click()
    Dim VirReg As VirementsReguliers
    Dim VirExp As VirementsExceptionnels
    
    ...
    
    End Sub
    vba me met l'erreur suivante:
    Erreur de compilation:
    Impossible de définir un type Public défini par l'utilisateur à l'intérieur d'un module objet
    Dans un tutorial de ce site j'ai lu:
    Ce code se place toujours en tête de module standard. Il ne peut jamais être utilisé dans le corps d'une procédure ou d'une fonction.
    Je pense que c'est mon probleme car je fais la déclaration au dessus le la procedure. Mais où dois je déclarer le type ? J'ai essayé de faire la déclaration dans un module mais ca marche pas ...

    Pouvez vous m'aider?

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 368
    Points
    34 368
    Par défaut
    salut,
    en voyant ton commandbutton_click(), je me doute que tu as ce code dans un module de formulaire.
    Ton code dans un module "simple" fonctionne chez moi en tout cas

  3. #3
    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
    Tu ajoutes un module public à ton projet, tu y mets tes déclaration. et je ne sais pas pourquoi ça ne fonctionnera pas!

    Tu les déclare en haut de la zone code d'une feuille ou userform.. (Module objet)
    impérativement tu dois faire
    Insertion> module
    Tu y colles tes déclarations

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 211
    Points : 137
    Points
    137
    Par défaut
    C'est bon ca marche.

    Enfaite J'ai coupé tout le code, la procedure y comprie dans le module.
    Là j'ai cliké sur le bouton CommandButton1.
    Il ne se passait rien puisque la procedure n'etait plus dans le code de la feuille.
    J'ai donc recoupé la procedure Private Sub CommandButton1_Click() dans le code de la feuille excel.

    Et maintenant quand je clicke sur le bouton ca marche. Je pense que vba devait avoir du mal a mettre a jour certain truc car j'avais deja essayé en coupant simplement la declaration du type dans le module et j'avais encor l'erreur.

    Enfin bref maintenant ca marche!

    Merci a tous

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

Discussions similaires

  1. Erreur avec la commande free
    Par be_tnt dans le forum C
    Réponses: 17
    Dernier message: 14/06/2006, 11h20

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