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 :

Excel VBA débutant [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2021
    Messages : 50
    Par défaut Excel VBA débutant
    Bonjour à tous, je suis un étudiant en stage en tant que développeur, où je dois développer un code en C#. Mais avant cela je dois effectuer une étape qui consiste à créer une macro Excel qui va permettre d'effectuer un prétraitement de données sorties dans un fichier Excel d'une machine de laboratoire. Je vous demande de l'aide car je suis débutant en VBA, je ne sais pas comment m'y prendre pour résoudre le problème.

    Voici une capture d'écran d'un exemple de fichier qui peut être en sortie de la machine :Nom : Capture.PNG
Affichages : 366
Taille : 29,9 Ko

    En fait je dois créer une macro qui soit générique pour l'ensemble des fichiers qui seront à la sortie de la machine du labo. Tous les fichiers sorties sont du même type, comme celui en pièce jointe mais la taille du tableau peut varier selon le nombre d'échantillons passées ainsi que le nombre d'élément chimique trouvé.

    La macro que je dois créer doit permettre à l'utilisateur de sélectionner des valeurs de certaines lignes et fonction des lignes sélectionnées, faire la moyenne. cependant la moyenne ne doit pas être une moyenne de toutes les cellules sélectionnées, cela doit être la moyenne des valeurs des lignes qui comporte le même numéro d'échantillon (exemple de numéro dans la photo ci-dessous).
    Nom : Capture2.PNG
Affichages : 363
Taille : 7,1 Ko

    Est -il possible de faire cela dans une macro Excel ?

    J'ai essayé de commencé avec une fonction double click qui va permettre de sélectionné les lignes mais je n'arrive pas à la mettre en place.
    Je vous joint à ce message un exemple de fichier Excel.

    Merci de votre compréhension.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Par défaut Moyenne
    Calculer la moyenne sur quelle(s) variables(s) ? toutes les colonnes contenant des chiffres ?
    Quelques pistes:
    Nom : SummaryData.png
Affichages : 373
Taille : 159,0 Ko

  3. #3
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2021
    Messages : 50
    Par défaut Macro excel moyenne à partie de sélection de lignes
    Bonjour Zekraoui_Jakani,

    Tout d'abord merci pour votre réponse qui va m'être d'une grande utilité. Je vous envoie ce message pour répondre sur les questions que vous pouvez vous poser. En fait l'utilisateur de la macro doit pouvoir sélectionner les lignes qu'il souhaite, et une fois ces lignes sélectionnées, il faut faire la moyenne des cellules contenant des chiffres de ces lignes sélectionnées.

    De plus, concernant le numéro d'échantillon, au premier abord, C-210104-S-117 1 et C-210104-S-117 2 ont l'air différents, mais en réalité cela représente le même échantillon reproduit 2 fois pour éviter toutes erreurs dans les résultats d'où le 1 et le 2. C'est pour cette raison qu'il faut faut faire la moyenne des deux afin de créer un unique échantillon C-210104-S-117 par exemple.

    En revanche, C-210104-S-117 1 C-210104-S-118 1 n'ont rien à avoir, c'est pour cette raison il faut faire une moyenne pour l'échantillon C-210104-S-117 et une moyenne pour C-210104-S-118. Et pour faire cela je suis parti dans l'optique de faire sélectionner des lignes à l'utilisateur pour calculer les moyennes correspondantes à l'échantillon.

    Est ce possible de faire cela ?

    Et pour finir, je n'arrive pas à bien saisir ce que vous dites par : "Grouper les données par n° d'échantillon ; Menu\Data\Group ... et choisir le moyenne de la colonne souhaitée " comment pouvons- nous faire cela ?

    Merci de votre compréhension, en attente de votre réponse qui m'aidera.

  4. #4
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 568
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 568
    Par défaut
    Bonjour

    Même si tu cibles VBA, je pense que la solution est plutôt à 95% PowerQuery (intégré à Excel depuis la version 2016) et 5% VBA

    Mais ce qui manque dans l'explication, quelle que soit la solution
    • l'utilisateur a-t-il besoin d'ouvrir les fichiers ou bien peut-on faire la moyenne
      • d'un numéro d'échantillon saisi sur un excel vierge ?
      • de tous les échantillons de tous les fichiers
        Dans ce cas les titres des colonnes sont-ils on non les mêmes ?
    • la moyenne se fait par colonne des n lignes d'un échantillon ou bien une seule moyenne sur les n colonnes et n lignes d'un échantillon ?
    • les colonne contiennent des résultats sous forme textuels (- 10 u par exemple) donc non pris en compte dans une moyenne : est-ce bien le cas ?
    • la distinction entre la racine et l'indice est-elle toujours espace suivi de l'indice ?

  5. #5
    Membre Expert Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Par défaut Moyennes
    "Grouper les données par n° d'échantillon ; Menu\Data\Group ... et choisir le moyenne de la colonne souhaitée "
    çàd: Dans le ruban, vous avez "Data ou Données", et "Group" à droite; en cliquant dessus, vous avez la possibilité de grouper les données ayant le même n°.
    Ceci devient désuet étant donné la solution proposée ci-dessous:

    "l'utilisateur de la macro doit pouvoir sélectionner les lignes qu'il souhaite, et une fois ces lignes sélectionnées, il faut faire la moyenne des cellules contenant des chiffres de ces lignes sélectionnées"
    Au lieu de sélectionner les lignes, une soultion simple consiste à ajouter une colonne à droite ou à gauche de votre tableau, et de damander à l'utilisateur de taper un nombre différent pour chaque groupe de lignes choisies.
    De ce fait, les formules écrites à partir de la ligne 18 donneront le résultat attendu.
    Dans cet exmple, on tapera 1 pour les 2 lignes de "C-210104-S-117 1" et 2 pour les 2 lignes de "C-210104-S-117 2", pour pouvoir les distinguer.
    Le résultat est automatique (voir annexe)
    Fichiers attachés Fichiers attachés

  6. #6
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2021
    Messages : 50
    Par défaut
    Bonjour 78chris

    Petite question avant de répondre à vos questions : Est-ce-que on peut faire quand même fonctionner PowerQuery même si la version Excel est antérieur à 2016 ?

    Pour vous répondre ;
    l'utilisateur a-t-il besoin d'ouvrir les fichiers ou bien peut-on faire la moyenne
    d'un numéro d'échantillon saisi sur un excel vierge ?
    de tous les échantillons de tous les fichiers
    Dans ce cas les titres des colonnes sont-ils on non les mêmes ?

    L'utilisateur qui est en réalité un chimiste va préparer ses solutions et les mettre dans la machine pour qu'elle traite les solutions, un échantillon donné est mise en solution au moins 2 fois pour éviter les erreurs comme dit précédemment. Cette machine est reliée à un logiciel qui va effectué certains traitements élémentaires. Les résultats issus de ces traitements élémentaires sont mis sous forme de tableau dans Excel comme dans la pièce jointe.

    Cependant il va rester encore un traitement à faire, la moyenne de l'échantillon mis en solution au moins 2 fois pour donner en gros un résultat par échantillon. Cela doit être fait par l'utilisateur car le logiciel de la machine ne fait pas ce calcul. Entre tous les fichiers sortis du logiciel de la machine, le format de la feuille restera le même, mais tout ce qui s'y trouve à l'intérieur, peut être modifié en l'occurrence les titres des colonnes, le contenu des cellules et même la taille du "tableau" peut être plus ou moins grande.

    Il faut faire la moyenne du ou des échantillons qui se trouve dans le fichier et non pas tous les échantillons de tous les fichiers.

    la moyenne se fait par colonne des n lignes d'un échantillon ou bien une seule moyenne sur les n colonnes et n lignes d'un échantillon ?
    Je vais vous répondre à cette question par un exemple qui se trouve dans la pièce jointe que j'ai envoyé : Comme vous pouvez le voir nous avons les lignes C-210104-S-117 1
    et C-210104-S-117 2 avec différentes valeurs pour chaque colonne, il faut faire la moyenne de ces lignes pour chaque colonne par exemple.

    les colonne contiennent des résultats sous forme textuels (- 10 u par exemple) donc non pris en compte dans une moyenne : est-ce bien le cas ?
    Oui c'est bien le cas

    la distinction entre la racine et l'indice est-elle toujours espace suivi de l'indice ?

    Qu'appelez vous par racine et indice ?

    J'espère avoir répondu à l'ensemble de vos questions, dites-moi si vous avez encore des questions pour que je puisse vous expliquer d'une autre manière afin que vous puissiez comprendre.
    Merci

    Petite Question pour Zekraoui_Jakani : Voila j'ai pris le Excel que vous avez mis en pièce jointe, bon je vous avoue que je ne comprends pas trop comment vous avez procédé pour arriver à ce résultat et comment le reproduire à ma manière pour faire comprendre ce que vous avez fait au utilisateur mais cela fonctionne. la question est que ça fonctionne pour cet exemple de fichier mais est ce que cela va fonctionner pour tout type de fichier de ce genre par exemple si on se retrouve avec un tableau avec plus de colonnes et de lignes et faire plus de moyenne est ce que cela va fonctionner ? Car mon but premier du stage est d'optimiser le temps des chimistes car ces derniers perdent plus de temps dans le traitement de ces données que sur la manip en elle même.

    J'espère avoir éclairci vos doutes.
    Merci de votre compréhension

  7. #7
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 568
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 568
    Par défaut
    RE

    C-210104-S-117 1 : racine rouge, indice bleu séparé par un espace

    Ma question était l’utilisateur peut-il taper C-210104-S-117 sur un classeur Excel vide par exemple sans ouvrir le fichier ou doit-il impérativement le faire à partir du fichier ?

    Quand j'évoquais la possibilité de traiter tous les échantillons d'un ensemble de fichiers, cela permettrait d'y puiser les données d'un échantillon voulu puis d'un autre sans relancer la processus de calculs des moyennes. C'est lié à la temporalité du processus : si l’utilisateur s'occupe d'un échantillon une ou 2 fois par jour, cela n'a pas d'intérêt mais s'il enchaîne n échantillons, la question se pose.

    PowerQuery est en add on sur 2010 et 2013 donc nécessite une installation pour ces versions
    Pas dispo pour les versions antédiluviennes ni sur Mac

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/06/2006, 15h11
  2. [VBA][Débutante] Fonction Excel avec Boucle
    Par Inelukia dans le forum Macros et VBA Excel
    Réponses: 32
    Dernier message: 11/01/2006, 19h31
  3. EXcel VBA analyse de sharpe
    Par vanima dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/02/2005, 13h07
  4. [Excel - VBA] Problème de suppression de lignes...
    Par beholder2 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/01/2005, 17h27
  5. Réponses: 6
    Dernier message: 11/10/2004, 15h43

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