Attribuer une valeur à une option

Bonjour à tous,

Je débute depuis hier en codage sur VBA, et j'ai un blocage :

Je vous explique, je souhaite attribuer un chiffre à une option (cf. Image1)

Aucun --> 1

Moyen --> 3

Fort --> 5

Pour ensuite réaliser une simple addition des résultats dans chacun des Fram (ex : 1 + 3 + 1 + 1 = 5)

Je pense que j'ajouterai un boutton "Calcul" pour réaliser cette opération.

J'avance progressivement

Merci d'avance

image1

Bonjour

Avec un fichier c'est mieux

Testes

Private Sub CommandButton1_Click()
Dim I As Integer
Dim Tot As Integer

For I = 1 To 12
  If Me.Controls("OptionButton" & I) = True Then
    Tot = Tot + IIf(Me.Controls("OptionButton" & I).Caption = "Aucun", 1, IIf(Me.Controls("OptionButton" & I).Caption = "Moyen", 3, 5))
  End If
Next I
MsgBox Tot
End Sub

Attention : Que les mots testés soient identiques aux noms des OptionButton

Merci pour ta réponse !

Je vais peut être paraitre mauvais mais je ne comprends pas :

Voilà la liste des mes opt :

Productivité : OptAP (Aucun) / OptMP (Moyen) / OptFP (Fort)

Qualité : OptAQ / OptMQ / OptFQ

Environnement : OptAE / OptME / OptFE

Sécurité : OptAS / OptMS / OptFS

Et je souhaite obtenir une datte prévisionnelle en fonction de la somme des options à partir d'un clickbutton :

Entre 0 et 5 : Datte actuelle + 14 jours

Entre 5 et 10 : Datte actuelle + 7 jours

Entre 10 et 15 : Datte actuelle + 2 jours

Entre 5 et 10 : Datte actuelle + 1 jour

Merci d'avance pour celui qui arrivera à me faire comprendre, sachant que je n'ai aucune culture en programmation ...

Bonjour

Banzai64 a écrit :

Avec un fichier c'est mieux

Salut banzai, j'ai fait un fichier qui te permettra de l'aider s'il a d'autres questions,

Je suis parti de ces hypotheses :

En partant plutot la dessus ? :

Entre 0 et 5 : Datte actuelle + 14 jours

Entre 6 et 10 : Datte actuelle + 7 jours

Entre 11 et 15 : Datte actuelle + 2 jours

Entre 16 et 20 : Datte actuelle + 1 jour

bien cordialement

7v1essai.xlsm (17.48 Ko)

Bonjour

Merci ketamacanna

Tu aurais pu trouver le code

Ah ok, je vois ou il voulait en venir, j'avais pas capté qu'en parlant d'option, il parlait des noms des boutons.

Cordialement

Merci à tous, c'est ce que je voulais !

Maintenant il faut juste que j'arrive à travailler en jour ouvrable ..

J'ai encore une petite question, je pense que le plus dur est fait ...

Comment mettre une priorité sur le "Fort", c'est à dire, à partir du moment où la case Fort est coché, je souhaite un délai de 2 jours quelque soit la valeur totale

ex : 1 + 3 + 5 + 1 = 10

Soit avec le code actuel ça serait la date d'aujourd'hui + 7 jours, moi je souhaite 2 jours car il y a un "5" (Fort)

Mais je souhaite garder le 1 jour en cas de total compris entre 16 et 20 ( Il ne faut pas mettre obligatoirement 2 jours s'il y a un 5, car dans le cas suivant : 5 + 3+ 5 + 3 = 16 , je souhaite quand même 1 jour)

Si c'est ambigu, je répondrai à vos questions

Si quelqu'un sait faire ça.

Merci

Donc pour résumé :

Si le total est compris entre 16 et 20 : DATE ACTUELLE + 1 JOUR

sinon

Si au moins un FORT est coché : DATE ACTUELLE + 2 JOURS

sinon

Entre 0 et 5 : Datte actuelle + 14 jours

Entre 6 et 10 : Datte actuelle + 7 jours

Entre 11 et 15 : Datte actuelle + 2 jours

Corrige moi si je me trompe.

Cordialement

A tester et à faire corriger par Banzai s'il a un meilleur code

8v2form.xlsm (22.14 Ko)

cordialement


Sinon pour tes jours ouvrés, c'est le samedi et dimanche qu'il ne faut pas prendre en compte ?

Faut il tenir compte des jours fériés également ?

Cordialement

Bonjour

ketamacanna a écrit :

à faire corriger par Banzai

Je suis sur que tu es capable de faire un bon code

Si je vois des trucs flagrants je le dis à la personne

Des fois pour le fun je m'amuse à coder autrement que la solution proposée, mais rien de "professionnel"

Loin de moi cette prétention et désolé si je l'ai laissé paraître (je vais essayer de me corriger si c'est le cas)

Bonne continuation

Loin de moi cette prétention et désolé si je l'ai laissé paraître (je vais essayer de me corriger si c'est le cas)

, non je te rassure, tu n'as pas à te corriger , c'est juste pour m'améliorer quand je code, et voir d'autres propostions, pour progresser et corriger mes erreurs s'il y en a.

cdt.

Pour les jours ouvrables, oui je veux aussi compter les jours fériés ...

Je vais lire ce que vous avez envoyé et je vous tiens au courant


Aprés avoir lu, c'est exactement ce que je voulais, merci beaucoup !

Dernier point, quelqu'un sait il comment travailler an jours ouvrables ? et exceptant les jours fériés ?

Oui c'est faisable.

Si on tombe un jour férié, on cherche le jour d'après ouvrable c'est ça ?

cdt

un essai :

13v3.xlsm (25.18 Ko)

Oui c'est ça, et de même pour les weekends

Pour ton fichier, J'ai une erreur lors de l'éxecution à la ligne :

test2 = Application.WorksheetFunction.NetworkDays_Intl(la_date, la_date, , feries)

"Référence non pris en compte"

Etrange,

Si quelqu'un d'autre peut tester le fichier et nous dire s'il a la même erreur ??

(chez moi je n'ai pas cette erreur, bizarre).

cdt

C'est peut être parce-que je travaille avec excel 2003 ?

"proprièté ou méthode non pris en compte par cet objet"

dans excel,

as tu cette fonction

=NB.JOURS.OUVRES.INTL()

quand tu tapes la formule, il trouve cette fonction ??

je pense qu'elle n'existe pas sur excel 2003, mais j'en suis pas certain.

cordialement


Je pense qu'avec ce fichier, ça devrait faire l'affaire :

8v4.xlsm (25.16 Ko)

(as-tu toujours un message d'erreur ?)

cdt

Rechercher des sujets similaires à "attribuer valeur option"