Bonjour à tous,
j'ai de nouveau besoin de votre aide, cette fois-ci pour la céation d'une macro. Je ne suis pas une pro de la programmation et je ne connais que très peu le langage VBA (je commence tout juste à m'y mettre); du coup je suis en grande galère !
Je vais donc vous expliquer ce que je souhaiterais faire et peut-être pourrez-vous m'aider à construire une macro, si vous le voulez bien.
Je cherche en fait à calculer une moyenne de certaines valeurs d'une colonne "Valeurs" en fonction du contenu texte d'une autre colonne "Intitulés". Je vous ai mis un exemple ci-dessous afin que cela soit un peu plus clair.
La macro doit ainsi me permettre de compléter automatiquement la colonne "Moyenne" ainsi que la colonne "Différence" que je vais de suite vous expliquer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Intitulés Valeurs Moyenne Différence arrosage 1 23 49.67 0 arrosage 1 100 49.67 50.33 arrosage 1 26 49.67 0 arrosage 2 14 15.25 0 arrosage 2 12 15.25 0 arrosage 2 16 15.25 0 arrosage 2 19 15.25 0 fontaine 52 54 0 fontaine 56 54 0 WC 12 11 0 WC 11 11 0 WC 10 11 0
Pour remplir la colonne "Différence", je teste si, pour un intitulé donné, les plus grandes valeur de la 2e colonne sont supérieures à 2 fois la moyenne calculée. Par exemple pour l'arrosage 1, "100" est plus de 2 fois supérieur à 49.67. Il faudrait ensuite que la macro teste la 2e plus grande valeur, jusqu'à ce que la plus grande valeur de ne soit plus 2 fois plus grande que la moyenne. Dans mon exemple, pour l'arrosage 1, il n'y a que 100 (la 2e plus grande valeur, 26, n'est pas 2 fois plus grande que la moyenne).
Et donc dans "Différence" la macro rentrerait la différence entre la plus grande valeur et la moyenne (100-49.67=50.33). Si la plus grande valeur n'est pas 2 fois supérieur à la moyenne, on rentre "0".
Pour que vous imaginiez ma galère, je vais vous montrer à quoi peut ressembler mon embryon de code, si on peut appeler ça un code
Je sais qu'il y a des erreurs d'écriture mais c'est tt ce que j'ai réussi à pondre ! Après je ne sais pas comment rajouter la partie calculant "Différence".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 For ligne = 2 to ligne = dernière_cellule While cells(ligne + 1, "A") = cells(ligne, "A") Then Cells (ligne, "C") = Moyenne ((cells(ligne, "B"):cells(ligne+1, "B")) ligne = ligne + 1 Wend
Voilà donc mon challenge, votre challenge en fait maintenant
J'espère que vous avez compris la chose, autrement n'hésitez pas à me demander des éclaircissements !
Un grand merci pour votre attention
Partager