XL 2013 rentrer une date qui s'inscrit dans le calendrier

fregler

XLDnaute Nouveau
Bonjour,

J'aurai besoin d'un petit tips, dans le document joint j'aimerai rentrer la date de fin de projet dans la case et que celle se répercute dans le calendrier en droite en marquant "FIN" avec une mise en forme conditionnelle.

Actuellement c'est l'inverse...

Pouvez-vous m'aider?

Merci.
 

Pièces jointes

  • Calendrier.xlsm
    37.8 KB · Affichages: 30
  • Calendrier.xlsm
    37.8 KB · Affichages: 38

vgendron

XLDnaute Barbatruc
Re : rentrer une date qui s'inscrit dans le calendrier

Hello

en mettant ce bout de code dans l'évènement change de la feuille
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
    'MsgBox Target
    Set ici = Range("CHRONO_DATE").Find(Target)
    Cells(Target.Row, ici.Column) = "FIN"
End If

End Sub
 

fregler

XLDnaute Nouveau
Re : rentrer une date qui s'inscrit dans le calendrier

Merci pour cette réponse rapide.

Par contre si j'ai des colonnes avant ça casse le code?

Je suis en train de construire mon tableau, et il va y avoir 10 colonnes avant avec des descriptions de produit.

Du coup le code ne fonctionne plus...

Merci à toi.
 

Pièces jointes

  • Calendrier V1.xlsm
    44 KB · Affichages: 25

vgendron

XLDnaute Barbatruc
Re : rentrer une date qui s'inscrit dans le calendrier

pour la colonne G avec un test en plus pour voir si la date saisie apparait dans le calendrier

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 7 Then 'colonne G
    'MsgBox Target
    Set ici = Range("CHRONO_DATE").Find(Target)
    If Not ici Is Nothing Then
        Cells(Target.Row, ici.Column) = "FIN"
    Else
        MsgBox ("cette date n'apparait pas dans le planning")
        Target.ClearContents
    End If
End If
Application.EnableEvents = True
End Sub
 

vgendron

XLDnaute Barbatruc
Re : rentrer une date qui s'inscrit dans le calendrier

Et comme je pressens qu'il va falloir gerer le fait qu'on puisse se tromper de date..

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 7 Then 'colonne G
    'effacer le mot FIN d'une date précédente
    Set ancien = Range("CHRONO_DATE").Offset(Target.Row - 4, 0).Find("FIN")
    If Not ancien Is Nothing Then
        ancien.ClearContents
    End If
    'on cherche la position du mot FIN à placer
    Set ici = Range("CHRONO_DATE").Find(Target)
    If Not ici Is Nothing Then
        Cells(Target.Row, ici.Column) = "FIN"
    Else
        MsgBox ("cette date n'apparait pas dans le planning")
        Target.ClearContents
    End If
End If
Application.EnableEvents = True
End Sub
 

fregler

XLDnaute Nouveau
Re : rentrer une date qui s'inscrit dans le calendrier

Génial ! Magique, et encore un truc si possible après je ne t'embête plus...

Si je veux rajouter une colonne PBL (avant livraison) et avoir le même code je fais copier coller du code en changeant la colonne et le Find ("PBL")?

Car j'ai essayé mais erreur ! :(.

Merci beaucoup.
 

Pièces jointes

  • Calendrier V2.xlsm
    45 KB · Affichages: 29

vgendron

XLDnaute Barbatruc
Re : rentrer une date qui s'inscrit dans le calendrier

c'est presque ca. sauf qu'il n'y a qu'une seule macro evenement change..
il faut donc copier colle le code DANS la macro

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 8 Then 'colonne H
    'effacer le mot FIN d'une date précédente
    Set ancien = Range("CHRONO_DATE").Offset(Target.Row - 4, 0).Find("FIN")
    If Not ancien Is Nothing Then
        ancien.ClearContents
    End If
    'on cherche la position du mot FIN à placer
    Set ici = Range("CHRONO_DATE").Find(Target)
    If Not ici Is Nothing Then
        Cells(Target.Row, ici.Column) = "FIN"
    Else
        MsgBox ("cette date n'apparait pas dans le planning")
        Target.ClearContents
    End If
End If

If Target.Column = 7 Then 'colonne G
    'effacer le mot PBL d'une date précédente
    Set ancien = Range("CHRONO_DATE").Offset(Target.Row - 4, 0).Find("PBL")
    If Not ancien Is Nothing Then
        ancien.ClearContents
    End If
    'on cherche la position du mot FIN à placer
    Set ici = Range("CHRONO_DATE").Find(Target)
    If Not ici Is Nothing Then
        Cells(Target.Row, ici.Column) = "PBL"
    Else
        MsgBox ("cette date n'apparait pas dans le planning")
        Target.ClearContents
    End If
End If
Application.EnableEvents = True
End Sub
 

vgendron

XLDnaute Barbatruc
Re : rentrer une date qui s'inscrit dans le calendrier

Hello

Comme c'est Noël ;-)

une V3 pour colorer les cellules entre les mots PBL et FIN..
et comme c'est Noël, en prime.. j'ai ajoutté des tests pour vérifier que la date de PBL est bien AVANT la date de FIN. avec possibilité de passer "outre"

;-)
 

Pièces jointes

  • Calendrier V3.xlsm
    49.5 KB · Affichages: 41

fregler

XLDnaute Nouveau
Re : rentrer une date qui s'inscrit dans le calendrier

Merci !!!

C'est bizarre je n'arrive pas le faire fonctionner. Je suis sur excel 2013 pourtant mais quand je supprime la date PBL et FIN il n'efface pas tout?

Je vais essayer sur un autre poste.

Merci !!!
 

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 862
Membres
103 979
dernier inscrit
imed