OVH Cloud OVH Cloud

UserForm ! Au seccour !

1 réponse
Avatar
Patrick Dupin
Bonjour,

L'association à laquelle j'appartiens organise une épreuve sportive
chronométrée par équipe de 2 et m'a chargé de faire un mini programme EXCEL
pour d'une part engager les concurrents et faire les classements.

Mais je rencontre quelques difficultés et serais heureux de trouver une aide
sur ce forum.

Voilà le problème :

J'ai construit un UserForm2 avec un CommandButon1 sur lequel j'ai placé la
procédure qui suit et qui valide les renseignements en les enserrant dans la
feuille « equipe ! ».

Cet UserForm2 possède un TexBox7 et un TextBox11 dans lequel je dois saisir
les dates de naissance des concurrents (une sécurité date de naissance
JJ/MM/AA serait en plus excellente) qui alors inséreraient dans la feuille
« equipe ! » dans les colonnes respectivement 5 et 9 l'âge des concurrents
au jour de l'épreuve (date inscrite dans un Texbox1 de l'UserForm1).

Et pour compliquer l'ensemble, je souhaiterais que dans la colonne 11, la
catégorie s'inscrive selon les critères suivants

- 2 hommes, si l'âge est > à 40 ans : Vétéran

- 2 hommes, si l'âge est <+ à 40 ans : Homme

- 2 femmes : Femme

- 1 homme et 1 femme : Mixte.

Les sexes sont aussi dans l'UserForm2 sur des OptionButton1 (Homme) et
OptionButton2 (Femme) pour le 1er concurrent et OptionButton3 (Homme) et
OptionButton4 (Femme) pour le 2ème concurrent.

Comme vous le voyez dans la procédure qui suit, je saisissais l'âge des
concurrents avec un test.

J'aimerais donc changer tout ceci et je remercie très sincèrement tous ceux
qui m'apporteront une aide.

Merci et Bon 14 juillet à tous

Patrick



Private Sub CommandButton1_Click()

'test type valeur age (si nombre ou pas)

On Error GoTo finproc

A1 = UserForm2.TextBox7.Value

a2 = UserForm2.TextBox11.Value

A1 = A1 + 1

a2 = a2 + 1

'fin test



Sheets("equipes").Activate



doss = Cells(1, 21).Value

Cells(1, 21).Value = doss + 1

Cells(doss + 1, 1).Value = doss

Cells(doss + 1, 2).Value = UserForm2.TextBox2.Value

Cells(doss + 1, 17).Value = UserForm2.TextBox3.Value

Cells(doss + 1, 16).Value = UserForm2.TextBox4.Value

Cells(doss + 1, 3).Value = UserForm2.TextBox5.Value

Cells(doss + 1, 4).Value = UserForm2.TextBox6.Value

Cells(doss + 1, 5).Value = UserForm2.TextBox7.Value 'âge du raider 1

Cells(doss + 1, 13).Value = UserForm2.TB_club_CM1.Value

Cells(doss + 1, 7).Value = UserForm2.TextBox9.Value

Cells(doss + 1, 8).Value = UserForm2.TextBox10.Value 'âge du raider 2

Cells(doss + 1, 9).Value = UserForm2.TextBox11.Value

Cells(doss + 1, 15).Value = UserForm2.TB_club_CM2.Value

Cells(doss + 1, 18).Value = UserForm2.TextBox13.Value

Cells(doss + 1, 19).Value = UserForm2.TextBox14.Value

Cells(doss + 1, 25).Value = UserForm2.NBrepas.Value



'If Cells(doss + 1, 5).Value < Cells(doss + 1, 9).Value Then

'agemini = Cells(doss + 1, 5).Value

'Else

'agemini = Cells(doss + 1, 9).Value

'End If

'Cells(doss + 1, 10).Value = "0"

'If agemini >= 40 Then

'Cells(doss + 1, 10).Value = "veteran1"

'End If

'If agemini >= 50 Then

'Cells(doss + 1, 10).Value = "veteran2"

'End If





'Détermine le sexe de l'équipier 1 dans la colonne 6

If OptionButton1.Value = True Then

Cells(doss + 1, 6).Value = "H"

s1 = 1

Else

Cells(doss + 1, 6).Value = "F"

s1 = 2

End If



'Détermine le sexe de l'équipier 1 dans la colonne 6

If OptionButton3.Value = True Then

Cells(doss + 1, 10).Value = "H"

s2 = 1

Else

Cells(doss + 1, 10).Value = "F"

s2 = 2

End If



If s1 = 1 Then

If s2 = 1 Then

Cells(doss + 1, 11).Value = "Homme"

Else

Cells(doss + 1, 11).Value = "Mixte"

End If

Else

If s2 = 2 Then

Cells(doss + 1, 11).Value = "Femme"

Else

Cells(doss + 1, 11).Value = "Mixte"

End If

End If







'Détermine Licencié ou non licencié pour équipier 1 dans la colonne 12

If OB_L1.Value = True Then

Cells(doss + 1, 12).Value = "L"

s1 = 1

Else

Cells(doss + 1, 12).Value = "NL"

s1 = 2

End If



'Détermine Licencié ou Non licencié pour équipier 2 dans la colonne 14

If OB_L2.Value = True Then

Cells(doss + 1, 14).Value = "L"

s2 = 1

Else

Cells(doss + 1, 14).Value = "NL"

s2 = 2

End If







Unload UserForm2

finproc:

On Error Resume Next

End Sub

1 réponse

Avatar
Youky
Salut Patrick,
si cela peut aider au moment de la validation

If IsNumeric(UserForm2.TextBox7.Value) Then 'si chiffre
If IsDate(UserForm2.TextBox11.Value) Then ' si est date

Youky

"Patrick Dupin" a écrit dans le message de news:
42d5fa66$0$304$
Bonjour,

L'association à laquelle j'appartiens organise une épreuve sportive
chronométrée par équipe de 2 et m'a chargé de faire un mini programme
EXCEL

pour d'une part engager les concurrents et faire les classements.

Mais je rencontre quelques difficultés et serais heureux de trouver une
aide

sur ce forum.

Voilà le problème :

J'ai construit un UserForm2 avec un CommandButon1 sur lequel j'ai placé la
procédure qui suit et qui valide les renseignements en les enserrant dans
la

feuille « equipe ! ».

Cet UserForm2 possède un TexBox7 et un TextBox11 dans lequel je dois
saisir

les dates de naissance des concurrents (une sécurité date de naissance
JJ/MM/AA serait en plus excellente) qui alors inséreraient dans la feuille
« equipe ! » dans les colonnes respectivement 5 et 9 l'âge des concurrents
au jour de l'épreuve (date inscrite dans un Texbox1 de l'UserForm1).

Et pour compliquer l'ensemble, je souhaiterais que dans la colonne 11, la
catégorie s'inscrive selon les critères suivants

- 2 hommes, si l'âge est > à 40 ans : Vétéran

- 2 hommes, si l'âge est <+ à 40 ans : Homme

- 2 femmes : Femme

- 1 homme et 1 femme : Mixte.

Les sexes sont aussi dans l'UserForm2 sur des OptionButton1 (Homme) et
OptionButton2 (Femme) pour le 1er concurrent et OptionButton3 (Homme) et
OptionButton4 (Femme) pour le 2ème concurrent.

Comme vous le voyez dans la procédure qui suit, je saisissais l'âge des
concurrents avec un test.

J'aimerais donc changer tout ceci et je remercie très sincèrement tous
ceux

qui m'apporteront une aide.

Merci et Bon 14 juillet à tous

Patrick



Private Sub CommandButton1_Click()

'test type valeur age (si nombre ou pas)

On Error GoTo finproc

A1 = UserForm2.TextBox7.Value

a2 = UserForm2.TextBox11.Value

A1 = A1 + 1

a2 = a2 + 1

'fin test



Sheets("equipes").Activate



doss = Cells(1, 21).Value

Cells(1, 21).Value = doss + 1

Cells(doss + 1, 1).Value = doss

Cells(doss + 1, 2).Value = UserForm2.TextBox2.Value

Cells(doss + 1, 17).Value = UserForm2.TextBox3.Value

Cells(doss + 1, 16).Value = UserForm2.TextBox4.Value

Cells(doss + 1, 3).Value = UserForm2.TextBox5.Value

Cells(doss + 1, 4).Value = UserForm2.TextBox6.Value

Cells(doss + 1, 5).Value = UserForm2.TextBox7.Value 'âge du raider 1

Cells(doss + 1, 13).Value = UserForm2.TB_club_CM1.Value

Cells(doss + 1, 7).Value = UserForm2.TextBox9.Value

Cells(doss + 1, 8).Value = UserForm2.TextBox10.Value 'âge du raider 2

Cells(doss + 1, 9).Value = UserForm2.TextBox11.Value

Cells(doss + 1, 15).Value = UserForm2.TB_club_CM2.Value

Cells(doss + 1, 18).Value = UserForm2.TextBox13.Value

Cells(doss + 1, 19).Value = UserForm2.TextBox14.Value

Cells(doss + 1, 25).Value = UserForm2.NBrepas.Value



'If Cells(doss + 1, 5).Value < Cells(doss + 1, 9).Value Then

'agemini = Cells(doss + 1, 5).Value

'Else

'agemini = Cells(doss + 1, 9).Value

'End If

'Cells(doss + 1, 10).Value = "0"

'If agemini >= 40 Then

'Cells(doss + 1, 10).Value = "veteran1"

'End If

'If agemini >= 50 Then

'Cells(doss + 1, 10).Value = "veteran2"

'End If





'Détermine le sexe de l'équipier 1 dans la colonne 6

If OptionButton1.Value = True Then

Cells(doss + 1, 6).Value = "H"

s1 = 1

Else

Cells(doss + 1, 6).Value = "F"

s1 = 2

End If



'Détermine le sexe de l'équipier 1 dans la colonne 6

If OptionButton3.Value = True Then

Cells(doss + 1, 10).Value = "H"

s2 = 1

Else

Cells(doss + 1, 10).Value = "F"

s2 = 2

End If



If s1 = 1 Then

If s2 = 1 Then

Cells(doss + 1, 11).Value = "Homme"

Else

Cells(doss + 1, 11).Value = "Mixte"

End If

Else

If s2 = 2 Then

Cells(doss + 1, 11).Value = "Femme"

Else

Cells(doss + 1, 11).Value = "Mixte"

End If

End If







'Détermine Licencié ou non licencié pour équipier 1 dans la colonne 12

If OB_L1.Value = True Then

Cells(doss + 1, 12).Value = "L"

s1 = 1

Else

Cells(doss + 1, 12).Value = "NL"

s1 = 2

End If



'Détermine Licencié ou Non licencié pour équipier 2 dans la colonne 14

If OB_L2.Value = True Then

Cells(doss + 1, 14).Value = "L"

s2 = 1

Else

Cells(doss + 1, 14).Value = "NL"

s2 = 2

End If







Unload UserForm2

finproc:

On Error Resume Next

End Sub