|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : août 2010 Messages : 28 ![]() |
Bonjour à tous.
Je viens de nouveau soliciter votre aide. J'ai fait un tableau pour les contrats de maintenance et parmi ceux ci, il y en a qui se renouvellent par tacite reconduction. Colonne a = mettre 1 pour un contrat avec tacite reconduction ou 0 sans tacite reconduction. Colonne b= date du début du contrat. Colonne c = date fin du contrat. Je souhaiterais que lorsque la date de la colonne c arrive à terme que la date de la colonne b se remette à la nouvelle date. Exemple colonne a = 1 colonne b = 1/01/2010 colonne c = 31/12/2010 Il faudrait que la colonne b passe au 1/01/2011 le moment venu. J'espère être assez clair dans mon explication et j'attends votre aide avec impatience. Merci à tous. Dominique |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Autodidacte Inscription : mars 2006 Messages : 1 175 ![]() |
Bonjour,
à mon avis, il faut passer par une macro en VBA. L'idée serait: * A l'ouverture du classeur, parcourir la colonne C, à la recherche d'une date qui correspond à la date du jour. * Si un cas est trouvé, alors vérifier dans la colonne A, si elle est à '1' (Tacite reconduction) -> Si "OUI", alors copier la valeur de la colonne C dans la colonne B -> Ajouter 1 an à la valeur de la colonne C En espérant que cela vous aide, @ bientôt...
__________________
@ bientôt... Salut & @+ sur 3W!
|
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 299 ![]() |
Bonjour,
Sauf si tu passes par des cellules intermédiaires, il faut effectivement passer par une macro. Tu pourrais par exemple placer en Colonne A - 1 ou 0 (suivant qu'il y a reconduction) Colonne B - Date début du contrat Colonne C - Périodicité (en mois 12, 6, 3, 1) ou A, S, T, M Colonne D - Date début de la péridoe - (A l'aide de fonction logique et DATEDIF ou DATE, calculer à partir de la date de la colonne B Colonne E - Date de fin de période. D + Périodicité Ainsi tu peux le faire avec les fonctions d'Excel. Bonne journée
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : août 2010 Messages : 28 ![]() |
Bonjour,
Tout d'abord merci d'avoir répondu à mon message. mais je n'y connais pas grand chose en vba et je ne sais comment m'y prendre. Pouvez vous me proposer une macro , tout en m'expliquant afin de comprendre . Merci d'avance Cordialement. |
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 299 ![]() |
Bonjour,
Comme indiqué dans ma réponse, il n'est absolument pas nécessaire de passer par une macro si l'on passe pas une cellule intermédiaire J'ai placé en A1, N° de contrat B1 1ère Date de mise en route du contrat C1 Période (en nombre de mois) D1 Reconduction 1 si tacite 0 si non E1 Début (Date de début du contrat F1 Fin (Date de fin de contrat soit Contrat 1èreDate Période Reconduction Début Fin Fonction à placer en E2 et à recopier vers le bas Attention en J1 Simulation de la date du jour. Remplacer $J$1 par aujourdhui() Code :
=SI(C2;DATE(ANNEE(B2);MOIS(B2)+D2*ENT(DATEDIF(B2;$J$1;"m")/C2)*C2;JOUR(B2));"") Code :
=SI(C2;DATE(ANNEE(E2);MOIS(E2)+C2;JOUR(E2));"")
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : août 2010 Messages : 28 ![]() |
Bonjour,
Merci de votre réponse, je vais tester et je vous tiens au courant de mon avancé. C'est vraiment trés sympa de partager votre savoir. Cordialement. Dominique. |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : août 2010 Messages : 28 ![]() |
Bonjour,
Si j'ai bien compris je remplace dans la formule $J$1 par aujourdhui() Cordialement Dominique. |
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 299 ![]() |
Bonjour Dominique,
Exactement il faut remplacer $J$1 par la date du jour qui est calculée par la fonction AUJOURDHUI() pour les version française et par TODAY() pour les versions anglaise. La cellule $J$1 ne servait que pour faire une simulation d'une date du jour. Code :
=SI(C2;DATE(ANNEE(B2);MOIS(B2)+D2*ENT(DATEDIF(B2;AUJOURDHUI();"m")/C2)*C2;JOUR(B2));"") Bonne journée
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : août 2010 Messages : 28 ![]() |
Bonjour,
Et bien merci de ton aide. Cordialement et bonne fête de fin d'année. Une bonne fête de fin d'année aussi à tous les participants de ce forum et encore merci pour l'aide que vous apportez aux débutant comme moi. Dominique |
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : août 2010 Messages : 28 ![]() |
Bonjour à tous,
Je souhaiterais savoir comment faire pour appliquer une macro en VBA à toutes les feuilles du même classeur, pour éviter de refaire la même macro à chaque feuille du classeur. Merci d'avance pour votre aide. Dominique. |
|
|
00
|
|
|
#11 | ||
|
Membre Expert
![]() Autodidacte Inscription : mars 2006 Messages : 1 175 ![]() |
Bonjour,
dans une macro placée par exemple dans le module ThisWorkbook, vous pouvez écrire quelque chose qui ressemble à cela: Code :
Et lorsque la macro rencontre la feuille qui s'appelle "ouvre", elle force l'affichage des en-têtes. En espérant que cela réponde à votre question...
__________________
@ bientôt... Salut & @+ sur 3W!
|
||
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : août 2010 Messages : 28 ![]() |
Bonjour,
Merci pour ta réponse que je vais m'empresser de tester. Bonne fête de fin d'année. Cordialement Dominique. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com