chris6999
XLDnaute Impliqué
Bonjour
Mon message d'hier n'ayant trouvé aucune réponse j'essaye de reformuler mon problème en espérant être plus claire et peut-être avoir plus de succés.
J'essaye vainement de rédiger une macro comme je le ferais pour une fonction avec des SI imbriqués.
Je pars de la macro de type
Private Sub Worksheet_Change(ByVal Target As Range)
Lorsqu'une date est saisie dans la colonne 7 (ou g)
La macro positionne la date + 30 jours dans la colonne 0
Dans le cas où la colonne 7 est vide le contenu de 0 est supprimé
Jusque là j'ai trouvé cela pourrait donner :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 Then
‘Si cellule dans colonne 7 est vide
If Target.Value = "" Then
‘Supprime le contenu des cellules m, n et o.
Range("m" & Target.Row & ":n" & Target.Row & "" & Target.Row & "" & Target.Row).ClearContents
Else
‘positionne dans O la valeur de la cellule colonne 7 + 30Range("o" & Target.Row) = Cells(Target.Row, 7).Value + 30
End If
End If
end sub
Mais ce n'est pas tout! et là ça se corse :
Je voudrais ajouter des évènements complémentaires (toujours sur la saisie liée à la colonne 7) mais je bute sur la rédaction de mes conditions et l’enchainement avec le début du code
Les conditions et résultats attendus sont les suivants :
-Si la date remontée dans O est supérieure à la date du jour
et que la cellule de la colonne T est vide
alors la macro positionne dans la colonne P le texte « HORS DELAIS »
-Si la différence entre la date qui remonte dans O et la date du jour est inférieure à 6 alors
jour et que la cellule de la colonne T est vide
alors la macro positionne le texte « vite » dans P
Je précise que je ne veux pas de fonctions dans mon fichier ( ce qui est le cas aujourd’hui)
Je suis sûre qu’il existe une possibilité mais elles ne sont pas à ma portée de connaissance à priori (qui n’est pas trèx élevé en VBA il faut bien l’avouer..) .
Je mets un fichier test en pièce jointe
J espère qu’une âme charitable pourra m’aider
Bonne soirée
Mon message d'hier n'ayant trouvé aucune réponse j'essaye de reformuler mon problème en espérant être plus claire et peut-être avoir plus de succés.
J'essaye vainement de rédiger une macro comme je le ferais pour une fonction avec des SI imbriqués.
Je pars de la macro de type
Private Sub Worksheet_Change(ByVal Target As Range)
Lorsqu'une date est saisie dans la colonne 7 (ou g)
La macro positionne la date + 30 jours dans la colonne 0
Dans le cas où la colonne 7 est vide le contenu de 0 est supprimé
Jusque là j'ai trouvé cela pourrait donner :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 Then
‘Si cellule dans colonne 7 est vide
If Target.Value = "" Then
‘Supprime le contenu des cellules m, n et o.
Range("m" & Target.Row & ":n" & Target.Row & "" & Target.Row & "" & Target.Row).ClearContents
Else
‘positionne dans O la valeur de la cellule colonne 7 + 30Range("o" & Target.Row) = Cells(Target.Row, 7).Value + 30
End If
End If
end sub
Mais ce n'est pas tout! et là ça se corse :
Je voudrais ajouter des évènements complémentaires (toujours sur la saisie liée à la colonne 7) mais je bute sur la rédaction de mes conditions et l’enchainement avec le début du code
Les conditions et résultats attendus sont les suivants :
-Si la date remontée dans O est supérieure à la date du jour
et que la cellule de la colonne T est vide
alors la macro positionne dans la colonne P le texte « HORS DELAIS »
-Si la différence entre la date qui remonte dans O et la date du jour est inférieure à 6 alors
jour et que la cellule de la colonne T est vide
alors la macro positionne le texte « vite » dans P
Je précise que je ne veux pas de fonctions dans mon fichier ( ce qui est le cas aujourd’hui)
Je suis sûre qu’il existe une possibilité mais elles ne sont pas à ma portée de connaissance à priori (qui n’est pas trèx élevé en VBA il faut bien l’avouer..) .
Je mets un fichier test en pièce jointe
J espère qu’une âme charitable pourra m’aider
Bonne soirée
Pièces jointes
Dernière édition: