Macro excel langage VBA

Fermé
Thiberte - 15 avril 2016 à 16:29
 Thiberte - 19 avril 2016 à 11:38
Bonjour,
Je voudrais créer une macro sur Excel qui calculerais la moyenne de deux nombres et qui afficherais un message d'erreur si la valeur n'est pas comprise entre deux autres valeurs, variable en fonction de la saisi.
En clair ma question est que doit-on écrire pour que la macro affiche un message si la valeur est trop petite ou trop grande ?
Pour l'intant mon travail donne cela:


Dim moyenne As String
moyenne = Cells(10, 7)
Dim limsup As String
Dim liminf As String
limsup = Cells(4, 10)
liminf = Cells(4, 9)
If liminf < moyenne < limsup Then
moyenne = MsgBox("Densité correcte")
End If


Merci d'avance de votre attention pour mon post et de vos éventuelles réponses.


P.S: ça fait deux jours que j'avance pas à cause de ce truc donc je vous implore à genoux aidez moi :P
A voir également:

2 réponses

ccm81 Messages postés 10878 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 11 septembre 2024 2 415
15 avril 2016 à 17:01
Bonjour

1. D'après ton code, la "moyenne" est déjà calculée dans la feuille Cell(10,7)
2. les valeurs dans la feuilles sont de type numérique et non caratère
3. Pour le reste
Dim moyenne As String 
Dim limsup As single
Dim liminf As single
Dim moyenne as single
moyenne = Cells(10, 7)
limsup = Cells(4, 10)
liminf = Cells(4, 9)
If liminf < moyenne and moyenne < limsup Then
MsgBox "Densité correcte"
Else
MsgBox "Densité incorrecte"
End If

Cdlmnt
1
Merci beaucoup ccm81 !
Si je puis me permettre d'abuser encore de votre gentillesse, savez-vous comment on enregistre les données saisies dans une boite de dialogue les un après les autres sur une même colonne ?
J'ai trouvé ces fonctions :
MsgBox Range("A1").End(xlDown).Row
Range("A1").End(xlDown).Offset(1, 0).Select
Mais je ne comprend pas comment les utiliser
Merci d'avance
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 306 > Thiberte
Modifié par michel_m le 19/04/2016 à 10:01
Bonjour
pour relayer CCM81 (bonjour, ca va ?) :o)
pour trouver la 1° ligne vide d'une colonne
ligvid=Columns("A").find("",range("A1"),xlvalues).row
'et activer la cellule
Range("A" & ligvid).select
0
Merci mais je voudrais que les valeurs saisies s'enregistrent dans une même colonne est-ce possible ?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 306 > Thiberte
19 avril 2016 à 11:06
tu peux en dire plus ?
0
Oui, en fait pour faire simple un opérateur rentre dans une boite de dialogue, un nom de produit (il y en a 3 que nous appellerons A, B et C). Après cette saisie, une autre boite de dialogue apparait. L'opérateur rentre un numéro de produit. Ensuite un nombre quelconque puis un autre et excel calcul la moyenne de ces deux derniers nombre. Pour l'instant tout cela fonctionne, mon problème est maintenant que ces 2 dernières données ( numéro de produit et moyenne des deux nombres quelconques) s'enregistre dans la colonne A, B ou C en fonction de la première saisie de l'opérateur.
Oui c'est très compliqué c'est pour cela que votre aide m’aie très précieuse.
merci d'avance
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 306
19 avril 2016 à 11:26
Mettre le classeur sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le raccourci par un clic droit sur le lien proposé dans le message de réponse

Dans l’attente

0
Je suis sur un ordinateur professionnel il ne m'est pas permis de télécharger des fichiers. Merci beaucoup d'avoir voulu m'aider
0