Calcul d'escalier industriel - aide pour du vba (novice inside)

Garamayama

XLDnaute Nouveau
Bonjour à tous!
Donc voilà j'explique ma situation: apprenti en licence industrielle, on m'a confié un projet il y a maintenant une quinzaine de jours dont l'objet est le dimensionnement d'escaliers industriel (rien de complexe, escalier droit standard en métal). La finalité du projet est de pré dimensionner mon escalier sous Excel en fonction de paramètres de résistance et de dimensions générales. J'ai les bases concernant l'utilisation du tableur, formules simples etc. mais je n'ai aucune connaissances en vba (je ne savais même pas que cela existait..). Cela fait donc une semaine que j'essaye de mettre en place une macro pour calculer mon bazar (que j'ai limité aux formules principales de RDM et à quelques dimensions pour simplifier) et cela fonctionne moyennement; je pense pouvoir m'en sortir mais comme j'ai encore beaucoup de travail derrière (au final le but est de récupérer ces données automatiquement dans un modeleur 3D -Solidworks- pour créer une maquette aux dimensions calculées et sortir des plans de fabrication dans la foulée).
Donc voilà je suis sur que tout un tas de méthodes existent qui pourraient rendre ma macro beaucoup plus légère et fonctionnelle mais malheureusement même si j'en découvre tous les jours j'ai peur de ne pas avoir assez appris sur le vba pour sortir quelque chose de correct pour ma date butoir (semaine prochaine). Si quelqu'un à 5 minutes a perdre et veut bien y jeter un œil pour me donner un avis ce serait vraiment sympa !

Cordialement
 

Pièces jointes

  • Calcul escalier.xlsm
    53.5 KB · Affichages: 764
  • Calcul escalier.xlsm
    53.5 KB · Affichages: 841
  • Calcul escalier.xlsm
    53.5 KB · Affichages: 839
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Une bouteille à la mer - aide pour du vba (novice inside)

Bonjour.
Oui, je sens qu'on pourrait faire beaucoup mieux, et même avec un graphique représentant un aperçu de l'escalier.
Mais il faudrait plus ou moins repartir à zéro. Et m'expliquer le sens des mots girond, profilé etc. et de quoi on part exactement.
Mais compte tenu de votre délai court, gardez sous le coude et en tant que 1ère version exploitable ce que vous avez fait.
Notez que si j'arrive à bien modéliser de quoi on part et ce qu'il faut calculer ainsi que les règles définie par l’algorithme représenté, une tout autre réalisation pourrait voir le jour assez vite...
P.S. Je viens seulement de voir la feuille Interface, après avoir rédigé ma réponse. Mais je me pose à peu près toujours autant de questions quant au sens des données et des résultats (2H+G final par exemple).

Remarque: "Une bouteille à la mer" n'a pas grand rapport avec les calculs d'escaliers ! Si quelqu'un d'autre cherchera dans ce domaine, il aura peu de chance de tomber sur cette discussion et c'est dommage. Pourriez vous changer le titre S.V.P.

Cordialement.
 
Dernière édition:

Garamayama

XLDnaute Nouveau
Merci beaucoup pour la réponse; c'est assez simple en fait pour le girond c'est la profondeur de la marche "utile" (sans recouvrement) un petit dessin vaut mieux qu'un long discours: giron.png

Le recouvrement est la côte de chevauchement de la arche supérieure sur celle du dessous. Ce que j'ai appelé profil est en fait la marche elle même, vu que c'est un escalier industriel elle est fabriquée à partir d'une tôle pliée en U:

U.png

Concernant les autres infos de la feuille interface:
-marche palière: si la dernière marche de l'escalier est au niveau de l'arrivée ou si le niveau d'arrivée constitue la dernière marche (modifie le nombre de marche et du coup la longueur et hauteur)
-2H+G: c'est la loi de Blondel, une aide de conception qui dit que 2 fois la hauteur + une fois le girond doit être une valeur comprise entre 580 et 640
après ce sont des infos de rdm comme la flèche => déformation maxi du profilé (marche) en son centre sous une charge donnée

C'est pour imager le raisonnement a avoir que j'ai mis le diagramme avec oui/non sur la feuille de calcul (je ne l'ai fait que pour le dimensionnement de l'ensemble pas pour la rdm mais c'est le même principe)

en premier je calcule deux nombres de marches:
-en fonction de la hauteur a franchir avec une hauteur type (Hauteur a franchir/180)
-en fonction de la longueur avec un girond type (longueur dispo/250)

ensuite je fait une moyenne des deux nombres de marches et je vérifie avec la valeur obtenue que la hauteur est comprise entre 160 et 210:
si ok je passe à la suite
si trop petite je refais le calcul avec un nombre de marches -1
si trop grand je refais le calcul avec un nombre de marches +1

Je vérifie ensuite le critère 580<=2H+G<=640
si la valeur est ok alors je passe a la suite
si la valeur est trop petite je recalcule G avec G=580-2H
si la valeur est trop grande je recalcule G avec G=640-2H

Voila a peu près la façon dont je vois la chose; et encore merci je ne pensais pas avoir une réponse si rapide !
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Calcul d'escalier industriel - aide pour du vba (novice inside)

Ma première impression est que vous auriez une bien meilleure souplesse, clarté et vision du calcul et un code beaucoup plus concis sans travailler avec une feuille.
Vous pouvez déclarer par instruction Dim des variables de travail au nom parlant, dans certains desquelles vous chargerez les données de la feuille interface, d'autre vous serviront de variable de travail, d'autre enfin seront à renvoyer dans le pavé Résultat.
Vous pouvez donner des noms aux plages pour mieux vous y retrouver.
Ces 2 fonction pourront peut vous être utile aussi :
VB:
Function Max(ByVal Vr As Variant, ParamArray Vs() As Variant) As Variant
Dim N As Long: For N = 0 To UBound(Vs): If Vs(N) > Vr Then Vr = Vs(N)
   Next N: Max = Vr: End Function
Function Min(ByVal Vr As Variant, ParamArray Vs() As Variant) As Variant
Dim N As Long: For N = 0 To UBound(Vs): If Vs(N) < Vr Then Vr = Vs(N)
   Next N: Min = Vr: End Function
Mais ce n'est pas sûr, parce qu'à priori, il me semble que :
NbrMarches = Round((2 * HautTot + LongTot) / 610)

À +
 
Dernière édition:

Garamayama

XLDnaute Nouveau
Re : Calcul d'escalier industriel - aide pour du vba (novice inside)

Ok je vais me pencher là dessus; j’avoue que la vu ma maitrise du vba je suis un peu comme une poule avec un couteau devant cette fonction :p J'espère réussir à transposer ça à mon calcul pour repartir sur de bonnes bases, donc là si je comprend bien je peux renseigner un calcul qui est redondant jusqu'à obtenir un résultat satisfaisant ? as variant pour définir Vr variable recalculée, à quoi correspond paramarray, ubound ? j'essaye de trouver des explications sur le net depuis tout à l'heure mais je peine vu que je ne connais pas grand chose sorti des instructions de base if et end if... merci !
 

Dranreb

XLDnaute Barbatruc
Re : Calcul d'escalier industriel - aide pour du vba (novice inside)

Il y a une aide dans VBA. Il suffit de faire F1 lorsque le curseur texte est sur un mot clé du langage ou un nom de propriété ou méthode Excel dans la fenêtre de code de l'éditeur VBA.

Ma formule pour trouver le nombre de marches tout de suite n'est pas bonne ?
À +
 
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : Calcul d'escalier industriel - aide pour du vba (novice inside)

Bonjour à tous,

Le sujet m'intéresse pour le calcul des escaliers, donc je vais le suivre et si possible y participer en fonction de mes connaissances.

Pour ton rapport ou ton rendu de données, il faudrait utiliser les termes spécifiques au milieu de l'escalier, domaine très particulier avec des termes techniques tels que :

La longueur de l'escalier s'appelle le reculement.
Le recouvrement s'appelle le nez de marche.
Le giron (sans le D) est la distance (horizontalement) entre le nez de marche inférieur et le nez de marche supérieur.
La profondeur de marche ou le plat de marche est égal au giron + le nez de marche (de la marche supérieure).
La longueur des marches s'appelle la largeur de volée.

La formule de Dranreb est bonne mais il faudrait a mon avis plutôt prendre un arrondi supérieur, de façon à réduire la hauteur des marches. Ou alors il suffit de rajouter 1.

A+
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Calcul d'escalier industriel - aide pour du vba (novice inside)

Bonsoir Yaloo.
Le giron (sans le D) est la distance entre le nez de marche inférieur et le nez de marche supérieur
Garamayama m'indiquait pour le giron la part horizontale seulement de cette distance. Qui a raison ?
il faudrait a mon avis plutôt prendre un arrondi supérieur
Ajouter 0.9999 avant arrondi inférieur, comme dans ma dernière formule, fait pratiquement ça, non ?
cordialement.
 

Garamayama

XLDnaute Nouveau
Re : Calcul d'escalier industriel - aide pour du vba (novice inside)

Concernant le giron cela revient au même je pense, longueur totale - nez de marche (ce que j'ai appelé recouvrement); au fait j'ai une petite erreur qui s'est glissée dans ma macro (la première version que je voudrai fonctionnelle totalement avant de modifier histoire d'avoir au moins une version de finie) ligne 283 j'ai un bug que je n'arrive pas à régler, sans doute une quelconque faute d'énonciation; si quelqu'un peut me dire d'où cela pourrai venir voila le bloc:

If Range("I20") > 0 Then
Range("D6") = Range("I20") * Range("H21")
End If
If Range("H20") > 0 Then
Range("D6") = Range("H20") * Range("H21")
End If
If Range("D6") > 5000 Then
MsgBox ("Attention, charge de calcul importante! ce programme est conçu pour une charge plus faible (flèche dimensionnante), veuillez vous assurer que le critère de résistance est également respecté si vous conservez cet effort")
End If

merci
 

Yaloo

XLDnaute Barbatruc
Re : Calcul d'escalier industriel - aide pour du vba (novice inside)

Bonsoir Darnreb,

Voici l'explication du giron :

Giron.jpg

Le 0.999 me paraissait tout à fait bien, mais car il y a un "mais", j'ai l'habitude de faire des escaliers et plus la marche est petite mieux c'est.

Pour le 0.999 je suis d'accord, mais la hauteur des marches tournent autour de 180 mm, voir moins.

Pour les escaliers intérieurs, la hauteur de sol à sol est de 2700 mm (2500 sous plafond + une dalle de 200 mm) et un reculement de 3200 mm (c'est une moyenne), avec 15 marches cela nous donne des marches de 180 et un giron d'environ 230 mm.

Avec ton calcul, nous arrivons à 14 marches cela nous donne une hauteur de 187 et un giron de 238 mm, cela me semble élevé.

A+
 

Dranreb

XLDnaute Barbatruc
Re : Calcul d'escalier industriel - aide pour du vba (novice inside)

Je ne vois pas comme ça d'où vient l'erreur. C'est écrit avec une intention différente dans le classeur joint, qu'il aurait fallu écriure ainsi :
VB:
Range("D6").Formula = "=(I20+H20)*H21"
If Range("D6").Value > 5000 Then
   MsgBox "Attention, charge de calcul importante! ce programme est conçu pour une charge plus faible (flèche dimensionnante), veuillez vous assurer que le critère de résistance est respecté si vous conservez cet effort", _
      vbCritical, "Calcul Macro 2"
   End If
Un tuyau: quand VBA insère un espace derrière un nom avant une parenthèse ouvrante, c'est que cette dernière n'est pas la bienvenue, sauf pour définir un groupe d'éléments en tant que paramètre unique.

Yabo, c'est bien ce que je pensais puisque ton croquis contredit ta définition: ce n'est absolument pas du tout la distance oblique entre les nez.
Alors à part ça, pour le plus grand nombre de plus petites marches tolérées possibles ce serait:
NbrMarches = Int((2 * HautTot + LongTot) / 580)
À +
 
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : Calcul d'escalier industriel - aide pour du vba (novice inside)

Re,

Yabo, c'est bien ce que je pensais puisque ton croquis contredit ta définition: ce n'est absolument pas du tout la distance oblique entre les nez.

Que nenni, pour un escalier, on parle de plat de marche, donc il s'agit bien de la distance "à plat" de nez de marche à nez de marche, et non en oblique.

OK pour la formule (2 x Hauteur + Reculement / 580)

A+
 

Discussions similaires

Réponses
5
Affichages
399

Statistiques des forums

Discussions
312 196
Messages
2 086 095
Membres
103 116
dernier inscrit
kutobi87