Encadrer valeurs dans cellule en fonction autre

Résolu/Fermé
CHARLYJACK Messages postés 353 Date d'inscription mardi 19 octobre 2010 Statut Membre Dernière intervention 16 mai 2023 - 9 avril 2018 à 21:12
CHARLYJACK Messages postés 353 Date d'inscription mardi 19 octobre 2010 Statut Membre Dernière intervention 16 mai 2023 - 10 avril 2018 à 18:31
Bonsoir

J'ai une macro qui permet de compléter une cellule de destination en fonction du contenu d une autre (source).

exemple si B7 = particulier alors G7 = A7*20% ...

J'ai donc une macro sur la feuille qui appelle 3 codes différents . ( Particuliers, Prof ...)
et qui complète G7 avec des pourcentages différents et en fonction du montant intégré dans une intputbox.

Le problème c'est que maintenant on me demande de limiter la valeur saisie dans la cellule de destination
si on saisit directement dedans en fonction de la cellule source B7.

Je ne vois pas comment faire !!!

Par avance merci de vos idées.

1 réponse

yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476
9 avril 2018 à 21:23
bonsoir,
ne penses-tu pas que nous pourrions mieux t'aider si tu partageais le code de ta macro?
je crois deviner que quelqu'un (qui?) te demande de ne pas laisser saisir n'importe quelle valeur en G7.
ai-je bien compris?
si oui, cela ne te fait-il pas penser à un exercice récent: Limiter une saisie dans une cellule?
0
CHARLYJACK Messages postés 353 Date d'inscription mardi 19 octobre 2010 Statut Membre Dernière intervention 16 mai 2023 1
Modifié le 9 avril 2018 à 22:07
Bonsoir oui effectivement j'ai essayé d'adapter ta macro mais sans succès.

Je pensais rappeler les mêmes macro mais lorsque la cellule que j'ai nommé "Apport" changeait.

Dans mon fichier j'ai nommé les cellules le G7 était pour tenter d expliquer.

La macro qui appelle les 3 autres :


Private Sub Worksheet_Change(ByVal Target As Range)

ActiveSheet.Unprotect Password:="ttt"

'Variables

Dim Clt As String

'Valeur Variable

Clt = Range("Choix").Value

'Réinitialisation du Choix si Changement de montant

If Not Intersect(Target, Range("Montant")) Is Nothing Then
Range("Choix").Value = "Choix"
End If

'Fixation du pourcentage maximum de la cellule Depot

If Not Application.Intersect(Target, Range("Depot")) Is Nothing Then
If Target > 0.15 Then
Target = 0.15
MsgBox ("Attention au Pourcentage Maximum")
End If
End If

'Appel Macro en fonction de la cellule nommée Choix

If Not Application.Intersect(Target, Range("Choix")) Is Nothing Then

If Clt = "Particulier" Then
Call Apport_Particulier
Else

If Clt = "Pro - de 2 ans" Then
Call Apport_Prof_Moins_2
Else

If Clt = "Pro + de 2 ans" Then
Call Apport_Prof_Plus_2


End If
End If
End If

End If

End Sub

Un exemple de code appelé

Sub Apport_Prof_Plus_2()

'Détermination des Variables

Dim CellApp As Variant
Dim ValLim As Single

'Plafond : Formule utilisée

ValLim = Range("Montant").Value * 0.25

'Boîte de dialogue : Insertion Montant

CellApp = InputBox("Rappel,l’apport maximum autorisé est de 25% soit un montant de " & " " & ValLim & " " & "€ (Insérez le montant en €)", "Pro de + 2 ans")

'Gestion du caractère "."

CellApp = Replace(CellApp, ".", ",")

'Utilisation de annuler : Gestion du msg d'erreur 13 ( Variable Variant )

If CellApp = "" Then Exit Sub

' Renseignement de la cellule G23 (LOA + Crédit Bail)

If IsNumeric(CellApp) And CellApp >= 0 And CellApp <= ValLim Then
Range("Apport").Value = CellApp
Selection.Copy

Else

'Avertissement erreur montant saisi

MsgBox ("Montant supérieur à la limite autorisée")

End If

'Cellules Déselectionnées

Application.CutCopyMode = False

Range("G28").Select
Range("Depot").Value = ("0")
Range("Depot").Locked = True

ActiveSheet.Protect Password:="ttt"

End Sub


Cdt
0
yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476 > CHARLYJACK Messages postés 353 Date d'inscription mardi 19 octobre 2010 Statut Membre Dernière intervention 16 mai 2023
9 avril 2018 à 22:36
tout cela me semble très confus.
la macro que tu montres, est-ce la macro de départ, qui fonctionne bien, ou bien est-ce une tentative de solution du nouveau problème?
je ne vois si B7 ni G7 dans le code de la macro.
0
CHARLYJACK Messages postés 353 Date d'inscription mardi 19 octobre 2010 Statut Membre Dernière intervention 16 mai 2023 1
9 avril 2018 à 23:15
Oui c'est la macro de départ située sur la feuille contenant les cellules à modifier.
Ca marche parfaitement !
Elle appelle 3 macros. ( B7 et G7 c'était juste pour expliquer)

Elles alimentent la cellule "Apport" suivant des formules différentes.

Mon problème c'est de réussir à inverser la logique !

La cellule "Apport" devient la cellule à l'origine des limites quand on saisit directement dedans,
mais reste dépendante de la cellule " choix ".

Je ne vois vraiment pas comment faire ...
0
CHARLYJACK Messages postés 353 Date d'inscription mardi 19 octobre 2010 Statut Membre Dernière intervention 16 mai 2023 1
9 avril 2018 à 23:30
J'ai essayé de te faire un fichier exemple

https://www.cjoint.com/c/HDjvCKCX1aZ

C'est la cellule "Apport" qui doit être complétée, mais qui est limitée en fonction de la cellule "Choix"

Encore merci de ton aide
0
yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476 > CHARLYJACK Messages postés 353 Date d'inscription mardi 19 octobre 2010 Statut Membre Dernière intervention 16 mai 2023
10 avril 2018 à 01:25
eh bien, si tu t'inspires de l'exemple précédent:
If Not Intersect(Target, Range("Apport")) Is Nothing Then 
    ' la cellule "Apport" doit être limitée en fonction de la cellule "Choix"
    If Range("Apport") > Range("Choix") Then
        Range("Apport") = Range("Choix")
    End If
End If 
0