Simple problème arithmétique………..?????

Y

Yves

Guest
Bonsoir à vous

Pour une recherche précise dans un abaque (Tableau), ou autres calculs
je traduis ainsi la saisie des valeurs dans "A2" et "B2"

1) Pour que A2 soit au palier supérieur "Base 100".

=(ARRONDI.SUP(A2/100;0))*100

2) Pour que B2 soit arrondi de ma même façon, mais avec des paliers de 50 + 100x

=SI((((ARRONDI(B2/100;0))*100)+50)-B2<100;(((ARRONDI(B2/100;0))*100)+50);B2)

(En demandant cependant ici, par comparaison, de conserver sa valeur si celle-ci est égale à
un palier logique: 550, 650,750….et c. et de ne rien lui ajouter.)

Je passe donc par des feuilles "TRADUCTION" de ces nombres pour les récupérer
et les utiliser en conditions ou autres dans mon projet….

Ces dernières feuilles qu'il m'est encore indispensable d'ajouter à mes classeurs de données pour pouvoir en extirper les résultats d'abysses et coordonnées sont lourdes à créer temporairement et à les supprimer. (En plus que je ne bidouille pas trop bien!)

Si quelqu'un pouvait me dire comment faire faire à VBA cette transition,
ou me dire où trouver comment faire de simples calculs avec lui, sans passer par une
page "Excel" ; je lui serais reconnaissant tout au long de mes heures à chercher.

J'ai bien peur que la prise de tête de ce qui précède ne me vaille que silence!

Mais avec mon grand age, j'ai besoin d'aller vite…

Ciao et plein de bonne choses, surtout à ceux ou celles qui voudrons bien me dire…. Heu finalement même aux autres...!

Yves
 
Y

Yves

Guest
Bonjour André

Je vais déjà ainsi pouvoir simplifier une partie.

Je vais faire des tests, et peut-être un jour arriverais-je
à faire ces calculs avec VBA.

Merci à toi.

Bonne journée (Ou ce qu'il est reste)

Yves
 
A

andré

Guest
Salut Yves,

Je reviens à ton post : à ton avis, lequel de nous deux est le plus âgé ?
Dis-toi bien que tant qu'on est passionné (par XL evidemment, les filles on oublie !), on a toujours 20 ans (*n).

Ândré.
 
Y

Yves

Guest
Bonsoir André

C'est pas un clavier que tu as, c'est une boule de Cristal !!!

Coté santé tout VBA bien (Amusant, je reviens à l'instant de chez mon toubib)

Coté femme: largué ou ayant largué, à chaque fois je suis vachement content de retrouver du "temps" pour revenir sur mon apprentissage.

Merci pour ton bouton n° 2, J'ai pigé la boucle.

Mais tu as un truc qui coince:
5 Ensembles de 1789 x cells(i,4)
Le "i" semble perdre de sa valeur !

De chercher pourquoi me plait bien, et m'aidera certainement à mieux comprendre

Cependant, l'idée de cibler une boucle sur une plage précise,
comme dans ton exemple m'intéresse énormément beaucoup.

Bonne soirée et à plus.

Et de toute façon entre nous ce ne sera jamais que le temps qui pourra être pluvieux.

Parole de breton.

Yves
 
B

Bernard

Guest
Bonsoir Yves

C'est pas bien de faire plusieurs fils sur le forum !!! voir la charte, tu sais en bas à droite hi hi !

J'ai étudié tes divers souhaits et je pense avoir répondu à tes différentes questions en VBA selon ton fichier "VARIABLES"

Si tu as des problèmes soit pour mauvaise interprètation de ma part ou des explications n'hésites pas.

Cordialement

Bernard
 

Pièces jointes

  • VARIABLES.zip
    16.3 KB · Affichages: 25
  • VARIABLES.zip
    16.3 KB · Affichages: 24
  • VARIABLES.zip
    16.3 KB · Affichages: 24
Y

Yves

Guest
Bonsoir Bernard

Je n'ai pas encore ouvert ton "Zip".

Mais je tiens à te dire que, comme je l'ai dit sur un autre "Fil"
(Il faut que je me fasse à la terminologie du site)

Je suis comme un môme avec le nez écrasé sur la vitrine.

Donc un peu trop empressé....

Tu as raison dans deux sens: le respect de la charte,
et le bon conseil pour que les réponses à mes questions soient
gérables.

Je viens d'en avoir la preuve!!!

Donc: Merci deux fois à toi.

Je vais bosser sur ce que tu viens de m'envoyer.

C'est gentil de ta part d'avoir pris la peine de rme épondre.

Bonne soirée.

Yves
 
B

Bernard

Guest
Rebonsoir Yves

J'ai ouvert le zip du forum sur mon ordinateur et il s'ouvre très bien !

Attention, je suis en suite office pro et windows XP.
Je renvoie à nouveau le fichier au cas où !

Cordialement

Bernard
 
Y

Yves

Guest
Aussi re-bonsoir Bernard,

j'ai la même config:
VBA 6... et.c

Cette fois c'est bon, j'ai pu téléchargé...

Je n'ai pas tout analysé (Je tombe de sommeil!)

Mais !!! Vingt Dieux que "Mais!"

Tu es un Chef ..!

Juste ce que j'espérais.

Je vais l'éditer, le copier partout partout...
(Et même l'aprendre par coeur)

Super le Forum et les mecs sympas comme toi.

ô combien j'aimerais dire "A charge de revanche"

Plein de bonnes de choses à toi.

Yves
 
Y

Yves

Guest
Tu vois Bernard,

Je n'ai pas pu m'empêcher de fouiner. (Les yeux en vrac)
J'ai même mis des "0" hors tableau engendrant un msgbox
"DIMENSIONS TROP GRANDES"

Mais
Je ne pige pas pourquoi avec certains chiffres j'ai un bug sur:

'Calcul de valeur de variables
H = Application.WorksheetFunction _
.Match(HC, Hauteur, 0)

J'ai testé pour savoir d'où pouvait venir le problème, mais je n'ai pas trouvé une logique issue des chiffres que je rentrais (Même dans le cadre de l'abaque)

Désolé d'abuser de ta gentillesse.

Bonne nuit et bonne journée pour demain.

Merci encore, la base d'étude reste superbe pour moi.

Yves
 
B

Bernard

Guest
Rebonsoir Yves

J'ai eu également à déplorer quelques bugs, ceux-ci certainement provoqués par des variables imparfaitement déclarées.

J'ai également ajouté quelques modifs de sécurité pour éviter les valeurs hors limites.

Je te renvoie à nouveau le fichier !

Cordialement

Bernard
 

Pièces jointes

  • VARIABLES.zip
    17.2 KB · Affichages: 20
  • VARIABLES.zip
    17.2 KB · Affichages: 21
  • VARIABLES.zip
    17.2 KB · Affichages: 23
Y

Yves

Guest
Bonsoir Bernard,

Tu vas rire….

Ca fait encore "Ploufff!"

Cela ne vient sans doute pas de tes variables, soit disant mal définies, mais d'ici:

[B2] = MyValue
If (Application.WorksheetFunction.RoundUp([B2] / 100, 0) * 100) + (50 - [B2]) < 100 Then
[B3] = (Application.WorksheetFunction.RoundUp([B2] / 100, 0) * 100) + 50
Else
[B3] = [B2]
End If

J'ai constaté que tous les nombres en hauteur au-dessus de xx50 fonctionnaient bien;
mais que ceux en dessous coinçaient..

Je dois avouer que dans mon premier jet en calcul ordinaire "sans" VBA,
c'est sur ce palier que j'ai patiné un peu.

Sauf, qu'ici je suis devant une formulation "Function" machin que je ne maîtrise pas trop encore. (Tu viens de me l'apprendre!!!), je vais chercher cependant à comprendre.

Ne te prends pas la tête, à moins que cela te plaise.

Tu m'as déjà apporté beaucoup d'enseignements MAX utiles
qui m'ont, outre aidé dans mon projet, donné envie d'en apprendre plus.

Je pense l'avoir déjà dit par ailleurs, mais je le répète ici, tant cela colle bien à ce Forum:
"Donne un poisson à un homme, il se nourrira toute la journée.
Apprends-lui à pêcher, il se nourrira toute sa vie."

Merci Bernard pour ta canne à pêche,…. (Je n'ai pas osé dire "Chalut")

Bonne soirée et bien +

Yves
 
Y

Yves

Guest
Bonsoir Bernard,

J'ignore si mon message pourra te parvenir.
Et compte tenu de l'ancienneté du fil,
que tu puisses le lire; alors! Je tente cependant.

Dans ma formule arithmétique, j'arrondissais la division pas 100
de (Par exp. 1326) qui me donnait "13", et je la re-multipliais ensuite par 100 pour obtenir un résultat auquel j'ajoutais 50 pour qu'il corresponde au palier exact de ma feuille "TARIF"

Je comparais l'opération pour que dans le cas où il soit saisi: 1350, 650, 1550,,, et c. il ne soit pas inutilement ajouté "50".

J'ai donc remplacé dans ta maco le "Round up" par un simple "Round" puisque le boulot était déjà fait en amont!

Et cela marche à merveille maintenant.

Merci encore,

D'autant que par tes "Ajouts sympas" tu as fait le tour de ce dont il
m'était nécessaire pour poursuivre mon projet.

J'ai beaucoup de boulot encore derrière.

Je sais que du coté "Edition du résultat" je vais certainement me heurter
à mon incompétence.

Les "Pros" du Forum vont cependant avoir la paix pendant qq temps!

Reconnaissant et admiratif,
Et que cela puisse servir aux forumeurs qui sont dans la même démarche que moi, s'ils lisent cette suite.

Bonne fin de semaine à toi. (W.E. en Bill language)

Amicalement

Yves
 

Discussions similaires

Réponses
4
Affichages
439
Réponses
2
Affichages
172

Statistiques des forums

Discussions
312 445
Messages
2 088 488
Membres
103 869
dernier inscrit
benji_270