Méthode sur VBA pour la plus grande valeur

Bonjour,

Je tiens tout d'abord à remercier tout ceux qui me répondront et qui prendront le temps de me lire.

Je suis nouvelle sur ce forum,

j'ai quelques bases sur excel mais pas sur VBA.

J'ai un fichier excel qui est trop lourd, car aucune formule n'a été réalisée en macro sur VBA. Elles ont été faite sur chaque feuille de mon dossier

J'ai regardé un peu sur le forum et je n'ais pas trouvé la réponse à ma question.

Ci joint mon fichier , sur la colone C et D je rentre si c'est en mono ou en Tri, (il ne peut y avoir de matériel en mono et en tri à la fois), ensuite je rentre l'intensité nominale de mon matériel.

Ce que je veux c'est un total de l'intensité.

Or une intensité ce calcul de la manière suivante : le total de l'intensité en tri ainsi que le total de l'intensité en mono / 3 (car 3 phases).

Si je fais ca de manière brute on obtient le résultat en rouge, celui si peut etre tres different de ma valeur en jaune. C'est pourquoi un de mes collègues à l'époque a mis au point ces formules en utilisant la plus grande valeur de chaque colonne. Et cette formule s'arrete quand il nous reste plus que 3 lignes.

Avez vous une formule en macro pour faire ce calcul sans prendre 20 colonnes... Mes colonnes C et D peuvent faire jusqu'à 50 lignes et mon fichier peut faire jusqu'a 100 feuilles. Ainsi vous comprennez pourquoi je veux diminuer la taille de ce fichier.

Merci encore,

Cordialement,

Pauline

28classeur1.zip (12.65 Ko)

Bonjour,

Pas très clair tout ça, que représente le calcul en jaune.

Vous écrivez

Or une intensité ce calcul de la manière suivante : le total de l'intensité en tri ainsi que le total de l'intensité en mono / 3 (car 3 phases

).

Donc 1400,76/3 + 168.98 = 635.90

Pourquoi ce nombre ne convient-il pas?

A quoi servent toutes ces colonnes ?

Bonjour,

Le calcul en jaune représente la valeur de l'intensité total.

Si vous voulez, l'intensité total est la somme de l'intensité en triphasé ainsi que la somme de l'intensité en monophasé réparti sur les trois phases.

Mes colonnes sur le cotés permettent de faire la répartition sur les 3 phases. Ainsi je répartie de la manière suivante :

  • J'affiche les deux plus grandes valeurs des intensités monophasées
  • J'aditionne la troisième valeur avec la quatrième.
  • Ensuite je reprend toutes ses valeurs dans l'ordre
  • Et je refais la manipulation précédente en aditionnant à chaque fois la 3em et 4em valeur.

Sur les dernièrres colonnes on remarque que plus aucun calcul ne se fait, c'est à dire qu'il n'y a plus de 4em valeur et donc la répartition est terminée.

Je fais donc une répartition de l'intensité monophasé sur les 3 phases en étant le plus juste possible. Je trouve donc ma valeur en jaune . C'est cette valeur que je voudrais obtenir via une formule en VBA.

En espérant avoir été plus claire,

Cordialement,

Re,

J'avais déjà compris l'objectif

Mais quand vous dites

-J'affiche les deux plus grandes valeurs des intensités monophasées

  • J'aditionne la troisième valeur avec la quatrième.
  • Ensuite je reprend toutes ses valeurs dans l'ordre
  • Et je refais la manipulation précédente en aditionnant à chaque fois la 3em et 4em valeur.
Sur quel critère, quelle loi d'électricité, quelle règle.....? se base cette manière de faire.

Re,

Il est difficile d'expliquer pour quelqu'un d'extérieur à la situation,

Je vais essayer de répondre clairement à votre question,

La règle est que, sur une réseau nous avons trois phases L1,L2 et L3 ainsi qu'un neutre.

L'intensité triphasé correspond à un câble qui se branche sur L1,L2 et L3

L'intensité monophasé correspond à un câble qui se branche sur L1 et N ou L2 et N ou L3 et N.

Ainsi, pour l'intensité monophasé total, on peut avoir 3 possibilités de branchements.

Ainsi, sur L1 et N je vais brancher ma valeur de 335A , sur L2 et N ma valeur de 243.5A et sur L3 et N ma valeur de 209A.

Ensuite,j'additione ma 4em valeure avec la plus faible de celle au dessus soit 209+160A ce qui me donne 369A.

Cette valeur va se retrouver etre la plus grande, et donc je reprends mon calcul et ainsi de suite pour équilibrer l'intensité sur chacune des phases.

Ce n'est pas une règle d'électricité c'est tout simplement un calcul mathématique pour équilibrer les phases au plus juste.

La manière grossière de le faire est de diviser le total par 3. Or on peut le voir aisément (en rouge), le résultat n'est pas le même car ce n'est pas une répartition mais une moyenne. C'est pourquoi, mon collègue avait utilisé ses formules.

Il faut se dire, qu'une intensité correspond à un matériel.

Chaque matériel a sa propre intensité. On ne peut donc pas faire une moyenne.

Je veux obtenir la valeur de l'intensité maximal , tout en équilibrant sur chacune des phases.

En gros, serait il possible de faire une formule sous VBA qui remplacerait mes colonnes G à AK?

Merci pour votre aide,

Re,

Il est bien évident que cela demande réflexion et surtout mise en place d'une marche à suivre pour programmer une procédure VBA qui ferait cette série de calcul.

Normalement les sommes de courants alternatifs se font vectoriellement en tenant compte des facteurs de puissance de chacuns des appareils. à moins qu'il ne s'agisse que de résistifs dont le cos phi est = à 1.

Enfin ici il semble que dès qu'on a plus que trois cellules > 0 on peut arrêter les calculs. Je ne saisi pas très bien la somme (mais j'en accepte la nécessité) des 3ème et 4ème valeurs des colonnes, intermédiaires, qui se trouve entre les recherches des grandes valeurs.

Je vais voir si je trouve la lumière.

Bonjour,

Voilà le résultat de mes réflexions. A vous de juger, tester, modifier et adapter éventuellement à votre tableau.

La feuille de travail est nommée Appareils dans le fichier joint.

Bonjour,

Merci pour votre programme.

Cependant cela ne fonctionne pas, je vais regarder ces prochaines jours pourquoi.

Si vous testez mon tableau avec les valeurs suivantes :

7.69

14.92

29.84

39.63

50.70

61.78

72.85

83.92

95.00

106.07

117.14

128.22

139.29

150.36

161.44

172.51

183.59

Je trouve 758A sur votre tableau tandis que sur le mien je trouve 860A et le total mono est de 381.3 et non 278.58.

Je vous remercie de m'apporter votre aide.

Re,

Les données que vous me donnez à tester ne précisent pas les tris et le monos.

Re,

Escusez moi,

Je n'ais pas changer les conlonnes A et B uniquement la colonne C.

Cdlt

Bonjour,

J'ai regardé plus amplement aujourd'hui, j'ai trouvé plusieurs problèmes.

La première c'est que ton programme s'arrete trop tot, pour palier à ce problème j'ai remplacé ton texte par :

Else

If Imono(5) = 0 Then GoTo fin '

Cells(k, col1 + 1 + j) = Imono(2) + Imono(5)

End If

Mais il y a un deuxime problème qui persisste et je ne sais pas le résoudre, c'est de prendre la plus grande valeur et non imo,no(2) et imono (5) car si vous faites le test vous voyez que sur la colonne L qui fait l'addition de 351+39 (L7+L8) or le plsu petit chiffre est sur L6.

Je n'ais pas encore réussi à résoudre ce problème.

Mais je te remercie énormément pour ton programme qui m'a beaucoup aidé.

Re,

Voilà la version 2 qui je l'espère vous satisfera mieux que la 1. J'ai trouvé ce qui clochait.

Tester et voyez si c'est bon. Tenez moi au courant.

Bonjour,

Parfait !!!!!!

Je suis impressionnée par vos temps de réaction ainsi que par votre gentillesse!

Merci à vous!

Cordialement,

Bon malheuresement il y a encore un bug .

J'ai essayé de le résoudre mais je n'y arrive pas.

Peux tu encore me venir en aide.

SI tu mets uniquement 3 valeurs en mono disons 40/1000/100 il te prendra toujours la première valeur comme étant la plus élevé (ici 40) car il n'y pas de quatrieme valeur.

Comment peut on résoudre ce problème.

Merci,

Bonjour,

Bien sur ce cas n'avait pas été envisagé.

Voilà la solution. On vérifie quand i=4 si Imono(i)=0 et en plus on vérifie

si j=0 car si c'est le cas on met j =j+1 pour aller chercher la plus grande

valeur de la colonne.

Au lieu de If i=4 and Imono(i) = 0 then goto fin on met

 If i = 4 And Imono(i) = 0 Then
        If j = 0 Then j = j + 1
        GoTo fin
 End If

Bonjour

A tester

Bonjour,

Merci pour ta réponse, et merci à toi Banzai.

Bonne journée

Rechercher des sujets similaires à "methode vba grande valeur"