Blocage de date (AUJOURDHUI)

Résolu
Bonjour,

Je souhaiterai qu'une céllule qui défile en fonction des jours restant entre aujourdhui et une date, cesse de défilé mais affiche le dernier délai restant lorsqu'une autre céllule affiche 100%

Voici le fichier exemple avec l'explication.

https://www.cjoint.com/?CFrpW3Qocer
--
_____________________________
Maman m'a dit un jour :"Travaille bien à l'école et tu auras un bon métier".
Aujourd'hui j'ai compris ce qu'elle a voulu me dire et je rêve de passer ma vie a l'école...

15 réponses

  1. cette macro va agir dès l'ouverture du classeur; donc à chaque changement de date
    Private Sub Auto_Open()
    For Each Element In Range("L3:L10")
    If Element.Offset(0, -1).Value < 1 Then Element.Value = Element.Offset(0, -9).Value - Range("O3").Value
    Next
    End Sub

    supprimez la macro précédente de la feuille "Remontées et infos"
    faites insérer un module et collez la nouvelle macro dans ce module

    essayez
    1
    1. Bonjour

      Essayez ceci

      à copier dans le module de la feuille "Remontées et infos"

      Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Address <> "$O$3" Then Exit Sub
      For Each Element In Range("L3:L10")
      If Element.Offset(0, -1).Value < 1 Then Element.Value = Element.Offset(0, -9).Value - Target.Value
      Next
      End Sub

      cdlt
      0
      1. Tu pm'expliquer comment je dois proceder car je ne sais absolument pas travailler sous vba avec excel :(
        0
    2. bonjour

      Pour pouvoir utiliser le VBA (extrait de l'aide de MSoffice)
      Vous devez afficher l'onglet Développeur ou exécuter le mode développeur pour écrire des macros, exécuter des macros enregistrées au préalable ou créer des applications à utiliser avec les programmes Microsoft Office.
      Procédez comme suit dans Excel
      Cliquez sur le bouton Microsoft Office Image du bouton, puis sur Options Excel,
      Cliquez sur Standard, puis activez la case à cocher Afficher l'onglet Développeur dans le ruban.


      cliquez sur le nouvel onglet développeur dans le ruban
      cliquez sur Visual basic
      dans la fenêtre de gauche, cliquez sur la feuille "Remontées et infos" et y copier le petit bout de programme
      Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Address <> "$O$3" Then Exit Sub
      For Each Element In Range("L3:L10")
      If Element.Offset(0, -1).Value < 1 Then Element.Value = Element.Offset(0, -9).Value - Target.Value
      Next
      End Sub

      bonne journée
      cdlt
      0
      1. Ca ne fonctionne pas hier le 17 les deux première ligne etaient a 100% et 164 jour restant et aujourd'hui le 18 elle aurraient du rester a 164 et ne pas descendre a 163 puisque la cellule d'avant est a 100%
        0
        1. Enfait je veux figer la céllule qui contient la formule de calcul du nombre de jour entre aujourdhui et la date de fin (qui défile chaque jour) lorsque le % d'avancement atteind 100%

          0
          1. nous avons envoyez notre précédent post en même temps, donc vous n'avez pas vu ma réponse

            j'avais bien compris qu'il fallait figer le nombre de jours, fonctionnement de la macro.
            si les 100% ne sont pas atteint, on applique la formule
            si les 100% sont atteint, on fige la valeur
            https://www.cjoint.com/?CFsilCO3SRG
            0
            1. Contributeur
              Bonjour Frenchie83,

              Je ne pense pas que ta macro puisse fonctionner car tu testes la cellule "$O$3" dont la formule donne la date du jour et la macro "change" ne se déclenche que lorsque la cellule est modifiée : dans ce classeur, la cellule change de valeur mais n'est pas modifiée.
              0
          2. oki je vais essayer et si cela fonctionne pour l'appliquera mon fichier de base il faut que je modifi quelque chose ? sachant que la structure le nombre de données est différent
            0
            1. Ca ne fonctionne pas la macro HELP SVP.
              frenchi toi ca fonctionne car tu as remplacé la formule dans le fichier par la valeur que je voulais donc c'est sur que ca fonctionne sauf que moi je veux que ca se fasse tout seul
              0
              1. Bonjour gbinforme

                Effectivement, pour faire les tests, j'ai écrasé la formule en O3 "=aujourdhui()", et je changeai les dates à la main, ce qui dans ce cas là fonctionnait bien.
                Donc le problème se pose à nouveau. Peut-être qu'il faudra prévoir une colonne supplémentaire qui conserve la date et faire un autre test. je vais y réfléchir à moins que quelqu'un est une autre idée?
                0
                1. Non ca fonctionne pas il me modifie les cellules il en fige certaines mais pas toute et j'aimerai que lorsque je change le pourcentage pour le mettre en dessous 100% que le compteur reprenne enfaite. c'est vraiment figer le compteur lorsque c'est 100% en figeant la formule mais lorsque le % et modifié que la formule reprenne.
                  0
                  1. UP SVP
                    0
                    1. j'ai un souci, je n'arrive plus à voir les suites de la discussion au delà de ce post (même ce que j'ai envoyé juste après), alors que j'arrive à voir les autres discussions, si quelqu'un peut m'éclairer sur mon problème
                      merci
                      0
                  2. essayez ceci

                    à copier dans la feuille "Remontées et infos"
                    Private Sub Worksheet_Change(ByVal Target As Range)
                    If Target.Column <> 12 Or Target.Row > 18 Or Target.Row < 13 Then Exit Sub
                    MiseAJour
                    End Sub

                    Sub MiseAJour()
                    For Each Element In Range("L3:L10")
                    If Element.Offset(0, -1).Value < 1 Then
                    Element.Value = Element.Offset(0, -9).Value - Range("O3").Value
                    Element.Interior.ColorIndex = 6
                    End If
                    Next
                    Application.EnableEvents = True
                    End Sub

                    et conserver la macro du module 1
                    0
                    1. peux tu le faire dans le fichier et me le renvoyer parc eque je viens de le faire et ca ne fonctionne pas et je sais pas si je fais correctement.
                      0