Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > VBA Access

VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.

Réponse
 
Outils de la discussion
Vieux 02/09/2008, 14h27   #1 (permalink)
Nouveau membre du Club
 
Date d'inscription: mars 2008
Messages: 55
Par défaut Trouver une formule de calcul

Mon problème est un peu délicat.
Je souhaite effectuer des calculs dans le but d'optimiser des longueurs de tubes de chauffage par le sol.
En fait dans ma base, je calcul des surfaces qui me donnent par calcul des longueurs de tubes nécessaires par pièces.
Par exemple pour une pièce de 20 m2 il me faut 100 m de tube
Pour 25 m2 il me faut 125 m de tube.
J'ai un choix de couronnes de tube de 100,140 et 200 m.
Dans ce cas je sélectionne une 140.
Comment retranscrire cela par calcul pour qu'access sélectionne lui même les bonnes couronnes.
Désolé mon explication est un peu confuse, mais j'espère avoir été clair.
nellido est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/09/2008, 14h34   #2 (permalink)
Expert Confirmé Sénior
 
Avatar de jpcheck
 
Date d'inscription: juillet 2007
Localisation: RP
Âge: 24
Messages: 2 944
Envoyer un message via MSN à jpcheck
Par défaut

bonjour,
ton problème est d'abord une histoire d'algorithmique.
l'idée étant de choisir le plus petit des tubes disponibles, dont la longueur doit être supérieur à une valeur...

en SQL tu auras la requête exemple suivante :
Code :
SELECT MIN(LaLongueurDeTube) FROM MaTableDeTubes HAVING MIN(LaLongueurDeTube) >= 120;
as-tu saisi l'esprit de la démarche ?
__________________
Piou-Piou
Poussin Developpeur

Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/09/2008, 14h42   #3 (permalink)
Nouveau membre du Club
 
Date d'inscription: mars 2008
Messages: 55
Par défaut

ou lala pas vraiment.
Cela dis je débute. Par contre je dois vous dire aussi qu'il n'est pas possible de regrouper 2 chutes.
nellido est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/09/2008, 14h58   #4 (permalink)
Expert Confirmé Sénior
 
Avatar de jpcheck
 
Date d'inscription: juillet 2007
Localisation: RP
Âge: 24
Messages: 2 944
Envoyer un message via MSN à jpcheck
Par défaut

l'objectif est de trouver la plus petite longueur de tube mais suffisante pour couvrir les besoins de la pièce, ok ?
__________________
Piou-Piou
Poussin Developpeur

Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/09/2008, 16h08   #5 (permalink)
Nouveau membre du Club
 
Date d'inscription: mars 2008
Messages: 55
Par défaut

bien sur mais aussi ensuite de sélectionner des couronnes de tube en optimisant les chutes
nellido est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/09/2008, 16h25   #6 (permalink)
Expert Confirmé Sénior
 
Avatar de jpcheck
 
Date d'inscription: juillet 2007
Localisation: RP
Âge: 24
Messages: 2 944
Envoyer un message via MSN à jpcheck
Par défaut

et en explicitant "une chute" ca donne quoi stp
__________________
Piou-Piou
Poussin Developpeur

Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/09/2008, 16h33   #7 (permalink)
Membre Confirmé
 
Date d'inscription: juillet 2006
Localisation: Luxembourg
Messages: 217
Par défaut

Je suppose qu'il s'agit des restes de la decoupe.

Si j'ai bien compris ton probleme, en focntion d'un surface tu veux s'avoir combien de tubes tu as besoin et les tailles respectives?
le_niak est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/09/2008, 16h35   #8 (permalink)
Nouveau membre du Club
 
Date d'inscription: mars 2008
Messages: 55
Par défaut

En fait prenons une couronne de tube de 140 mètre on peut faire plusieurs pièce avec par exemple 2 circuits de 70 m ou bien 2 de 50 et 1 de 40.
Avec une couronne de 200 mètres on peut faire la même chose mais on aura plus de chutes .
nellido est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/09/2008, 16h44   #9 (permalink)
Expert Confirmé Sénior
 
Avatar de jpcheck
 
Date d'inscription: juillet 2007
Localisation: RP
Âge: 24
Messages: 2 944
Envoyer un message via MSN à jpcheck
Par défaut

et bien mon raisonnement restera le même, on minimise déjà la longueur de chute avec ma requête exemple.
exemple :
quelles sont les pièces de monnaie parmi (2€, 1€, 0.50€, 0.20€ et 0.10€) à prendre pour faire 4.52€ ?
réponse : 2€ + 2€ + 0.50€ + 0.10€

soit on le fait par une requete, soit par une boucle do while...
__________________
Piou-Piou
Poussin Developpeur

Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/09/2008, 16h48   #10 (permalink)
Nouveau membre du Club
 
Date d'inscription: mars 2008
Messages: 55
Par défaut

exactement tu ne peux pas mieux dire. Maintenant comment rédiger cela à partir d'un champ dans lequel j'ai calculé la quantité de tube nécessaire par pièce; mes couronnes de tubes sont donc de 100,140 et 200 m
nellido est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/09/2008, 17h01   #11 (permalink)
Expert Confirmé Sénior
 
Avatar de jpcheck
 
Date d'inscription: juillet 2007
Localisation: RP
Âge: 24
Messages: 2 944
Envoyer un message via MSN à jpcheck
Par défaut

exemple, pas forcément la solution optimale
Code :
Sub (dbinput as Double)
dim nb100 as double
dim nb140 as double
dim nb200 as double
dim dbbegin as double
dbbegin = dbinput
nb100 =0
nb140 =0
nb200 =0
do until dbbegin<200
dbbegin = dbbegin-200
nb200 = nb200 + 1
Loop
do until dbbegin<140
dbbegin = dbbegin-140
nb140 = nb140 + 1
Loop
do until dbbegin<100
dbbegin = dbbegin-100
nb100 = nb100 + 1
Loop
msgbox "il faudra " & nb200 & " tubes de 200 cm, " & nb140 & " tubes de 140 cm et " & nb100 & " tubes de 100cm"
End Sub

autre méthode, faire des boucles pour relever chacune des possibilités de combinaisons, et en relever par la suite la plus faible valeur > valeur nécessaire.
__________________
Piou-Piou
Poussin Developpeur

Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/09/2008, 17h04   #12 (permalink)
Nouveau membre du Club
 
Date d'inscription: mars 2008
Messages: 55
Par défaut

merci déjà pour ce code je teste tout ça demain, c'est très gentil de ta part
nellido est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/09/2008, 10h01   #13 (permalink)
Nouveau membre du Club
 
Date d'inscription: mars 2008
Messages: 55
Par défaut

Je viens de faire un test avec le code, mais ce n'est pas concluant. Je mis prend peut être mal. En fait je vais faire un tableau qui sera plus explicite

Pièce Surface Tube
a 20 100
b 25 125
c 10 50

Mes couronnes de tubes disponibles sont 100,140,200.
Le résultat que j'attends est 1 couronne de 140 (pour pièce a + b) et une de 100 (pièce b)
J'espère avoir été plus clair.
nellido est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/09/2008, 11h13   #14 (permalink)
Expert Confirmé Sénior
 
Avatar de jpcheck
 
Date d'inscription: juillet 2007
Localisation: RP
Âge: 24
Messages: 2 944
Envoyer un message via MSN à jpcheck
Par défaut

et la pièce c ??
est-ce un exercice ? si c'est le cas, aurais-tu au moins l'énoncé exact stp ?
__________________
Piou-Piou
Poussin Developpeur

Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/09/2008, 11h16   #15 (permalink)
Nouveau membre du Club
 
Date d'inscription: mars 2008
Messages: 55
Par défaut

Que je suis nouille, dans la pièce C il faut 1 couronne de 100m .
Ce n'est pas un exercice, je travaille depuis plusieurs mois sur une base et cet élément de calcul ma manque puisque je le fais à la main
nellido est déconnecté   Envoyer un message privé Réponse avec citation
NEWS ACCESSF.A.Q AccessF.A.Q VBATutorielsSourcesOutilsLivresAccess TVAccess 2007

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > VBA Access



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide