Macro excel langage VBA

Thiberte -  
 Thiberte -
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 11033 Statut Membre 2 433
 
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
Thiberte
 
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 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318 > Thiberte
 
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
Thiberte
 
Merci mais je voudrais que les valeurs saisies s'enregistrent dans une même colonne est-ce possible ?
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318 > Thiberte
 
tu peux en dire plus ?
0
Thiberte
 
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 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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
Thiberte
 
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