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 :

Déclarer une structure.


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 29
    Par défaut Déclarer une structure.
    Bonjour,

    Je voudrais savoir si on peut déclarer une variabe de type structure en VBA Excel.

    Du genre : Structure eleve

    Dim nom as string
    Dim prenom as string
    Dim classe as string

    End Structure

    J'ai regardé sur internet mais je n'ai rien trouvé qui puisse m'éclairer.

    Donc je me demande si c'est possible ou bien si c'est moi qui ne suis pas doué avec google

    Merci

  2. #2
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Citation Envoyé par enchanté
    Bonjour,


    J'ai regardé sur internet mais je n'ai rien trouvé qui puisse m'éclairer.

    Donc je me demande si c'est possible ou bien si c'est moi qui ne suis pas doué avec google

    Merci
    Je pense que c'est toi qui n'est pas doué avec Google (ni avec l'aide en ligne, d'ailleurs) !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Type  eleve
        Dim nom as string*30,
        Dim prenom as string*30,
        Dim classe as string*5
    End Type

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Citation Envoyé par Garuda
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Type  eleve
        Dim nom as string * 30,
        Dim prenom as string * 30
        Dim classe as string * 5
    End Type
    Bon.mais visible uniquement dans le module ou autre de la déclaration.

    Petit complément...visible partout...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Type  ERG
        Dim nom as string * 30
        Dim prenom as string * 30
        Dim classe as string * 5
    End Type
    Public eleve as ERG
    A+

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    non seulement tu peux mais il existe deux facons de procéder
    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
    25
    26
     
    Option Explicit
    Option Base 1
     
    Type elev
    nom As String
    prenom As String
    classe As String
    End Type
     
     
    Sub manipule()
    Dim sujet As elev
    Dim boucle As Integer
    Dim x(10) As elev
    For boucle = 1 To 4
    sujet.nom = InputBox("nom?")
    sujet.prenom = InputBox("prénom?")
    sujet.classe = InputBox("classe?")
    x(boucle) = sujet
    Next boucle
    For boucle = 1 To 4
    sujet = x(boucle)
    Debug.Print sujet.nom
    Next boucle
    End Sub
    sinon
    en deux parties
    dans un module de classe nommé élève
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Option Explicit
    Public nom As String
    Public prenom As String
    Public classe As String
    et dans un module vba
    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
    Sub manipclasse()
    Dim v As Variant
    Dim macoll As New Collection
    Dim boucle As Integer
    Dim enumer As eleve
    For boucle = 1 To 4
    Set v = New eleve
    v.nom = InputBox("nom?")
    macoll.Add Item:=v
    Set v = Nothing
    Next boucle
    For Each enumer In macoll
    MsgBox (enumer.nom)
    Next enumer
    End Sub
    contrairement à que prétend l'homme oiseau tu es suffisemment doué sur le net pour trouver trois réponses

  5. #5
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 29
    Par défaut
    Ok merci, ça marche !

    Et puis c'est cool, maintenant je sais que " Type de données défini par l'utilisateur" et " Structure " bah c'est la même chose

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 14/01/2011, 20h41
  2. [Langage] Déclarer une structure statique
    Par Spack dans le forum Langage
    Réponses: 11
    Dernier message: 07/11/2008, 19h22
  3. [C#] déclarer une structure en static
    Par gdkenny dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/09/2006, 13h04
  4. [MFC][debutant] probleme pour déclarer une structure
    Par Robleplongeur dans le forum MFC
    Réponses: 10
    Dernier message: 21/02/2005, 13h29
  5. longueur d'une structure
    Par bohemianvirtual dans le forum C
    Réponses: 6
    Dernier message: 28/05/2002, 18h31

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