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 :

aide sur calcul dans les élements contenus dans un tableau en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2016
    Messages : 69
    Par défaut aide sur calcul dans les élements contenus dans un tableau en VBA
    Bonjour à toutes et a tous,

    je suis novice en VBA j'ai lu les cours et tutoriels contenus dans ce forum sur les tableaux et boucles imbriquées mais afin de mieux appréhender le concept des tableaux que je ne visualise pas trop bien peut être, je sollicite votre aide sur un exemple précis qui, à mon avis me permettra de mieux contextualiser les choses.

    Je m'explique : je veux créer une fonction avec une seule variable d'entrée qui est un tableau. A partir de cette variable d'entrée je veux faire des calculs entre les différents éléments du tableau (voir image ci-joint en jaune le tableau d'entrée et le texte en couleur les calculs que je veux faire).
    Nom : Capture.JPG
Affichages : 1230
Taille : 21,2 Ko

    Je n'ai pas fait de code comme je ne sais pas du tout comment faire. Merci de vos aides pour me permettre d'avance dans mon apprentissage des tableaux sous vba.

    Par ailleurs j'ai cru lire que debug.print ne fonctionne pas pour les tableaux. Existe-t-il un autre moyen pour vérifier les éléments d'un tableau au cours de la réalisation d'un code.


    Milles remerciements par avance.

    ---------------------------------------------------------------------------------------------------------------------
    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour !

    Aucun souci avec Debug.Print pour afficher un élément d'une variable tableau !

    Autre moyen : suivre le code en mode pas à pas via la touche F8 (ou via un point d'arrêt)
        et contrôler le contenu de la variable dans la fenêtre Variables locales

    Pour la création de la variable tableau tout dépend déjà où se trouvent les données !

    Voir le tutoriel Utiliser les variables tableaux en VBA Excel

    _________________________________________________________________________________________________________
    Je suis Paris, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Je ne comprends pas vraiment quelle est la logique de tes combinaisons (s'il y en a une).

    Tu ne peux pas créer une fonction qui renvoie plusieurs valeur. Une fonction ne renvoie qu'une valeur.
    Par contre, il est possible de faire une procédure Sub qui rempliera des cases précises.

    Si tu transmets un tableau sous forme de paramètre, il faut que ce paramètre soit déclaré de type Range.
    Tu pourras atteindre chaque élément à l'aide de la propriété Item.
    https://msdn.microsoft.com/fr-fr/lib.../ff841096.aspx

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2016
    Messages : 69
    Par défaut
    Bonjour
    Non il ny a aucune logique hormis le sens fait de pouvoir contextualiser les choses de mieux les apprehender. Je suis d'accord avec le fait que la fonction ne donne qu ine seul valeur mais je peux les sortir en array sur plusieurs cellules.

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par delphine63000 Voir le message
    Je suis d'accord avec le fait que la fonction ne donne qu ine seul valeur mais je peux les sortir en array sur plusieurs cellules.
    Une fonction est dans une cellule dans laquelle elle place son résultat.
    C'est la même chose que n'importe quelle fonction Excel.

    Si tu veux placer plusieurs valeurs dans plusieurs cellules, il faudra créer une procédure Sub qui se lancera avec un bouton ou un raccourci clavier mais qui ne sera pas aussi dynamique qu'une fonction (sauf si on la place dans une macro évènementielle, mais ça c'est une autre histoire).

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Demo1()
            VT = [{"x","P";0.5,150}]
        For R& = LBound(VT) To UBound(VT)
            Debug.Print VT(R, 1), VT(R, 2)
        Next
            Debug.Print VT(2, 1) * VT(2, 2)
    End Sub
    Voir le résultat dans la fenêtre Exécution du VBE …

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2016
    Messages : 69
    Par défaut
    Bonjour Marc
    Merci pr ton aide. Je precise ma pensee a propos de debug.print pour afficher tous le tableaux entierement n'est pas possible? Cest vrai que comme tu fais si jai bien compris tu affiches tous les elements un à un.

  8. #8
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


    Sinon comme déjà évoqué voir la fenêtre Variables locales
    ou encore affecter une plage de cellules par le contenu de la variable tableau (cf tutoriel) …

  9. #9
    Membre expérimenté Avatar de EBRAG
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Avril 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 125
    Par défaut
    Bonjour,

    Voici ma proposition (en inscrivant bien les opérateurs)
    Nom : Capture.PNG
Affichages : 1151
Taille : 16,2 Ko

    et donc le code suivant
    voir nouvelle réponse plus bas !

Discussions similaires

  1. Boucle sur tous les mots contenus dans un fichier texte
    Par medmaysais dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 12/03/2016, 09h56
  2. Filtres dans les requêtes ou dans les rapports
    Par aureliend8800 dans le forum Webi
    Réponses: 3
    Dernier message: 14/06/2013, 21h12
  3. Placer les points contenus dans un tableau sur un graphe
    Par SandyF dans le forum Windows Forms
    Réponses: 4
    Dernier message: 11/09/2009, 17h40
  4. Réponses: 20
    Dernier message: 22/07/2008, 01h28
  5. [XHTML] Variables contenus dans les messages en XHTML
    Par Linoa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 19/09/2005, 12h45

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