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éner des choux et des carottes


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Concaténer des choux et des carottes
    Bonjour !

    J'ai un soucis sur VBA, pour un projet.

    Dans un label, j'aimerai afficher a la fin de mon programme une suite de valeurs dont le nombre varie.
    J'aimerai donc concaténer a la suite de ce que j'avais avant dans mon label

    Ca donnerai en gros ca :
    En 1995 il y a eut x% d'ouragans

    1995 et x je vais les chercher dans 2 colonnes excel (colonnes 13 et 14 et ligne M)
    m et i, sont des variables que j'utilise avant.

    Mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    M = 3
    While M <> m - 2
     
    UserForm2.Label4 = UserForm2.Label4 & vbCrLf & " en " & Sheets("ouragans").Cells(M, 13).Value & " il y a eut" & Sheets("ouragans").Cells(M, 14).Value*100/i & "% d'ouragans"
     
    M = M + 1
    Wend

    Est ce que c'est bien catholique d'écrire ça comme ça ?
    Merci beaucoup pour votre aide !

    Moki

  2. #2
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    891
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 891
    Points : 831
    Points
    831
    Par défaut bonsoir mokimoki,
    bienvenue sur le forum,

    Est ce que c'est bien catholique d'écrire ça comme ça ?
    je ne sais pas si les protestants vont protester mais c'est incompréhensible : c'est de la programmation VBA ou un algo mal fait ?

    • En VBA, "M" et "m" sont identiques
    • "M" va-t-il varier ou est-ce une valeur fixe comme la colonne 13 et 14 ?
    • "m" est plus grand que "M"


    Explique-nous mieux ce que tu veux.

    ESVBA

  3. #3
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 061
    Points
    32 061
    Par défaut
    Je suis protestant et je proteste, c'est illisible.

    Outre les remarques judicieuses d'ESVBA(à savoir que M=m, et donc ton while sera toujours vrai, et ton programme va boucler infiniment), quand on concatène(rien de scandaleux en soit) différentes choses, mieux vaut le faire sur plusieurs lignes histoire de pouvoir se relire.

    du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UserForm2.Label4 = UserForm2.Label4 & vbCrLf 
    UserForm2.Label4 = UserForm2.Label4 & " en " 
    UserForm2.Label4 = UserForm2.Label4 & Sheets("ouragans").Cells(M, 13).Value 
    UserForm2.Label4 = UserForm2.Label4 & " il y a eut" 
    UserForm2.Label4 = UserForm2.Label4 & Sheets("ouragans").Cells(M, 14).Value*100/i 
    UserForm2.Label4 = UserForm2.Label4 & "% d'ouragans"
    C'est pareil, mais c'est lisible. On peut même passer par une chaine intermédiaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    dim Chaine as string
     
    Chaine=  vbCrLf 
    Chaine = Chaine & " en " 
    Chaine = Chaine & Sheets("ouragans").Cells(M, 13).Value 
    Chaine = Chaine & " il y a eut" 
    Chaine = Chaine & Sheets("ouragans").Cells(M, 14).Value*100/i 
    Chaine = Chaine & "% d'ouragans"
    UserForm2.Label4 = UserForm2.Label4 & Chaine
    Et puis des vrais noms de variable, genre LigneLue, ColonneLue, Compteur, sont aussi conseillées.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Désolé de pas avoir répondu plus tôt, soucis de connexion...

    Je ne savais pas que M=m. Ça va résoudre pas mal de soucis de mon programme je pense ^^


    la réponse de el_slapper m'a beaucoup aidée, j'avais pas pensé a le faire comme ca, c'est vrai que c'est plus simple !


    Merci pour vos réponses !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/10/2009, 10h36
  2. Trigger pour mettre des droits sur des procedures et des vues
    Par briino dans le forum Développement
    Réponses: 3
    Dernier message: 23/09/2009, 09h44
  3. Réponses: 4
    Dernier message: 02/04/2008, 17h51
  4. Réponses: 3
    Dernier message: 13/09/2007, 18h11
  5. Réponses: 3
    Dernier message: 23/01/2007, 08h14

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