Blocage de date (AUJOURDHUI)
Résolu
Besoindaide83
Messages postés
118
Date d'inscription
Statut
Membre
Dernière intervention
-
Besoindaide83 Messages postés 118 Date d'inscription Statut Membre Dernière intervention -
Besoindaide83 Messages postés 118 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Blocage de date (AUJOURDHUI)
- Blocage messenger - Guide
- Airpods 3 date de sortie - Guide
- Publipostage date inversée ✓ - Forum Word
- Blocage smtp sortant - Forum Freebox
- Blocage leboncoin ✓ - Forum Services en ligne
15 réponses
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
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
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
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
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
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
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%
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Revoici le fichier, chez moi il fonctionne correctement
https://www.cjoint.com/?CFsilCO3SRG
essayez et on en reparle
https://www.cjoint.com/?CFsilCO3SRG
essayez et on en reparle
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%
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
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
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
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
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
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?
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?
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.
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
à 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