Forcer l'entré d'une valeur avec une conditionnel
Résolu/Fermé
Philippe_affaires_reg
Messages postés
5
Date d'inscription
jeudi 6 octobre 2016
Statut
Membre
Dernière intervention
7 octobre 2016
-
6 oct. 2016 à 22:36
Philippe_affaires_reg Messages postés 5 Date d'inscription jeudi 6 octobre 2016 Statut Membre Dernière intervention 7 octobre 2016 - 7 oct. 2016 à 15:17
Philippe_affaires_reg Messages postés 5 Date d'inscription jeudi 6 octobre 2016 Statut Membre Dernière intervention 7 octobre 2016 - 7 oct. 2016 à 15:17
A voir également:
- Forcer l'entré d'une valeur avec une conditionnel
- Forcer demarrage pc - Guide
- Forcer suppression fichier - Guide
- Forcer la reinitialisation pc - Guide
- Forcer à quitter windows - Guide
- Formatage conditionnel excel - Guide
4 réponses
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
524
7 oct. 2016 à 07:01
7 oct. 2016 à 07:01
Bonjour à tous,
Avec VBA, les dates sont examinées à l'ouverture du fichier par la procédure Workbook_Open() et le statut est basculé à l'état "À RENOUVELER" 90 jours avant la date de péremption.
Pour visualiser la procédure :
Appuyer sur alt + F11 pour ouvrir l'éditeur,
Appuyer sur ctrl + R pour ouvrir l'explorateur de projets,
Double-clic sur le module ThisWorkBook
https://www.cjoint.com/c/FJhfatiMoDM
A+
Avec VBA, les dates sont examinées à l'ouverture du fichier par la procédure Workbook_Open() et le statut est basculé à l'état "À RENOUVELER" 90 jours avant la date de péremption.
Pour visualiser la procédure :
Appuyer sur alt + F11 pour ouvrir l'éditeur,
Appuyer sur ctrl + R pour ouvrir l'explorateur de projets,
Double-clic sur le module ThisWorkBook
Private Sub Workbook_Open()
Dim Cel As Range
With Worksheets("Feuil1")
For Each Cel In .Range("J2", .Range("J" & Rows.Count).End(xlUp))
If (Cel.Value - Date) <= 90 Then Cel.Offset(, -1) = "À RENOUVELER"
Next Cel
End With
End Sub
https://www.cjoint.com/c/FJhfatiMoDM
A+
Raymond PENTIER
Messages postés
58797
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
3 janvier 2025
17 263
6 oct. 2016 à 23:47
6 oct. 2016 à 23:47
Bonjour.
En résumé, dans la colonne I:I on devrait pourvoir entrer un choix soit par une formule (avec L:L-90), soit par liste déroulante de cellule ?
En résumé, dans la colonne I:I on devrait pourvoir entrer un choix soit par une formule (avec L:L-90), soit par liste déroulante de cellule ?
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
Modifié par eriiic le 7/10/2016 à 00:30
Modifié par eriiic le 7/10/2016 à 00:30
Bonjour,
sans vba ça parait être mission impossible.
Une MFC rouge ne te suffit pas ? En plus ça attire plus l'oeil qu'un libellé qui change.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
sans vba ça parait être mission impossible.
Une MFC rouge ne te suffit pas ? En plus ça attire plus l'oeil qu'un libellé qui change.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Philippe_affaires_reg
Messages postés
5
Date d'inscription
jeudi 6 octobre 2016
Statut
Membre
Dernière intervention
7 octobre 2016
7 oct. 2016 à 14:33
7 oct. 2016 à 14:33
Malheureusement j'ai besoin du statut car celui-ci est ensuite repris dans des tableaux croisés dynamique afin de sortir des statistiques trimestrielles sur les différents enregistrements.
Je crois que la solution VBA sera un incontournable.
Merci.
Je crois que la solution VBA sera un incontournable.
Merci.
Raymond PENTIER
Messages postés
58797
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
3 janvier 2025
17 263
7 oct. 2016 à 01:25
7 oct. 2016 à 01:25
Si j'ai bien compris ton explication, il existe une solution, mais qui ne donne pas entièrement satisfaction :
Saisir en I:I la formule =SI(J:J-AUJOURDHUI()<90;"A RENOUVELER";"")
cette même colonne ayant déjà ta liste déroulante de cellule, qui assure une validation des données.
Tant que rien n'est saisi en I:I la formule fonctionne parfaitement ; dès qu'un statut est ajouté, il écrase la formule ; même si on supprime ce statut, la formule a disparu ; il faudrait la recopier ...
Aussi je te conseille d'utiliser 2 colonnes distinctes, une avec tes statuts, l'autre avec la formule.
https://www.cjoint.com/c/FJgxy4YKLWM
Saisir en I:I la formule =SI(J:J-AUJOURDHUI()<90;"A RENOUVELER";"")
cette même colonne ayant déjà ta liste déroulante de cellule, qui assure une validation des données.
Tant que rien n'est saisi en I:I la formule fonctionne parfaitement ; dès qu'un statut est ajouté, il écrase la formule ; même si on supprime ce statut, la formule a disparu ; il faudrait la recopier ...
Aussi je te conseille d'utiliser 2 colonnes distinctes, une avec tes statuts, l'autre avec la formule.
https://www.cjoint.com/c/FJgxy4YKLWM
Philippe_affaires_reg
Messages postés
5
Date d'inscription
jeudi 6 octobre 2016
Statut
Membre
Dernière intervention
7 octobre 2016
7 oct. 2016 à 14:32
7 oct. 2016 à 14:32
Merci bien Raymond. J'avais déjà pensé à cette idée mais comme le statut est ensuite utilisé dans plusieurs différents tableaux croisés dynamique, le fait d'ajouter une colonne commençait à alourdir un peu mes tableaux.
Merci et profite bien de ta retraite ;-)
Merci et profite bien de ta retraite ;-)
7 oct. 2016 à 14:29
La formule VBA provoque donc l'erreur 13 car il n'y a pas de date partout.
Est-ce qu'il y a une solution à ce problème?
En te remerciant.
7 oct. 2016 à 14:53
A+
7 oct. 2016 à 15:17
Bon c'est un peu long à processer... considérant que j'ai plus de 600 lignes mais ça fonctionne.
Merci pour mon initiation à VBA.
Bonne fin de journée.