Petit programme macro Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
k
klem1
Jeune membre
Jeune membre
Messages : 16
Inscrit le : 19 février 2015
Version d'Excel : 2013FR 2007FR

Message par klem1 » 19 février 2015, 17:00

Bonjour,

Je me lance dans l'apprentissage du VBA-Excel et j'ai besoin de votre aide. Je vous décris ce que je souhaite faire.

-1er page la personne choisi si il veut calculer un diamètre ou une longueur.

----2ème page ( DIAMETRE ) ici je souhaite que la personne renseigner 3 valeur ( longueur, epaisseur, et diamètre mandrin). Pour ne pas qu'il rentre du texte ou autre j'ai utilisé la fonction" If IsNumeric" . Si par erreur quelq'un met du texte a la place des chiffres une msgbox s'affiche en lui disant de mettre des chiffre tout simplement.
j'en arrive à mon problème, je veux que quand toutes les conditions sont réunis ( cet à dire que tout les valeurs renseigner son bien des chiffre) cela calcule le résultat grâce à une macro qui effectue une formule. Le problème c'est qu'il ne veut pas prendre ma macro en compte, et je ne comprend pas pourquoi.

----3ème PAGE (LONGUEUR) ici je souhaite que la personne renseigner 3 valeur ( longueur, diamètre, et diamètre mandrin). Même chose que le diamètre.

Le nom de la macro dans le code est MACRO1 mais peut importe la macro il ne veut pas me la lancer.
Sub variables()

'SI TOUT EST OK alors LANCER LA MACRO CALCUL

If IsNumeric(Range("H7")) And IsNumeric(Range("D7")) And IsNumeric(Range("L7")) And Range("L7") > 0 And Range("D7") > 0 And Range("O7") > 0 Then MACRO1

'VALEUR NUMERIQUE POUR LE DIAMETRE MANDRIN

If IsNumeric(Range("H7")) And Range("H7") > 0 Then

Dim DiametreMandrin As Integer
DiametreMandrin = Range("H7")

Else
MsgBox "Veuillez rentrer un diamètre entre 1 et 9999"
Range("H7").ClearContents
End If
'VALEUR NUMERIQUE POUR epaisseur

If IsNumeric(Range("D7")) And Range("D7") > 0 Then
Dim epaisseur As Integer
epaisseur = Range("D7")

Else
MsgBox "Veuillez rentrer une epaisseur comprise entre 0.001 et 9.999"
Range("D7").ClearContents
End If

'VALEUR NUMERIQUE POUR LONGUEUR

If IsNumeric(Range("L7")) And Range("L7") > 0 Then
Dim longueur As Integer
longueur = Range("L7")

Else
MsgBox "Veuillez rentrer une longueur comprise entre 1 et 9999"
Range("L7").ClearContents
End If


End Sub
Merci d'avance. :D

ps: si vous avez des petite astuces pour améliorer tout ça je suis preneur :D
F
Floo73
Membre habitué
Membre habitué
Messages : 67
Inscrit le : 15 novembre 2013
Version d'Excel : 2010

Message par Floo73 » 19 février 2015, 17:10

Salut,

Très basiquement, je dirais qu'il faut associer ton bouton à la macro ...
Donc clique droit, "Affecter une macro" et lui affecter le code que tu as rédigé !

Attention à l'orthographe, "Paramètre" ça prend un "s" au pluriel ;)

Bon aprèm,

Floo73
k
klem1
Jeune membre
Jeune membre
Messages : 16
Inscrit le : 19 février 2015
Version d'Excel : 2013FR 2007FR

Message par klem1 » 19 février 2015, 18:51

Très basiquement, je dirais qu'il faut associer ton bouton à la macro ...
Donc clique droit, "Affecter une macro" et lui affecter le code que tu as rédigé !
j'ai essayer mais quand j'affecte tout mon code entier au bouton il fait ce que je lui demande mais il ne fait pas la macro.

Si j'affecte la "MACRO1" au bouton il va juste faire le calcul, mais il ne va pas vérifier si tout les valeurs sont numériques.


Donc ce que je souhaite c'est qu'il fasse les deux en même temps. Pour que en appuyant sur le bouton CALCULER il vérifier si les valeurs sont numérique si c'est OK il fait le calcul sinon il m'affiche une msgbox en indiquant que je me suis trompé dans une case.
Avatar du membre
Sharney
Membre fidèle
Membre fidèle
Messages : 302
Appréciations reçues : 5
Inscrit le : 15 octobre 2013
Version d'Excel : 2013

Message par Sharney » 19 février 2015, 22:25

Bonsoir,

A tester mais je pense qu'aux vues de tes explications, il va falloir mettre toute ta macro dans un If. De plus, je te propose de demander si les valeurs sont différentes de vides plutôt que supérieures à 0.

SI toutes les données sont numériques et <>"" ALORS
on lui demande réaliser le calcul
SINON il alerte via un message d'erreur.

Bonne soirée,
Sha'
k
klem1
Jeune membre
Jeune membre
Messages : 16
Inscrit le : 19 février 2015
Version d'Excel : 2013FR 2007FR

Message par klem1 » 20 février 2015, 04:34

D'accord je vais essayer ça des que je peux. je vous tiens au courant, merci.
k
klem1
Jeune membre
Jeune membre
Messages : 16
Inscrit le : 19 février 2015
Version d'Excel : 2013FR 2007FR

Message par klem1 » 20 février 2015, 07:12

Doublon à supprimer.
k
klem1
Jeune membre
Jeune membre
Messages : 16
Inscrit le : 19 février 2015
Version d'Excel : 2013FR 2007FR

Message par klem1 » 20 février 2015, 09:01

J'ai essayé, mais je n'arrive pas à lancer ma macro calcul après le ''then" de la fonction "if".
k
klem1
Jeune membre
Jeune membre
Messages : 16
Inscrit le : 19 février 2015
Version d'Excel : 2013FR 2007FR

Message par klem1 » 20 février 2015, 16:42

ou alors me dire comment je peux faire cet formule "" =RACINE(((((L7*D7)/PI())*1000)+((H7/2)^2)))*2 "" dans le programme. Au lieu d’exécuter une macro.
k
klem1
Jeune membre
Jeune membre
Messages : 16
Inscrit le : 19 février 2015
Version d'Excel : 2013FR 2007FR

Message par klem1 » 21 février 2015, 11:45

up
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'006
Appréciations reçues : 421
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 21 février 2015, 11:49

Bonjour,

Pour une solution totalement adaptée à ta situation ... tu ne dois pas hésiter à joindre ton fichier ... :wink:
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message