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

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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
    1. 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
    2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > 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
    3. 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
    4. 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
    5. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > 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