OVH Cloud OVH Cloud

Comparer des dates

6 réponses
Avatar
Grégory
Bonjour,

Je sollicite une fois de plus votre aide bien précieuse!

Ma macro du moment vise à suivre (détecter + archiver) les évolutions d'un
fichier que je reçois chaque semaine. Pour simplifier, disons que j'ai un
"fichier à analyser" (FA) et une "Base de Données" (BDD).

Chaque ligne de ma BDD correspond à une ref. se trouvant dans le FA (si elle
n'a pas été supprimée!).
A chaque réception du FA, je prend 1 ref. puis la recherche dans ma BDD. Si
je la trouve, je compare 1 à 1 le stricte contenu des cellules de ces 2
lignes (1 ligne = 1 ref. dans un fichier) pour détecter d'éventuelles modif.
Je boucle jusqu'à avoir atteint la dernière ref. du FA.

Voilà pour l'algo. Seul pb, certaines de ces cellules contiennent des dates.
Ce fichier venant du Japon, je prend la précaution de convertir les dates à
mon format en utilisant l'instruction:

Selection.NumberFormat = "m/d/yyyy"

Malgré cela, certaines dates sont détectées comme ayant été modifiées alors
que mon historique me montre qu'elles sont "apparemment" identiques. J'ai mis
en place un debugger qui met en face les deux dates (si elles sont détectées
comme différentes) mais RAS...
Y a-t-il une comparaison particulière à effectuer???
D'avance merci pour votre aide!

Greg

6 réponses

Avatar
Jacky
Bonjour,

Une solution peut-être:
1-Dans une cellule vierge :entrer 1 (un)
2-Copier cette cellule
3-Sélection de la plage des dates
3-Collage spécial>>Multiplication

Salutations
JJ

"Grégory" a écrit dans le message de
news:
Bonjour,

Je sollicite une fois de plus votre aide bien précieuse!

Ma macro du moment vise à suivre (détecter + archiver) les évolutions d'un
fichier que je reçois chaque semaine. Pour simplifier, disons que j'ai un
"fichier à analyser" (FA) et une "Base de Données" (BDD).

Chaque ligne de ma BDD correspond à une ref. se trouvant dans le FA (si
elle

n'a pas été supprimée!).
A chaque réception du FA, je prend 1 ref. puis la recherche dans ma BDD.
Si

je la trouve, je compare 1 à 1 le stricte contenu des cellules de ces 2
lignes (1 ligne = 1 ref. dans un fichier) pour détecter d'éventuelles
modif.

Je boucle jusqu'à avoir atteint la dernière ref. du FA.

Voilà pour l'algo. Seul pb, certaines de ces cellules contiennent des
dates.

Ce fichier venant du Japon, je prend la précaution de convertir les dates
à

mon format en utilisant l'instruction:

Selection.NumberFormat = "m/d/yyyy"

Malgré cela, certaines dates sont détectées comme ayant été modifiées
alors

que mon historique me montre qu'elles sont "apparemment" identiques. J'ai
mis

en place un debugger qui met en face les deux dates (si elles sont
détectées

comme différentes) mais RAS...
Y a-t-il une comparaison particulière à effectuer???
D'avance merci pour votre aide!

Greg


Avatar
Grégory
Bonjour,

Merci pour votre réponse.
Malheureusement, cela ne fonctionne toujours pas...
J'ai également essayé de copier la date dans une cellule et en la formatant
avant de la comparer à l'ancienne date, sans succès.

Voilà l'unique que je rencontre désormais: la nouvelle date (provenant du
FA) est affichée dd/mm/yyyy (ce que je souhaite) mais est interprêtée comme
mm/dd/yyyy par ma macro!!!!

Comment parvenir à inverser mois et jours sachant que la transformation
systématique est exclue car:
- ce "bug" ne se produit pas sur toutes les dates...,
- toutes les dates du FA ne sont pas au même format (mélange de dd/mm/yy,
dd/mm/yyyy, dd-mm-yy...)

Au secours,

Grégory


Bonjour,

Une solution peut-être:
1-Dans une cellule vierge :entrer 1 (un)
2-Copier cette cellule
3-Sélection de la plage des dates
3-Collage spécial>>Multiplication

Salutations
JJ

"Grégory" a écrit dans le message de
news:
Bonjour,

Je sollicite une fois de plus votre aide bien précieuse!

Ma macro du moment vise à suivre (détecter + archiver) les évolutions d'un
fichier que je reçois chaque semaine. Pour simplifier, disons que j'ai un
"fichier à analyser" (FA) et une "Base de Données" (BDD).

Chaque ligne de ma BDD correspond à une ref. se trouvant dans le FA (si
elle

n'a pas été supprimée!).
A chaque réception du FA, je prend 1 ref. puis la recherche dans ma BDD.
Si

je la trouve, je compare 1 à 1 le stricte contenu des cellules de ces 2
lignes (1 ligne = 1 ref. dans un fichier) pour détecter d'éventuelles
modif.

Je boucle jusqu'à avoir atteint la dernière ref. du FA.

Voilà pour l'algo. Seul pb, certaines de ces cellules contiennent des
dates.

Ce fichier venant du Japon, je prend la précaution de convertir les dates
à

mon format en utilisant l'instruction:

Selection.NumberFormat = "m/d/yyyy"

Malgré cela, certaines dates sont détectées comme ayant été modifiées
alors

que mon historique me montre qu'elles sont "apparemment" identiques. J'ai
mis

en place un debugger qui met en face les deux dates (si elles sont
détectées

comme différentes) mais RAS...
Y a-t-il une comparaison particulière à effectuer???
D'avance merci pour votre aide!

Greg







Avatar
Modeste
Bonsour® Grégory avec ferveur ;o))) vous nous disiez :

Voilà pour l'algo. Seul pb, certaines de ces cellules contiennent des
dates.
Ce fichier venant du Japon, je prend la précaution de convertir les dates
à
mon format en utilisant l'instruction:
Selection.NumberFormat = "m/d/yyyy"
Malgré cela, certaines dates sont détectées comme ayant été modifiées
alors
que mon historique me montre qu'elles sont "apparemment" identiques.


comme tu ne nous précises pas le format du fichier à analyser et que pour un
fichier .xls ne se poserait pas
je suppose que l'import à lieu via un fichier texte, ou délimité...

lors de l'ouverture Excel se débrouille automatiquement pour interpréter les
dates,
du fait de ce procédé automatique ...
il est trop tard pour intervenir le mal est fait :-(((

sachant que par ailleurs pour VBA toutes les dates sont interprétées au
format US

c'est donc au moment de l'import qu'il faut intervenir
soit lors de l'openfiletext en spécifiant le parametre local:=true
soit en utilisant l'assistant d'importation et en précisant à la troisième
étape et pour le champ considéré le format lu ,
dans ce cas MJA
nb:
L'assistant d'importation ne se lance pas avec les fichiers csv, il faut le
renommer en .txt

voir d'autres explications sur Excelabo.net
http://www.excelabo.net/xl/dates.php#importationdates

--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr

Avatar
Grégory
Bonjour,

Effectivement j'ai oublié de parler des formats des fichiers... ce sont tous
les 2 des fichiers Excel (je n'utilise pour l'instant VB qu'avec Excel alors
à chaque fois ça me semble sous-entendu!).

J'ai suivi ton info et ai donc précisé "Local:=True" lors de l'ouverture de
mon fichier:
Workbooks.Open Filename:=File, Local:=True
... mais cela ne change rien.

Certaine dates, même après conversion en dd/mm/yyyy sont toujours
interprêtées en mm/dd/yyyy...

Y a-t-il une solution?

D'avance merci!

Grégory


Bonsour® Grégory avec ferveur ;o))) vous nous disiez :

Voilà pour l'algo. Seul pb, certaines de ces cellules contiennent des
dates.
Ce fichier venant du Japon, je prend la précaution de convertir les dates
à
mon format en utilisant l'instruction:
Selection.NumberFormat = "m/d/yyyy"
Malgré cela, certaines dates sont détectées comme ayant été modifiées
alors
que mon historique me montre qu'elles sont "apparemment" identiques.


comme tu ne nous précises pas le format du fichier à analyser et que pour un
fichier .xls ne se poserait pas
je suppose que l'import à lieu via un fichier texte, ou délimité...

lors de l'ouverture Excel se débrouille automatiquement pour interpréter les
dates,
du fait de ce procédé automatique ...
il est trop tard pour intervenir le mal est fait :-(((

sachant que par ailleurs pour VBA toutes les dates sont interprétées au
format US

c'est donc au moment de l'import qu'il faut intervenir
soit lors de l'openfiletext en spécifiant le parametre local:=true
soit en utilisant l'assistant d'importation et en précisant à la troisième
étape et pour le champ considéré le format lu ,
dans ce cas MJA
nb:
L'assistant d'importation ne se lance pas avec les fichiers csv, il faut le
renommer en .txt

voir d'autres explications sur Excelabo.net
http://www.excelabo.net/xl/dates.php#importationdates

--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr






Avatar
michdenis
Bonjour Grégory,

Pourquoi ne publies-tu pas la procédure que tu utilises ici ?

Quand tu ouvres ton fichier est-ce que l'ensemble (toutes) de tes dates
est perçu comme des entrées numériques ?

Tu peux toujours publier un petite section de ta base de donnée et
de ta procédure ici . http://cjoint.com/


Salutations!





"Grégory" a écrit dans le message de news:
Bonjour,

Effectivement j'ai oublié de parler des formats des fichiers... ce sont tous
les 2 des fichiers Excel (je n'utilise pour l'instant VB qu'avec Excel alors
à chaque fois ça me semble sous-entendu!).

J'ai suivi ton info et ai donc précisé "Local:=True" lors de l'ouverture de
mon fichier:
Workbooks.Open Filename:=File, Local:=True
... mais cela ne change rien.

Certaine dates, même après conversion en dd/mm/yyyy sont toujours
interprêtées en mm/dd/yyyy...

Y a-t-il une solution?

D'avance merci!

Grégory


Bonsour® Grégory avec ferveur ;o))) vous nous disiez :

Voilà pour l'algo. Seul pb, certaines de ces cellules contiennent des
dates.
Ce fichier venant du Japon, je prend la précaution de convertir les dates
à
mon format en utilisant l'instruction:
Selection.NumberFormat = "m/d/yyyy"
Malgré cela, certaines dates sont détectées comme ayant été modifiées
alors
que mon historique me montre qu'elles sont "apparemment" identiques.


comme tu ne nous précises pas le format du fichier à analyser et que pour un
fichier .xls ne se poserait pas
je suppose que l'import à lieu via un fichier texte, ou délimité...

lors de l'ouverture Excel se débrouille automatiquement pour interpréter les
dates,
du fait de ce procédé automatique ...
il est trop tard pour intervenir le mal est fait :-(((

sachant que par ailleurs pour VBA toutes les dates sont interprétées au
format US

c'est donc au moment de l'import qu'il faut intervenir
soit lors de l'openfiletext en spécifiant le parametre local:=true
soit en utilisant l'assistant d'importation et en précisant à la troisième
étape et pour le champ considéré le format lu ,
dans ce cas MJA
nb:
L'assistant d'importation ne se lance pas avec les fichiers csv, il faut le
renommer en .txt

voir d'autres explications sur Excelabo.net
http://www.excelabo.net/xl/dates.php#importationdates

--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr






Avatar
Modeste
Bonsour® Grégory avec ferveur ;o))) vous nous disiez :

J'ai suivi ton info et ai donc précisé "Local:=True" lors de l'ouverture
de
mon fichier:
Workbooks.Open Filename:=File, Local:=True
... mais cela ne change rien.
en effet s'il s'agit d"un fichier Xls


un contrôle à effectuer :
ouvrir le fichier FA par la methode standard d'ouverture : Fichier > Ouvrir
comment se présentent les dates ???

l'application d'un format "Nombre" les présentent-elles sous la forme
resssemblant à ceci : 38123,xxx
dans l'affirmative je ne vois pas de solution ... :-(

si le format nombre n'a pas d'incidence il est probable que le format
d'origine soit "texte" ou @
dans ce cas selectionner la colonne entière
menu Données > convertir
à l'etape 3 choisir le format lu : dans ce cas MJA

si cela te parais correct... l'on n'a pas encore la solution, mais on a
probablement ciblé le probleme,
il va falloir maintenant automatiser tout cela ...

a savoir :
avant d'utiliser tes macro d'importation, traiter et corriger le fichier FA



--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr