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 :

Affecter un tableau avec une variable créée avec Type [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 40
    Par défaut Affecter un tableau avec une variable créée avec Type
    Bonjour,
    Ces tableaux qui affectent à chaque élève d'une classe un nom et une note est nickel:
    Nom = array("Paul","Rebecca",etc...)
    Note = array(3,6,etc...)

    Encore débutant en vba excel j'ai essayé de réécrire ces deux tableaux en utilisant Type ,sachant que la variable Nom d'indice i est associée avec la variable Note de même indice, ex : Paul a 3 ,Rebecca a 6 ,etc...

    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
    Option base 1
    Type TEleve
           Nom as String
           Note as Byte
    End Type
     
    Dim Eleve(100) as TEleve
     
    Voici la méthode correcte mais ardue pour affecter le tableau Eleve
     
    Eleve(1).Nom = "Paul
    Eleve(1).Note = 3
    Eleve(2).Nom = "Rebecca"
    Eleve(2).Note = 6
    etc...
    Mais c'est un boulet que d'écrire 100 fois ainsi.

    Donc j'ai essayé ceci pour simplifier l'écriture mais ça ne marche pas:

    Eleve.Nom = Array("Paul,"Rebecca",...)
    Eleve.Note = Array(3,6,2....)

    une solution ?

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour

    tel que tu le presente ca ne fonctionne que pour une situation demain les notes ou les noms changent que fait tu?tu refait le code ?

    les nom devrais etre dans un sheets et les notes auss
    ainsi tu pourrais utiliser simplement des variable tableaux

    n'en sachant pas plus sur ton projet je ne peux t'en dire plus

    en tout cas ton dernier exemple ne peux pas fonctionner puisque eleve sont des variables tableau "type"et non pas des variant ou autres il te manque les index
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    eleve(x).nom="toto"'ici tu ne peut pas mettre le array complet
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 40
    Par défaut
    Bonjour,
    tel que tu le presente ca ne fonctionne que pour une situation demain les notes ou les noms changent que fait tu?tu refait le code ?
    oui en effet c'es pour une situation bien fixée et il n'y a pas de changement prévue dans le futur

    les nom devrais etre dans un sheets et les notes auss
    ainsi tu pourrais utiliser simplement des variable tableaux
    pas saisi...

    n'en sachant pas plus sur ton projet je ne peux t'en dire plus
    Mon projet est ceci : comment rendre moins ardue l'affectation d'un tableau ,ici Elelve(100), sachant que la variable Eleve est construit à partir d'une structure Type

    en tout cas ton dernier exemple ne peux pas fonctionner puisque eleve sont des variables tableau "type"et non pas des variant ou autres il te manque les index
    oui justement c'est ça le problème les indices ne marchent pas sur Type comme sur un simple tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    eleve(x).nom="toto"'ici tu ne peut pas mettre le array complet
    une alternative?

  4. #4
    Expert éminent 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
    Par défaut
    Par boucle
    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
    Option Explicit
    Option Base 1
    Type TEleve
           Nom As String
           Note As Byte
    End Type
     
    Sub Test()
    Dim Eleve(100) As TEleve
    Dim LesNoms, LesNotes
    Dim i As Byte
     
    LesNoms = Array("Paul", "Rebeca")
    LesNotes = Array(3, 6)
    For i = 1 To UBound(LesNoms)
        Eleve(i).Nom = LesNoms(i)
        Eleve(i).Note = LesNotes(i)
    Next i
    End Sub

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 40
    Par défaut cool
    merci ça me convient

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour a tous les deux
    mercato
    les éléments d'un array commence t il pas pas "0" ,ne va t il pas en manquer un ?
    1 étant le deuxième élément de l'array

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Expert éminent 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
    Par défaut
    Patric
    Tu n'as pas vu?
    C'était l'approche initiale de paulselvan

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour mercatog

    oui tu a raison je navais pas vu le "option base 1"
    autant pour moi

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/05/2011, 15h46
  2. [PHP 5.2] Récupérer une variable POST avec une variable comme nom
    Par bailamos dans le forum Langage
    Réponses: 2
    Dernier message: 28/12/2008, 14h59
  3. [8.5] Impossible de creer une table croisée avec une variable shared
    Par rihiveli dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 20/04/2007, 10h32
  4. [T-SQL] Colonnes d'une table appelées avec une variable
    Par Deedoo2000 dans le forum Adaptive Server Enterprise
    Réponses: 3
    Dernier message: 25/09/2006, 15h18
  5. [T-SQL] Colonnes d'une table appelées avec une variable
    Par Deedoo2000 dans le forum Sybase
    Réponses: 3
    Dernier message: 25/09/2006, 15h18

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