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 :

Concaténation nom de variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Avril 2004
    Messages : 102
    Par défaut Concaténation nom de variable
    Voici mon problème.

    Je dois calculer l'activité des 2 pauses qui travaillent en alternance matin/après-midi dans le magasin.

    J'ai donc mis le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    sem = DatePart("ww", begin, vbMonday, vbFirstFourDays)
    If sem Mod 2 > 0 Then
        matin = "p2"
        apresmidi = "p1"
        Else
            matin = "p1"
            apresmidi = "p2"
    End If
    Maintenant, lors de mes calculs, j'aimerais que ma variable se crée automatiquement en fonction de la semaine en cours.
    Si matin : nom de la variable : travail & matin
    Si après-midi : nom de la variable : travail & apresmidi

    Je ne sais absolument pas si c'est possible, c'est pour cette raison que je fais appel à vous

    Merci d'avance.

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    une variable ne pouvant se définir par une chaine de caractères, cette démarche ne conduit nulle part.
    Tu peux parcontre prédéfinir tes variables et les utiliser de manière conditionnelle, tout simplement.

    En passant,

    ton code (celui que tu nous as montré) devrait plutôt s'écrire ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    matin = "p1": apresmidi = "p2"
     If DatePart("ww", begin, vbMonday, vbFirstFourDays) And 1 Then
       matin = "p2":  aprèsmidi = "p1"
     End If

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Avril 2004
    Messages : 102
    Par défaut
    Merci pour ta réponse.

    Le problème, c'est que j'ai une vingtaine de zones différentes pour lesquelles je dois calculer l'activité.
    Ce qui correspond à un quarantaine de variables.
    Si je dois commencer à faire un contrôle de la pause concernée pour chacune de ces zones, je vais avoir un nombre impressionnant de "IF".

    N'y a-t-il pas un autre moyen ?

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Ecoute !
    si tu étais capabler de travailler avec une variable nommée travailp1 et une variable nommée travailp2 uniquement pour traiter 40 cas différents, reien ne devrait t'empêcher de typer en booléen travailp1 et travailp2, par exemple, et de leur donner, selon le cas, la valeur true ou false ! (à définir dans le code déjà écrit ...)
    C'est une question d'organisation de ta pensée en fonction de ce que tu dois faire !
    Mais abandonne l'idée de concaténer ...

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Avril 2004
    Messages : 102
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    reien ne devrait t'empêcher de typer en booléen travailp1 et travailp2, par exemple, et de leur donner, selon le cas, la valeur true ou false ! (à définir dans le code déjà écrit ...)
    Je dois bien avouer que je ne comprends pas bien ce que tu m'expliques (peut-être est-ce du au fait que je suis encore débutant en VBA ).

    Est-ce que tu pourrais me donner un court exemple ?

    Merci d'avance.

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Un "court exemple" de quoi, dans l'ignorance de ce que tu cherches à faire ?
    Il y aurait autant d'exemples que de mécanismes et de finalités d'applications !!!
    Le principe est simple, puisqu'au bout du compte tu n'as que deux variables mises en cause !
    Si l'une est à true alors faire ceci sinon faire celà ... (y compris te référer à une variable1 plutôt qu'à une variable2).
    Celà ne relève pas de la connaissance d'un langage de développement, mais de la construction de ta pensée !

  7. #7
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Pourquoi ne travaille tu pas avec une tableau qui contient le nombre d'élements correspondant à tes différents cas de variables.

    Tu fais un (des) select case qui te permet en fonction du cas de déterminer l'indice adéquant dans ta table.
    Tu peux aussi travailler sur une table a plusieurs dimensions. je ne connais pas tes besoins.

    Et puis tu utilise cet indice pour manipuler la table

    Ce n'est pas cela que tu veux ?

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Avril 2004
    Messages : 102
    Par défaut
    Je dois te répondre la même chose qu'à ucfoutu : c'est probablement une très bonne idéee, mais comme je suis encore débutant en VBA, j'ai un peu de mal à m'imaginer ce que ça donnerait en code.
    Peux-tu me donner un petit exemple ?

    Merci d'avance.

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

Discussions similaires

  1. Concaténation nom de variable
    Par Sekigawa dans le forum Langage
    Réponses: 7
    Dernier message: 12/01/2009, 12h12
  2. Concaténer une chaine et un nombre pour former un nom de variable ?
    Par debie1108 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/04/2007, 07h38
  3. modifier nom de variable et concaténation
    Par edouardj dans le forum Langage
    Réponses: 10
    Dernier message: 26/01/2007, 18h59
  4. concaténation de nom de variable
    Par sandytarit dans le forum Langage
    Réponses: 10
    Dernier message: 23/01/2007, 10h52
  5. [VBSCRIPT] concaténer 2 noms de variable
    Par wil4linux dans le forum ASP
    Réponses: 4
    Dernier message: 28/02/2006, 13h22

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