copie d'une vba( date figée) sur plusieurs colonnes + calcul de délai

mili11

XLDnaute Nouveau
Bonjour, je suis débutante dans l'utilisation des vba sur excell et aurai donc besoin d'aide.
aprés avoir cherché longuement sur le net j'ai enfin trouvé la formule dont j'avais besoin ( appliquer une date figée lorsque la cellule à côté est remplie)
mais souhaiterai l'appliquer sur une autre colonne de ma feuille excell
voici le code ( grand merci à la personne ayant posté cette aide-cyril 91640 ) :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Columns("d")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
Target.Offset(0, 1) = Now
End If
End Sub

j'aimerai que ce code s'applique également sur plusieurs autres colonnes de mon fichier par exemple colonne " i" ( pour la date de fin )
comment ajouter ces contraintes à ce code ? j'ai essayé des " ;" des "(" aprés le "Columns("d")) mais rien ne fonctionne.

de plus et pour finaliser mon tableau si c'est possible je souhaiterai appliquer une colonne ( dans mon fichier , colonne G) qui prendrai donc en compte ma date initiale (colonne E) , le délai appliqué (colonne f).
une simple formule ( =E14+F14) ne fonctionne pas car ne prends pas en compte les heures et jours ouvrés.
pourriez vous m'aider ?
merci d'avance
 

Pièces jointes

  • date-délai1.xlsm
    45.9 KB · Affichages: 33

Theze

XLDnaute Occasionnel
Re : copie d'une vba( date figée) sur plusieurs colonnes + calcul de délai

Bonsoir,

Pour le code, il te faut utiliser la fonction Union() (union de Range) :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Application.Intersect(Target, Union(Columns("D"), _
                                               Columns("I"))) Is Nothing Then
        
        If Target.Count > 1 Then Exit Sub
        
        Target.Offset(0, 1) = Now
        
    End If
    
End Sub
Pour la formule, il faut tout d'abords que tu sache comment Excel calcule les dates.
Pour Excel, une journée est représentée par 1 donc, une heure est la 24ème partie de 1 soit h=1/24 donc, ta formule doit être :
Code:
=E14+F14/24

Hervé.
 

Theze

XLDnaute Occasionnel
Re : copie d'une vba( date figée) sur plusieurs colonnes + calcul de délai

Re,

Code que tu peux simplifier de cette façon :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

    'pas nécessaire d'aller plus loin si plus d'un cellule
    If Target.Count > 1 Then Exit Sub

    If Not Intersect(Target, _
                     Range("D:D,I:I")) Is Nothing Then

        Target.Offset(0, 1) = Now

    End If

End Sub

Hervé.
 

mili11

XLDnaute Nouveau
Re : copie d'une vba( date figée) sur plusieurs colonnes + calcul de délai

Bonjour, hervé merci beaucoup pour ton aide. le code simplifié fonctionne parfaitement. pour le calcul de délai cela fonctionne également. Néanmoins j'aimerai qu'il prenne en compte les heures et jours ouvrés je vais chercher davantage sur le forum. merci encore pour le temps accordé à mon problème bonne journée.
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16