Macro date du jour avec 2 conditions

Bonsoir,

Outre les exercices on m'a remonté un problème ce jour sur un fichier mis en place très récemment.

Le principe est simple, dès qu'on saisie ou colle des valeurs dans la colonne A , la date du jour s'affiche en colonne I.

la formule que j'utilise est la suivante

=SI(A2="";"";SI(I2="";AUJOURDHUI();I2))

et j'active le calcul itératif.

Le problème c'est qu'en l'utilisant, ils doivent ouvrir plusieurs classeurs en même temps, et le calcul itératif se trouve décocher.

Ce fichier est ensuite importer dans un autre classeurs par une macro qui fait copier/collage spécial valeur

J'ai supprimé la colonne de date d'enregistrement dans le fichier Fred35 date et je souhaiterai qu'une macro me mette une date dans le fichier qui importe en colonne I si la colonne A est différente de vide et la colonne I = vide.

(la tableau prend 3 ou 4 ligne par jour).

16fred-35-date.zip (5.26 Ko)

Bonjour,

Et si, tu envisageais ceci dans tes modules de feuilles concernées:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then Target.Offset(0, 8) = Date

End Sub

Cdlt

Bonjour Jean Eric et merci de m'accorder un peu de temps

Dans les fichiers en pièce jointes, si tu mets la macro dans Feuil1 de "Fred35 date import.xls"

Cette solution ne fonctionne que lorsque je saisie des données en A1.

Quand je les importes, la date s'affiche de I2 à P39.

Tous les jours des opérateurs vont saisir 3 à 4 lignes dans "Fred 35 date.xls"

et tous les jours, il y a une importation vers "Fred35 date import.xls"

Donc le but serait que la date ne soit pas modifiée si dans la colonne A et I il y a déjà des données

mais que pour les nouvelles données importés.

je pensais à une autre solution

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Cells(Target.Row, 9).Value = Date
End If
End Sub

Cette macro fonctionne si je saisie ligne par ligne.

Mais si j'importe plusieurs ligne en même temps, la date ne se place qu'en I2

Je ne prend peut être pas le problème dans le bon sens.

en combinant la solution de jean-éric à la mienne

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A39")) Is Nothing Then Cells(Target.Row, 9).Value = Date
End Sub

La date s'affiche bien uniquement dans la colonne I mais seulement en I2 quand j'importe les données...

En abordant le problème différemment, peut être qu'il serait plus judicieux d'importer uniquement les nouvelles données

comme ça la date ne changera pas pour les données des jours précédent.

Ceci dit, ça ne change rien à mon problème d'affichage de date qui coince...

Re,

Si je dois résumer ce que j'avais compris :

les opérateurs documentent le fichier "Fred 35 Date", réinitialisé tous les jours.

----> pas de formules pour la date du jour dans ce fichier (Worksheet_Change gère le truc)

En fin de journée, on exporte les données "Fred 35 Date" dans "Fred 35 date import".

----> ce dernier fichier étant une sauvegarde...

C'est pour cela que j'ai pensé à Worksheet_Change = pas de formules

Me trompe je?

C'est exactement ça, si ce est que ce fichier est réinitialisé que tous les mois.

etant donné que je ne peux agir comme je le souhaite sur le fichier Fred35 Date.xls du fait qu'il est partagé, pas de macro, pas de tcd, etc... je me suis dit que j'allais agir directement sur le fichier qui rapatrie ces données.

Donc si j'arrive a exporter uniquement les lignes inexistante dans fred35 import.xls, il ne restera que la date d'enregistrement à régler.

C'est toujours plus compliqué avec les fichiers partagé du fait du grand nombre de restriction

Rechercher des sujets similaires à "macro date jour conditions"