Encadrer valeurs dans cellule en fonction autre

Résolu
CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   -  
CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   -
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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 345 Date d'inscription   Statut Membre Dernière intervention   1
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention  
 
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 345 Date d'inscription   Statut Membre Dernière intervention   1
 
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 345 Date d'inscription   Statut Membre Dernière intervention   1
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention  
 
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