VBA
nicheca
-
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Nous réalisons un programme permettant de calculer les IMC, IMG et poids idéal. Nous avons commencé sous Word (peut être aurions nous du le faire sous excel? si oui, comment passer nos userform de word à excel?)
De plus on voudrait afficher des commentaires pour commenter les résultats des valeurs d'IMC, IMG... mais nos boucles if ne fonctionnement pas?? help
De plus on voudrait prendre des valeurs d'une première userform complétées pour les intégrer dans un 2ème caclcul se situant dans une formule dans une userfom2, comment faire?
Pour éclaircir mes propos je vous met les codes des deux userform:
Sur le code de la userfom 1 on voudrait mettre aussi un message d'erreur si les gens ne renseignent pas leur sexe en ne cliquant ni sur homme ni sur femme?
Userform 1
' demander au prof '
'Public Sub UserForm1_Initialize()
'Call Module1.settaille.Value'
'Call Module1.setage.Value '
' fin '
'End Sub'
' DEFINITION DES DIM'
Dim age As Integer
Dim taille As Integer
Dim masse As Integer
Dim tour_de_poignet As Integer
Dim IMC As Integer
Dim IMG As Integer
Dim PI As Integer
Dim PI1 As Integer
Dim PI2 As Integer
' Message d'erreur si absence de renseignement du sexe
Public Sub OptionButton1_Click()
If OptionButton1 = False And OptionButton2 = False Then
MsgBox "Veuillez renseigner votre sexe ..."
End If
End Sub
' BOUTON IMC '
Public Sub CommandButton1_Click()
age = TextBox1.Value
masse = TextBox2.Value
taille = TextBox3.Value
tour_de_poignet = TextBox4.Value
IMC = Round((masse) / ((taille / 100) * (taille / 100)), 0)
MsgBox "Votre IMC est de " & IMC & " kg/m2 "
' faire une boucle if avec si vous avez un imc de elle valeure alors vous etes etccc'
'Commentaire
If (IMC < 16) Then MsgBox "Attention, vous êtes en anorexie"
ElseIf (IMC >= 16) And (IMC < 19) Then MsgBox "Attention, vous êtes maigre"
ElseIf (IMC >= 19) And (IMC < 25) Then MsgBox "Vous avez une corpulence normale"
ElseIf (IMC >= 25) And (IMC < 30) Then MsgBox "Surveillez vous, vous êtes en surpoids"
ElseIf (IMC >= 30) And (IMC < 35) Then MsgBox "Attention, vous êtes en obésité modérée"
ElseIf (IMC >= 35) And (IMC < 40) Then MsgBox "Attention, vous êtes en obésité élevée"
Else: MsgBox "Pas de chance, vous êtes en obésité morbide"
End If
End Sub
' BOUTON IMG'
Public Sub CommandButton2_Click()
If OptionButton1 = True Then
IMG = (1.2 * IMC) + (0.23 * age) - (10.8 * 0) - 5.4
Else
IMG = (1.2 * IMC) + (0.23 * age) - (10.8 * 1) - 5.4
End If
MsgBox "Votre IMG est de " & IMG & " % "
End Sub
'BOUTON POIDS IDEAL'
Public Sub CommandButton3_Click()
' renvoi vers l'userform 2 '
Userform1.Hide
Load UserForm2
UserForm2.Show
End Sub
Userform 2:
Dim lorentz As Integer
Dim age As Integer
Dim taille As Integer
Public Sub userform2_initialize()
Call Module1.settaille.Value
Call Module1.setage.Value
End Sub
' Formule de Lorentz
Public Sub CommandButton1_Click()
taille = Module1.gettaille
lorentz = taille - 100 - ((taille - 150) + 2.5)
MsgBox "Votre poids idéal selon la formule de Lorentz est de " & lorentz & "kg"
End Sub
' Formule de Monnerot
Public Sub CommandButton3_Click()
PI2 = (taille - 100 + 4 * tour_de_poignet) / 2
MsgBox "Votre poids idéal selon la formule de Monnerot est de " & lorentz & "kg"
End Sub
'Retour
Public Sub CommandButton5_Click()
UserForm2.Hide
Load Userform1
Userform1.Show
End Sub
Private Sub UserForm_Click()
End Sub
MERCI d'avance pour votre aide précieuse
Nous réalisons un programme permettant de calculer les IMC, IMG et poids idéal. Nous avons commencé sous Word (peut être aurions nous du le faire sous excel? si oui, comment passer nos userform de word à excel?)
De plus on voudrait afficher des commentaires pour commenter les résultats des valeurs d'IMC, IMG... mais nos boucles if ne fonctionnement pas?? help
De plus on voudrait prendre des valeurs d'une première userform complétées pour les intégrer dans un 2ème caclcul se situant dans une formule dans une userfom2, comment faire?
Pour éclaircir mes propos je vous met les codes des deux userform:
Sur le code de la userfom 1 on voudrait mettre aussi un message d'erreur si les gens ne renseignent pas leur sexe en ne cliquant ni sur homme ni sur femme?
Userform 1
' demander au prof '
'Public Sub UserForm1_Initialize()
'Call Module1.settaille.Value'
'Call Module1.setage.Value '
' fin '
'End Sub'
' DEFINITION DES DIM'
Dim age As Integer
Dim taille As Integer
Dim masse As Integer
Dim tour_de_poignet As Integer
Dim IMC As Integer
Dim IMG As Integer
Dim PI As Integer
Dim PI1 As Integer
Dim PI2 As Integer
' Message d'erreur si absence de renseignement du sexe
Public Sub OptionButton1_Click()
If OptionButton1 = False And OptionButton2 = False Then
MsgBox "Veuillez renseigner votre sexe ..."
End If
End Sub
' BOUTON IMC '
Public Sub CommandButton1_Click()
age = TextBox1.Value
masse = TextBox2.Value
taille = TextBox3.Value
tour_de_poignet = TextBox4.Value
IMC = Round((masse) / ((taille / 100) * (taille / 100)), 0)
MsgBox "Votre IMC est de " & IMC & " kg/m2 "
' faire une boucle if avec si vous avez un imc de elle valeure alors vous etes etccc'
'Commentaire
If (IMC < 16) Then MsgBox "Attention, vous êtes en anorexie"
ElseIf (IMC >= 16) And (IMC < 19) Then MsgBox "Attention, vous êtes maigre"
ElseIf (IMC >= 19) And (IMC < 25) Then MsgBox "Vous avez une corpulence normale"
ElseIf (IMC >= 25) And (IMC < 30) Then MsgBox "Surveillez vous, vous êtes en surpoids"
ElseIf (IMC >= 30) And (IMC < 35) Then MsgBox "Attention, vous êtes en obésité modérée"
ElseIf (IMC >= 35) And (IMC < 40) Then MsgBox "Attention, vous êtes en obésité élevée"
Else: MsgBox "Pas de chance, vous êtes en obésité morbide"
End If
End Sub
' BOUTON IMG'
Public Sub CommandButton2_Click()
If OptionButton1 = True Then
IMG = (1.2 * IMC) + (0.23 * age) - (10.8 * 0) - 5.4
Else
IMG = (1.2 * IMC) + (0.23 * age) - (10.8 * 1) - 5.4
End If
MsgBox "Votre IMG est de " & IMG & " % "
End Sub
'BOUTON POIDS IDEAL'
Public Sub CommandButton3_Click()
' renvoi vers l'userform 2 '
Userform1.Hide
Load UserForm2
UserForm2.Show
End Sub
Userform 2:
Dim lorentz As Integer
Dim age As Integer
Dim taille As Integer
Public Sub userform2_initialize()
Call Module1.settaille.Value
Call Module1.setage.Value
End Sub
' Formule de Lorentz
Public Sub CommandButton1_Click()
taille = Module1.gettaille
lorentz = taille - 100 - ((taille - 150) + 2.5)
MsgBox "Votre poids idéal selon la formule de Lorentz est de " & lorentz & "kg"
End Sub
' Formule de Monnerot
Public Sub CommandButton3_Click()
PI2 = (taille - 100 + 4 * tour_de_poignet) / 2
MsgBox "Votre poids idéal selon la formule de Monnerot est de " & lorentz & "kg"
End Sub
'Retour
Public Sub CommandButton5_Click()
UserForm2.Hide
Load Userform1
Userform1.Show
End Sub
Private Sub UserForm_Click()
End Sub
MERCI d'avance pour votre aide précieuse
6 réponses
Bonjour,
Pour passer votre Userform Word vers Excel:
Ouvrez le VBA word de votre Userform, reduisez la largeur de la fenetre, mettez la fenetre de Word dans la barre de tache
Ouvrez un nouveau fichier Excel
Ouvrez la VBA Excel (idem Word), reduisez la largeur de la fenetre, mettez la fenetre Excel dans la barre de tache
click sur la fenetre VBA Word, placez la de facon a voir la partie gauche de la fenetre VBA Excel
Click sur l'Userform, maintenez le bouton et glissez de facon a placer l'Userform dans la fenetre VBA Excel (Des que le pointeur souris s'affiche avec une croix dans un carre c'est OK. L'Userform est copiee avec son code.
A+
Pour passer votre Userform Word vers Excel:
Ouvrez le VBA word de votre Userform, reduisez la largeur de la fenetre, mettez la fenetre de Word dans la barre de tache
Ouvrez un nouveau fichier Excel
Ouvrez la VBA Excel (idem Word), reduisez la largeur de la fenetre, mettez la fenetre Excel dans la barre de tache
click sur la fenetre VBA Word, placez la de facon a voir la partie gauche de la fenetre VBA Excel
Click sur l'Userform, maintenez le bouton et glissez de facon a placer l'Userform dans la fenetre VBA Excel (Des que le pointeur souris s'affiche avec une croix dans un carre c'est OK. L'Userform est copiee avec son code.
A+
Merci beaucoup pour cette explication claire et fonctionnelle, d'autres solutions pour les autres questions?
Bonjour,
Sur le code de la userfom 1 on voudrait mettre aussi un message d'erreur si les gens ne renseignent pas leur sexe en ne cliquant ni sur homme ni sur femme? Vous pouvez au lancement de l'UF ne pas afficher le bouton de validation et le faire afficher seulement si une option sexe est valide. Vous pouvez faire de meme si vous voulez avoir un controle de toutes les saisies.
A la limite, pouvez-vous mettre votre fichier sur : https://www.cjoint.com/ copiez le lien cree dans votre prochain post. Je regarderai ce que je peux faire pour vous aider
A+
Sur le code de la userfom 1 on voudrait mettre aussi un message d'erreur si les gens ne renseignent pas leur sexe en ne cliquant ni sur homme ni sur femme? Vous pouvez au lancement de l'UF ne pas afficher le bouton de validation et le faire afficher seulement si une option sexe est valide. Vous pouvez faire de meme si vous voulez avoir un controle de toutes les saisies.
A la limite, pouvez-vous mettre votre fichier sur : https://www.cjoint.com/ copiez le lien cree dans votre prochain post. Je regarderai ce que je peux faire pour vous aider
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
De quoi vous divertir:
https://www.cjoint.com/?BLpqGVQhp8l
Pour les commentaires, je ne saisie pas trop ce que vous voulez puisque vous ne sauvegardez pas les donnees!!!!!!!
A+
De quoi vous divertir:
https://www.cjoint.com/?BLpqGVQhp8l
Pour les commentaires, je ne saisie pas trop ce que vous voulez puisque vous ne sauvegardez pas les donnees!!!!!!!
A+