En VBA, obliger une valeur à être supérieure ou égale à 4
Bonjour,
Comment faire en sorte que si la variable "Valeur" est inférieure à 4 alors Valeur = 4. C'est à dire qu'entre les nombres 1 et 4 en M14, le chiffre renvoyé sur la feuil1 sera toujours de 4 !
Pendant que la valeur sur la cette feuille ci-dessous, en Feuil3, grade sa véritable valeur, soit ici "2,02" !
Sub M_Sheet_Copie_Calcul_du_Coeff_Muscu()
Dim Nom As String, Sh As Worksheet, F1, F5, c As Range
Set F1 = Feuil1
Set F5 = Feuil5
' Récupérer la valeur de M14 dans Feuil3
Valeur = F5.Range("M14").Value
'se déplacer vers F1 *****************************************************
Nom = Range("Nom_calcul_Muscu").Value
If Len(Nom) = 0 Then
MsgBox "nom est inconnu"
Else
If StrComp(Nom, Range("Nom_Homme").Value, 1) = 0 Then
F1.Range("Q1").Value = Valeur 'valeur calculée pour l'homme
ElseIf StrComp(Nom, Range("Nom_Femme").Value, 1) = 0 Then
F1.Range("R9").Value = Valeur
Else
MsgBox "nom ne correspond pas avec le nom de l'homme ou de la femme", vbCritical: Exit Sub
End If
M_Copie_Muscu 'créer copie de cette feuille
M_RAZ_Muscu (Not c Is Nothing) 'vider les valeurs de cette feuille sans confirmation si nom est connu
Application.GoTo F1.Range("A1")
End If
End SubMerci pour votre aide...
Bonne soirée
sans teste, donc avec l'aide d'Alain Proviste.
' Récupérer la valeur de M14 dans Feuil3
Valeur = Application.Min(Application.Max(4, F5.Range("M14").Value), 99) 'ainsi dans l'intervalle 4-99Alain VERSE, Gérard MENVU aussi fort que toi !!!!
Tu fais toujours le Max IMUM pour Ray ZOUDRE tous mes problèmes en 1 clin d'oeil !!!!!!
Heureusement que tu es Alain TERIEUR de ce forum !!!!!!!!!!!!!!!
Emile MERCI encore !!!
C'est assez tard pour régler ce genre de problèmes, mais dans le module 4, je pouvais te fournir une macro pour l'exchange entre "valeurs éditées" et "valeurs sauvegardées". Par exemple, quand il manque encore certains données, la macro te prévient et ne sauvegarde pas encore.
Pour le moment, j'ai supprimé la valeur du ventre de "Seb" et quand tu lance la macro "testing" et tu choisis "H" , la macro vous dit qu'il manque des choses. Juste pour le teste, je n'ai pas encore modifié des choses dans les autres modules.
C'est une super idée !!! C'est pour ça que tu parlais de la cellule N4 tout à l'heure
Comme ça, les personnes rectifient les valeurs manquantes
J'ai regardé le module 4... Tu as écrit tout ça en quelques petites minutes ?
J'ai testé ==> Cool !!!
J'ai juste un petit souci avec "HISTORIQUE" car quand je tape un prénom, j'obtiens l'historique, pas de souci, mais si dans la foulée, je veux saisir un autre prénom, j'ai un message bloquant m'écrivant que la feuille est protégée.
Ca vient certainement du fait qu'il faudrait bloquer la feuille (".Protect") un peu plus tard dans la macro "Worksheet_SelectionChange"...
Qu'en penses-tu ?
'---Cache l'image et affiche les tableaux----------------------------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Me
If .ProtectContents And .ProtectDrawingObjects Then .Protect DrawingObjects:=False 'dans une feuille protégée permettre de modifier des objects
If Not Intersect(Target, Range("P3")) Is Nothing Then
Me.Shapes("MonCamera").Visible = False
Me.Shapes("ZoneTexte 1").Visible = True
Me.Shapes("ZoneTexte 10").Visible = True
Me.Shapes("ZoneTexte 8").Visible = True
Me.Shapes("ZoneTexte 12").Visible = True
Me.Shapes("Image 17").Visible = True
Me.Shapes("Image 19").Visible = True
End If
If Not Intersect(Target, Range("O2")) Is Nothing Then
Prenom = InputBox("Consultation de l'historique de :", "Historique des mensurations", Prenom)
If Prenom <> "" Then Extraction_Valeurs
End If
.Protect
End With
End SubMerci Bart'