Macro excel langage VBA
Thiberte
-
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
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
2 réponses
-
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 resteDim 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-
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 -
-
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
-
-
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