Macro vba

Fermé
zina1234 Messages postés 6 Date d'inscription mardi 27 février 2018 Statut Membre Dernière intervention 4 février 2019 - 27 févr. 2018 à 09:53
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 - 27 févr. 2018 à 19:06
Bonjour
j'ai du mal à rédiger une macro qui revoie à un message d'erreur si la valeur saisie via input box n'est pas { 0%, 2% 7%}

ainsi qu'une autre macro qui montre en rouge les valeurs ayant une décimale paire.

merci bcp
A voir également:

3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
27 févr. 2018 à 10:40
Bonjour

pour la décimale paire

Fix(Range("C3") * 10 Mod 2) renvoie 0 si 1°décimale C3 est paire

0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié le 27 févr. 2018 à 13:55
Et pour les pourcentages

Option Explicit
'--------------------------
Sub valeur_pourcent()
Dim T_correct, Pcent As Byte, Test, xxx As Single
    T_correct = Array(0, 2, 7)
    On Error GoTo erreur1
    Pcent = InputBox(prompt:="Indiquez la valeur du pourcentage sans le caractère % (par ex: 2 pour 2%)")
    Test = Filter(T_correct, Pcent)
    If IsEmpty(Test(0)) Then GoTo erreur1
    xxx = Test(0) / 100
'--- suite du code....

Exit Sub
'gestionnaire erreurs
erreur1:
    MsgBox "saisie erronée"
End Sub
0
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
27 févr. 2018 à 14:26
Bonjour à vous deux

Et pourquoi pas tout simplement :
Sub pourcentage()
pcent = InputBox("Indiquez la valeur du pourcentage (2, 7 ou 12) sans le caractère % (par ex: 2 pour 2%)")
If pcent <> 2 And pcent <> 7 And Percent <> 12 Then MsgBox "Saisie erronée": Exit Sub
'... suite du code...
End Sub


mais personnellement pour ce genre je préfère faire un userform avec 3 boutons d'option ne permettant de choisir qu'une seule option ce qui évite toute erreur

Cdlmnt
Via
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié le 27 févr. 2018 à 14:42
Merci pour le "tout simplement" très sympa de ta part...

au passage, règle d'or et de base de l'algorithmique:
toute sortie d'une procédure doit se situer à la fin du code(méthode Merise)
0
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
27 févr. 2018 à 14:59
Désolé Michel je ne voulais pas t'offenser c'était une simple tournure de style pour introduire ce que j'aurais fait de plus court mais je fais peut être mal, je suis autodidacte et ne demande qu'à apprendre, et que tu m'expliques ce qu'est la méthode Merise
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
27 févr. 2018 à 16:26
Re,
moi aussi, je suis autodidacte, à part 2 ou 3 ans à user mes pantalons au cours du soir du CNAM informatique où, d’ailleurs ,j'ai appris cette règle en TP issue des modèles de traitements de Merise. ces tp étaient dirigés par un informaticien responsable d'une fac à Montpellier pour qui il ne fallait surtout pas déroger à cette règle sous peine de "poésie hard"...
Tu as des topos sur Merise dans la partie encyclopédie du forum CCM mais maintenant, elle est remplacée par ULM (je ne connais pas) et c'était ardu à potasser.

concernant le code, pour 3 conditions, on peut utiliser une cascade de "SI" mais si tu as une liste assez longue, le filter d'un array est préférable , surcharge moins le code et est + facile à modifier (suppression, ajout) que d'aller bricoler dans le code et ce quelque soit la longueur de la liste.


dis toi bien aussi que je regarde souvent tes astuces sur les formules et j'en engrange pas mal dans mon grenier comme la validation de données sur 3 niveaux par exemple

Bonne soirée
0
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
27 févr. 2018 à 19:06
Re,

Merci Michel de tes infos et de tes conseils, j'en prends bonne note ☺
Tu sais que moi aussi j'apprends de tes interventions, comme de celles intervenants récurrents
Vive l'esprit collaboratif de CCM

Bonne soirée également

0