date dans macro

Le
Circé
Bonjour à tous !

Mais qu'est-ce qui cloche là-dedans ?

For Each c In Range("date_signature")
If c.Value > Now Then
c.Offset(0, 5).value = "A"
End If
Next c

Ça me paraît tout bête, et pourtant, alors que je ne veux trouver que
les date supérieures à aujourd'hui, je trouve tout !

Merci par avance,
Circé
http://faqwore.fr
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Francois L
Le #16778501
Circé a écrit :

Bonjour,

Bizarre, chez moi ça marche bien....

Attendons les hypothèses des gourous ou alors micro-climat...

--
François L

Bonjour à tous !

Mais qu'est-ce qui cloche là-dedans ?...

For Each c In Range("date_signature")
If c.Value > Now Then
c.Offset(0, 5).value = "A"
End If
Next c

Ça me paraît tout bête, et pourtant, alors que je ne veux trouver que
les date supérieures à aujourd'hui, je trouve tout !

Merci par avance,
Circé
http://faqwore.fr




Misange
Le #16779121
salut la muse !
ça roule sans pb chez moi. Est-ce que tes dates sont bien des dates ?

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Circé a écrit :
Bonjour à tous !

Mais qu'est-ce qui cloche là-dedans ?...

For Each c In Range("date_signature")
If c.Value > Now Then
c.Offset(0, 5).value = "A"
End If
Next c

Ça me paraît tout bête, et pourtant, alors que je ne veux trouver que
les date supérieures à aujourd'hui, je trouve tout !

Merci par avance,
Circé
http://faqwore.fr




Modeste
Le #16779241
Bonsour® Circé avec ferveur ;o))) vous nous disiez :

Bonjour à tous !

Mais qu'est-ce qui cloche là-dedans ?...

For Each c In Range("date_signature")
If c.Value > Now Then
c.Offset(0, 5).value = "A"
End If
Next c

Ça me paraît tout bête, et pourtant, alors que je ne veux trouver que
les date supérieures à aujourd'hui, je trouve tout !



verifie le format des dates,
pour cela, passe la plage "date_signature" en format nombre il doit n'y avoir que des nombres !!!

il ne faut pas que celles-ci soient en format texte

si ce n'est pas le cas
voir avec le menu Données convertir
ne selectionner que la colonne des dates-signature
à l'étape 3
format des données en colonne
choisir date
et le format correspondant à celui lu (visible)


--
--
@+
;o)))
Circé
Le #16779851
Bonsoir à tous,

Au moins, déjà, ça me rassure de voir que je ne débloquais pas
complètement !

Il s'agit de données récupérées d'une appli externe. Au départ, aucun
nombre n'était considéré comme numérique. Je les ai tous "convertis", y
compris les dates, par une multiplication par 1, car le format ne
suffit pas dans ce cas.

Les dates sont OK, car dans une autre colonne, je récupère bien le mois
avec une formule =MOIS(date)...
Bon, je vérifie tout ça demain, il doit y avoir autre chose...

Je vous tiens au courant ! :D

Circé
http://faqword.fr

Modeste avait écrit le 10/09/2008 :
Bonsour® Circé avec ferveur ;o))) vous nous disiez :

Bonjour à tous !

Mais qu'est-ce qui cloche là-dedans ?...

For Each c In Range("date_signature")
If c.Value > Now Then
c.Offset(0, 5).value = "A"
End If
Next c

Ça me paraît tout bête, et pourtant, alors que je ne veux trouver que
les date supérieures à aujourd'hui, je trouve tout !



verifie le format des dates,
pour cela, passe la plage "date_signature" en format nombre il doit n'y avoir
que des nombres !!!

il ne faut pas que celles-ci soient en format texte

si ce n'est pas le cas
voir avec le menu Données convertir
ne selectionner que la colonne des dates-signature
à l'étape 3
format des données en colonne
choisir date
et le format correspondant à celui lu (visible)


--


Mishell
Le #16781001
Bonjour.

Essaie avec DateSerial. Ca évite le problème du format.

For Each c In Range("date_signature")
a = c.Value
If DateSerial(Year(a), Month(a), Day(a)) > Now Then
c.Offset(0, 5).Value = "A"
End If
Next c

Mishell

"Circé" news:
Bonjour à tous !

Mais qu'est-ce qui cloche là-dedans ?...

For Each c In Range("date_signature")
If c.Value > Now Then
c.Offset(0, 5).value = "A"
End If
Next c

Ça me paraît tout bête, et pourtant, alors que je ne veux trouver que les
date supérieures à aujourd'hui, je trouve tout !

Merci par avance,
Circé
http://faqwore.fr




Misange
Le #16781791
au besoin mets nous un exemple sur c-joint.
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Circé a écrit :
Bonsoir à tous,

Au moins, déjà, ça me rassure de voir que je ne débloquais pas
complètement !

Il s'agit de données récupérées d'une appli externe. Au départ, aucun
nombre n'était considéré comme numérique. Je les ai tous "convertis", y
compris les dates, par une multiplication par 1, car le format ne suffit
pas dans ce cas.

Les dates sont OK, car dans une autre colonne, je récupère bien le mois
avec une formule =MOIS(date)...
Bon, je vérifie tout ça demain, il doit y avoir autre chose...

Je vous tiens au courant ! :D

Circé
http://faqword.fr

Modeste avait écrit le 10/09/2008 :
Bonsour® Circé avec ferveur ;o))) vous nous disiez :
Bonjour à tous !

Mais qu'est-ce qui cloche là-dedans ?...

For Each c In Range("date_signature")
If c.Value > Now Then
c.Offset(0, 5).value = "A"
End If
Next c

Ça me paraît tout bête, et pourtant, alors que je ne veux trouver que
les date supérieures à aujourd'hui, je trouve tout !



verifie le format des dates,
pour cela, passe la plage "date_signature" en format nombre il doit
n'y avoir que des nombres !!!

il ne faut pas que celles-ci soient en format texte

si ce n'est pas le cas
voir avec le menu Données convertir
ne selectionner que la colonne des dates-signature
à l'étape 3
format des données en colonne choisir date et le format correspondant
à celui lu (visible)


--






Laurent
Le #16782361
Bonjour Circé,
Ca marche aussi chez moi.
Par contre j'ai plutôt l'habitude d'utiliser now avec des parenthèse : now()
Comme une fonction, il peut peu-être confondre now avec une variable.

Si ce n'est pas ça, peut être un problème de format de date.

@+
Laurent

"Circé" a écrit :

Bonjour à tous !

Mais qu'est-ce qui cloche là-dedans ?...

For Each c In Range("date_signature")
If c.Value > Now Then
c.Offset(0, 5).value = "A"
End If
Next c

Ça me paraît tout bête, et pourtant, alors que je ne veux trouver que
les date supérieures à aujourd'hui, je trouve tout !

Merci par avance,
Circé
http://faqwore.fr





Circé
Le #16782821
Hello Miss-Ange !

Misange a présenté l'énoncé suivant :
au besoin mets nous un exemple sur c-joint.



Alors voilà :
http://cjoint.com/?jlkImRRYMy

En fait, ce n'est pas un problème de macro, c'est vraiment un problème
avec ces dates qui paraissent être pourtant au bon format.
J'ai testé avec une formule > ou < à aujourdhui() et le problème est le
même.
Regarde dans le fichier les deux cellules colorées en jaune qui
proviennent de ma base.

Circé
http://faqword.fr

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Circé a écrit :
Bonsoir à tous,

Au moins, déjà, ça me rassure de voir que je ne débloquais pas complètement
!

Il s'agit de données récupérées d'une appli externe. Au départ, aucun
nombre n'était considéré comme numérique. Je les ai tous "convertis", y
compris les dates, par une multiplication par 1, car le format ne suffit
pas dans ce cas.

Les dates sont OK, car dans une autre colonne, je récupère bien le mois
avec une formule =MOIS(date)...
Bon, je vérifie tout ça demain, il doit y avoir autre chose...

Je vous tiens au courant ! :D

Circé
http://faqword.fr

Modeste avait écrit le 10/09/2008 :
Bonsour® Circé avec ferveur ;o))) vous nous disiez :
Bonjour à tous !

Mais qu'est-ce qui cloche là-dedans ?...

For Each c In Range("date_signature")
If c.Value > Now Then
c.Offset(0, 5).value = "A"
End If
Next c

Ça me paraît tout bête, et pourtant, alors que je ne veux trouver que
les date supérieures à aujourd'hui, je trouve tout !



verifie le format des dates,
pour cela, passe la plage "date_signature" en format nombre il doit n'y
avoir que des nombres !!!

il ne faut pas que celles-ci soient en format texte

si ce n'est pas le cas
voir avec le menu Données convertir
ne selectionner que la colonne des dates-signature
à l'étape 3
format des données en colonne choisir date et le format correspondant à
celui lu (visible)


--








Circé
Le #16782931
Bonjour Laurent et Mishell,

Je suis désolée, j'ai répondu à Misange sans avoir vu vos réponses !!!

Surtout que Mishell, tu a résolu mon problème ! Donc avec le
DateSerial, ça fonctionne nickel ! Un grand merci à toi, et si vous
aviez une petite explication en plus, c'est pas de refus.

En tous les cas, je garde ça dans mes tablettes.
Merci encore...

Bonne journée,

Circé
http://faqword.fr

Alors la fonction
Laurent a exposé le 11/09/2008 :
Bonjour Circé,
Ca marche aussi chez moi.
Par contre j'ai plutôt l'habitude d'utiliser now avec des parenthèse : now()
Comme une fonction, il peut peu-être confondre now avec une variable.

Si ce n'est pas ça, peut être un problème de format de date.

@+
Laurent

"Circé" a écrit :

Bonjour à tous !

Mais qu'est-ce qui cloche là-dedans ?...

For Each c In Range("date_signature")
If c.Value > Now Then
c.Offset(0, 5).value = "A"
End If
Next c

Ça me paraît tout bête, et pourtant, alors que je ne veux trouver que
les date supérieures à aujourd'hui, je trouve tout !

Merci par avance,
Circé
http://faqwore.fr







Misange
Le #16783261
hello,
Et bien en fait tes deux dernières dates, même ayant été multipliées par
1 sont toujours en format texte : si tu changes le format et que tu
mets nombre à la place de date sur ta colonne, tu verras que les deux
dernières restent alignées à gauche et ne sont pas transformées. Excel
est parfois "trop" futé : il essaie de t'arranger au maximum. Quand tu
écris = mois (A4), excel essaie de convertir ta donnée en A4 en une date
pour appliquer la fonction. Du coup il ne te signale pas qu'en fait
c'est du texte.
Donc il faut soit que tu revoies ta procédure d'importation de données
pour corriger cela, soit que tu utilises dateserial comme proposé.

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Circé a écrit :
Hello Miss-Ange !

Misange a présenté l'énoncé suivant :
au besoin mets nous un exemple sur c-joint.



Alors voilà :
http://cjoint.com/?jlkImRRYMy

En fait, ce n'est pas un problème de macro, c'est vraiment un problème
avec ces dates qui paraissent être pourtant au bon format.
J'ai testé avec une formule > ou < à aujourdhui() et le problème est le
même.
Regarde dans le fichier les deux cellules colorées en jaune qui
proviennent de ma base.

Circé
http://faqword.fr

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Circé a écrit :
Bonsoir à tous,

Au moins, déjà, ça me rassure de voir que je ne débloquais pas
complètement !

Il s'agit de données récupérées d'une appli externe. Au départ,
aucun nombre n'était considéré comme numérique. Je les ai tous
"convertis", y compris les dates, par une multiplication par 1, car
le format ne suffit pas dans ce cas.

Les dates sont OK, car dans une autre colonne, je récupère bien le
mois avec une formule =MOIS(date)...
Bon, je vérifie tout ça demain, il doit y avoir autre chose...

Je vous tiens au courant ! :D

Circé
http://faqword.fr

Modeste avait écrit le 10/09/2008 :
Bonsour® Circé avec ferveur ;o))) vous nous disiez :
Bonjour à tous !

Mais qu'est-ce qui cloche là-dedans ?...

For Each c In Range("date_signature")
If c.Value > Now Then
c.Offset(0, 5).value = "A"
End If
Next c

Ça me paraît tout bête, et pourtant, alors que je ne veux trouver que
les date supérieures à aujourd'hui, je trouve tout !



verifie le format des dates,
pour cela, passe la plage "date_signature" en format nombre il doit
n'y avoir que des nombres !!!

il ne faut pas que celles-ci soient en format texte

si ce n'est pas le cas
voir avec le menu Données convertir
ne selectionner que la colonne des dates-signature
à l'étape 3
format des données en colonne choisir date et le format
correspondant à celui lu (visible)


--












Publicité
Poster une réponse
Anonyme