VBA : Recherche date la plus proche d'aujourdhui...
9 réponses
Domi
Bonsoir,
Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la première
cellule contenant la date du jour + 3 jours (ou ladate la plus proche
immédiatement supérieure si la date recherchée n'existe pas)
Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe...
Quelqu'un pourrait-il me la modifier de façon a sélectionner la date
immédiatement supérieure en cas d'absence...
Merci
Domi
Sub aa()
Application.Goto Range("M11", Range("M65000").End(xlUp)).Find(CDate(Date
+3)), True
Range(ActiveCell, ActiveCell.Offset(0, -12)).Select
.............................Tracage du trait....
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
isabelle
bonjour Doumi,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+10,13)") Range(Range(x), Range(x).Offset(0, -12)).Select
isabelle
Bonsoir, Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la première cellule contenant la date du jour + 3 jours (ou ladate la plus proche immédiatement supérieure si la date recherchée n'existe pas) Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe... Quelqu'un pourrait-il me la modifier de façon a sélectionner la date immédiatement supérieure en cas d'absence... Merci Domi
Sub aa() Application.Goto Range("M11", Range("M65000").End(xlUp)).Find(CDate(Date +3)), True Range(ActiveCell, ActiveCell.Offset(0, -12)).Select .............................Tracage du trait.... End Sub
bonjour Doumi,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+10,13)")
Range(Range(x), Range(x).Offset(0, -12)).Select
isabelle
Bonsoir,
Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la première
cellule contenant la date du jour + 3 jours (ou ladate la plus proche
immédiatement supérieure si la date recherchée n'existe pas)
Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe...
Quelqu'un pourrait-il me la modifier de façon a sélectionner la date
immédiatement supérieure en cas d'absence...
Merci
Domi
Sub aa()
Application.Goto Range("M11", Range("M65000").End(xlUp)).Find(CDate(Date
+3)), True
Range(ActiveCell, ActiveCell.Offset(0, -12)).Select
.............................Tracage du trait....
End Sub
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+10,13)") Range(Range(x), Range(x).Offset(0, -12)).Select
isabelle
Bonsoir, Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la première cellule contenant la date du jour + 3 jours (ou ladate la plus proche immédiatement supérieure si la date recherchée n'existe pas) Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe... Quelqu'un pourrait-il me la modifier de façon a sélectionner la date immédiatement supérieure en cas d'absence... Merci Domi
Sub aa() Application.Goto Range("M11", Range("M65000").End(xlUp)).Find(CDate(Date +3)), True Range(ActiveCell, ActiveCell.Offset(0, -12)).Select .............................Tracage du trait.... End Sub
Domi
C'est presque cela... 99% ;o) En cas d'absence de la date précise cela sélectionne la date inférieure... Pour la supérieure je rectifie comment ? Merci Domi
"isabelle" a écrit dans le message de news:
bonjour Doumi,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+10,13)") Range(Range(x), Range(x).Offset(0, -12)).Select
isabelle
Bonsoir, Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la première
cellule contenant la date du jour + 3 jours (ou ladate la plus proche immédiatement supérieure si la date recherchée n'existe pas) Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe... Quelqu'un pourrait-il me la modifier de façon a sélectionner la date immédiatement supérieure en cas d'absence... Merci Domi
Sub aa() Application.Goto Range("M11", Range("M65000").End(xlUp)).Find(CDate(Date +3)), True Range(ActiveCell, ActiveCell.Offset(0, -12)).Select .............................Tracage du trait.... End Sub
C'est presque cela... 99% ;o)
En cas d'absence de la date précise cela sélectionne la date inférieure...
Pour la supérieure je rectifie comment ?
Merci
Domi
"isabelle" <as.isabellevIE@videotron.ca> a écrit dans le message de
news:40E9985D.1C346EE3@videotron.ca...
bonjour Doumi,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+10,13)")
Range(Range(x), Range(x).Offset(0, -12)).Select
isabelle
Bonsoir,
Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la
première
cellule contenant la date du jour + 3 jours (ou ladate la plus proche
immédiatement supérieure si la date recherchée n'existe pas)
Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe...
Quelqu'un pourrait-il me la modifier de façon a sélectionner la date
immédiatement supérieure en cas d'absence...
Merci
Domi
Sub aa()
Application.Goto Range("M11", Range("M65000").End(xlUp)).Find(CDate(Date
+3)), True
Range(ActiveCell, ActiveCell.Offset(0, -12)).Select
.............................Tracage du trait....
End Sub
C'est presque cela... 99% ;o) En cas d'absence de la date précise cela sélectionne la date inférieure... Pour la supérieure je rectifie comment ? Merci Domi
"isabelle" a écrit dans le message de news:
bonjour Doumi,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+10,13)") Range(Range(x), Range(x).Offset(0, -12)).Select
isabelle
Bonsoir, Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la première
cellule contenant la date du jour + 3 jours (ou ladate la plus proche immédiatement supérieure si la date recherchée n'existe pas) Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe... Quelqu'un pourrait-il me la modifier de façon a sélectionner la date immédiatement supérieure en cas d'absence... Merci Domi
Sub aa() Application.Goto Range("M11", Range("M65000").End(xlUp)).Find(CDate(Date +3)), True Range(ActiveCell, ActiveCell.Offset(0, -12)).Select .............................Tracage du trait.... End Sub
isabelle
bonjour Doumi,
si la plage est trié en ordre croissant, modifie comme ça,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+11,13)")
isabelle
C'est presque cela... 99% ;o) En cas d'absence de la date précise cela sélectionne la date inférieure... Pour la supérieure je rectifie comment ? Merci Domi
"isabelle" a écrit dans le message de news:
bonjour Doumi,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+10,13)") Range(Range(x), Range(x).Offset(0, -12)).Select
isabelle
Bonsoir, Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la première
cellule contenant la date du jour + 3 jours (ou ladate la plus proche immédiatement supérieure si la date recherchée n'existe pas) Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe... Quelqu'un pourrait-il me la modifier de façon a sélectionner la date immédiatement supérieure en cas d'absence... Merci Domi
Sub aa() Application.Goto Range("M11", Range("M65000").End(xlUp)).Find(CDate(Date +3)), True Range(ActiveCell, ActiveCell.Offset(0, -12)).Select .............................Tracage du trait.... End Sub
bonjour Doumi,
si la plage est trié en ordre croissant, modifie comme ça,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+11,13)")
isabelle
C'est presque cela... 99% ;o)
En cas d'absence de la date précise cela sélectionne la date inférieure...
Pour la supérieure je rectifie comment ?
Merci
Domi
"isabelle" <as.isabellevIE@videotron.ca> a écrit dans le message de
news:40E9985D.1C346EE3@videotron.ca...
bonjour Doumi,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+10,13)")
Range(Range(x), Range(x).Offset(0, -12)).Select
isabelle
Bonsoir,
Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la
première
cellule contenant la date du jour + 3 jours (ou ladate la plus proche
immédiatement supérieure si la date recherchée n'existe pas)
Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe...
Quelqu'un pourrait-il me la modifier de façon a sélectionner la date
immédiatement supérieure en cas d'absence...
Merci
Domi
Sub aa()
Application.Goto Range("M11", Range("M65000").End(xlUp)).Find(CDate(Date
+3)), True
Range(ActiveCell, ActiveCell.Offset(0, -12)).Select
.............................Tracage du trait....
End Sub
si la plage est trié en ordre croissant, modifie comme ça,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+11,13)")
isabelle
C'est presque cela... 99% ;o) En cas d'absence de la date précise cela sélectionne la date inférieure... Pour la supérieure je rectifie comment ? Merci Domi
"isabelle" a écrit dans le message de news:
bonjour Doumi,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+10,13)") Range(Range(x), Range(x).Offset(0, -12)).Select
isabelle
Bonsoir, Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la première
cellule contenant la date du jour + 3 jours (ou ladate la plus proche immédiatement supérieure si la date recherchée n'existe pas) Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe... Quelqu'un pourrait-il me la modifier de façon a sélectionner la date immédiatement supérieure en cas d'absence... Merci Domi
Sub aa() Application.Goto Range("M11", Range("M65000").End(xlUp)).Find(CDate(Date +3)), True Range(ActiveCell, ActiveCell.Offset(0, -12)).Select .............................Tracage du trait.... End Sub
Domi
C'est le cas, Merci beaucoup Domi "isabelle" a écrit dans le message de news:
bonjour Doumi,
si la plage est trié en ordre croissant, modifie comme ça,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+11,13)")
isabelle
C'est presque cela... 99% ;o) En cas d'absence de la date précise cela sélectionne la date inférieure...
Pour la supérieure je rectifie comment ? Merci Domi
"isabelle" a écrit dans le message de news:
bonjour Doumi,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+10,13)") Range(Range(x), Range(x).Offset(0, -12)).Select
isabelle
Bonsoir, Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la première
cellule contenant la date du jour + 3 jours (ou ladate la plus proche
immédiatement supérieure si la date recherchée n'existe pas) Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe... Quelqu'un pourrait-il me la modifier de façon a sélectionner la date immédiatement supérieure en cas d'absence... Merci Domi
Sub aa() Application.Goto Range("M11", Range("M65000").End(xlUp)).Find(CDate(Date
+3)), True Range(ActiveCell, ActiveCell.Offset(0, -12)).Select .............................Tracage du trait.... End Sub
C'est le cas,
Merci beaucoup
Domi
"isabelle" <as.isabellevIE@videotron.ca> a écrit dans le message de
news:40E9AAED.9AB4E998@videotron.ca...
bonjour Doumi,
si la plage est trié en ordre croissant, modifie comme ça,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+11,13)")
isabelle
C'est presque cela... 99% ;o)
En cas d'absence de la date précise cela sélectionne la date
inférieure...
Pour la supérieure je rectifie comment ?
Merci
Domi
"isabelle" <as.isabellevIE@videotron.ca> a écrit dans le message de
news:40E9985D.1C346EE3@videotron.ca...
bonjour Doumi,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+10,13)")
Range(Range(x), Range(x).Offset(0, -12)).Select
isabelle
Bonsoir,
Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la
première
cellule contenant la date du jour + 3 jours (ou ladate la plus
proche
immédiatement supérieure si la date recherchée n'existe pas)
Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe...
Quelqu'un pourrait-il me la modifier de façon a sélectionner la date
immédiatement supérieure en cas d'absence...
Merci
Domi
Sub aa()
Application.Goto Range("M11",
Range("M65000").End(xlUp)).Find(CDate(Date
+3)), True
Range(ActiveCell, ActiveCell.Offset(0, -12)).Select
.............................Tracage du trait....
End Sub
C'est le cas, Merci beaucoup Domi "isabelle" a écrit dans le message de news:
bonjour Doumi,
si la plage est trié en ordre croissant, modifie comme ça,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+11,13)")
isabelle
C'est presque cela... 99% ;o) En cas d'absence de la date précise cela sélectionne la date inférieure...
Pour la supérieure je rectifie comment ? Merci Domi
"isabelle" a écrit dans le message de news:
bonjour Doumi,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+10,13)") Range(Range(x), Range(x).Offset(0, -12)).Select
isabelle
Bonsoir, Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la première
cellule contenant la date du jour + 3 jours (ou ladate la plus proche
immédiatement supérieure si la date recherchée n'existe pas) Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe... Quelqu'un pourrait-il me la modifier de façon a sélectionner la date immédiatement supérieure en cas d'absence... Merci Domi
Sub aa() Application.Goto Range("M11", Range("M65000").End(xlUp)).Find(CDate(Date
+3)), True Range(ActiveCell, ActiveCell.Offset(0, -12)).Select .............................Tracage du trait.... End Sub
Domi
J'ai parlé un petit peu vite...maintenant ça marche un peu trop pour la valeur sup ça selectionne bien la valeur immédiatement supérieure à J +3 ;o)) mais si J+3 existe ça selectionne aussi la valeur immédiatement supérieure ! A+ Domi
"isabelle" a écrit dans le message de news:
bonjour Doumi,
si la plage est trié en ordre croissant, modifie comme ça,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+11,13)")
isabelle
C'est presque cela... 99% ;o) En cas d'absence de la date précise cela sélectionne la date inférieure...
Pour la supérieure je rectifie comment ? Merci Domi
"isabelle" a écrit dans le message de news:
bonjour Doumi,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+10,13)") Range(Range(x), Range(x).Offset(0, -12)).Select
isabelle
Bonsoir, Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la première
cellule contenant la date du jour + 3 jours (ou ladate la plus proche
immédiatement supérieure si la date recherchée n'existe pas) Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe... Quelqu'un pourrait-il me la modifier de façon a sélectionner la date immédiatement supérieure en cas d'absence... Merci Domi
Sub aa() Application.Goto Range("M11", Range("M65000").End(xlUp)).Find(CDate(Date
+3)), True Range(ActiveCell, ActiveCell.Offset(0, -12)).Select .............................Tracage du trait.... End Sub
J'ai parlé un petit peu vite...maintenant ça marche un peu trop pour la
valeur sup
ça selectionne bien la valeur immédiatement supérieure à J +3 ;o))
mais si J+3 existe ça selectionne aussi la valeur immédiatement supérieure !
A+
Domi
"isabelle" <as.isabellevIE@videotron.ca> a écrit dans le message de
news:40E9AAED.9AB4E998@videotron.ca...
bonjour Doumi,
si la plage est trié en ordre croissant, modifie comme ça,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+11,13)")
isabelle
C'est presque cela... 99% ;o)
En cas d'absence de la date précise cela sélectionne la date
inférieure...
Pour la supérieure je rectifie comment ?
Merci
Domi
"isabelle" <as.isabellevIE@videotron.ca> a écrit dans le message de
news:40E9985D.1C346EE3@videotron.ca...
bonjour Doumi,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+10,13)")
Range(Range(x), Range(x).Offset(0, -12)).Select
isabelle
Bonsoir,
Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la
première
cellule contenant la date du jour + 3 jours (ou ladate la plus
proche
immédiatement supérieure si la date recherchée n'existe pas)
Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe...
Quelqu'un pourrait-il me la modifier de façon a sélectionner la date
immédiatement supérieure en cas d'absence...
Merci
Domi
Sub aa()
Application.Goto Range("M11",
Range("M65000").End(xlUp)).Find(CDate(Date
+3)), True
Range(ActiveCell, ActiveCell.Offset(0, -12)).Select
.............................Tracage du trait....
End Sub
J'ai parlé un petit peu vite...maintenant ça marche un peu trop pour la valeur sup ça selectionne bien la valeur immédiatement supérieure à J +3 ;o)) mais si J+3 existe ça selectionne aussi la valeur immédiatement supérieure ! A+ Domi
"isabelle" a écrit dans le message de news:
bonjour Doumi,
si la plage est trié en ordre croissant, modifie comme ça,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+11,13)")
isabelle
C'est presque cela... 99% ;o) En cas d'absence de la date précise cela sélectionne la date inférieure...
Pour la supérieure je rectifie comment ? Merci Domi
"isabelle" a écrit dans le message de news:
bonjour Doumi,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+10,13)") Range(Range(x), Range(x).Offset(0, -12)).Select
isabelle
Bonsoir, Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la première
cellule contenant la date du jour + 3 jours (ou ladate la plus proche
immédiatement supérieure si la date recherchée n'existe pas) Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe... Quelqu'un pourrait-il me la modifier de façon a sélectionner la date immédiatement supérieure en cas d'absence... Merci Domi
Sub aa() Application.Goto Range("M11", Range("M65000").End(xlUp)).Find(CDate(Date
+3)), True Range(ActiveCell, ActiveCell.Offset(0, -12)).Select .............................Tracage du trait.... End Sub
isabelle
ho oui tu as raison il faudrait vérifier si l'info exact est trouver,
If Not IsError(Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535,0)+10,13)")) Then x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535, 0)+10,13)") Range(Range(x), Range(x).Offset(0, -12)).Select ' .............................Tracage du trait.... Else x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+11,13)") Range(Range(x), Range(x).Offset(0, -12)).Select ' .............................Tracage du trait.... End If
isabelle
J'ai parlé un petit peu vite...maintenant ça marche un peu trop pour la valeur sup ça selectionne bien la valeur immédiatement supérieure à J +3 ;o)) mais si J+3 existe ça selectionne aussi la valeur immédiatement supérieure ! A+ Domi
"isabelle" a écrit dans le message de news:
bonjour Doumi,
si la plage est trié en ordre croissant, modifie comme ça,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+11,13)")
isabelle
C'est presque cela... 99% ;o) En cas d'absence de la date précise cela sélectionne la date inférieure...
Pour la supérieure je rectifie comment ? Merci Domi
"isabelle" a écrit dans le message de news:
bonjour Doumi,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+10,13)") Range(Range(x), Range(x).Offset(0, -12)).Select
isabelle
Bonsoir, Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la première
cellule contenant la date du jour + 3 jours (ou ladate la plus proche
immédiatement supérieure si la date recherchée n'existe pas) Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe... Quelqu'un pourrait-il me la modifier de façon a sélectionner la date immédiatement supérieure en cas d'absence... Merci Domi
Sub aa() Application.Goto Range("M11", Range("M65000").End(xlUp)).Find(CDate(Date
+3)), True Range(ActiveCell, ActiveCell.Offset(0, -12)).Select .............................Tracage du trait.... End Sub
ho oui tu as raison il faudrait vérifier si l'info exact est trouver,
If Not IsError(Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535,0)+10,13)"))
Then
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535, 0)+10,13)")
Range(Range(x), Range(x).Offset(0, -12)).Select
' .............................Tracage du trait....
Else
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+11,13)")
Range(Range(x), Range(x).Offset(0, -12)).Select
' .............................Tracage du trait....
End If
isabelle
J'ai parlé un petit peu vite...maintenant ça marche un peu trop pour la
valeur sup
ça selectionne bien la valeur immédiatement supérieure à J +3 ;o))
mais si J+3 existe ça selectionne aussi la valeur immédiatement supérieure !
A+
Domi
"isabelle" <as.isabellevIE@videotron.ca> a écrit dans le message de
news:40E9AAED.9AB4E998@videotron.ca...
bonjour Doumi,
si la plage est trié en ordre croissant, modifie comme ça,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+11,13)")
isabelle
C'est presque cela... 99% ;o)
En cas d'absence de la date précise cela sélectionne la date
inférieure...
Pour la supérieure je rectifie comment ?
Merci
Domi
"isabelle" <as.isabellevIE@videotron.ca> a écrit dans le message de
news:40E9985D.1C346EE3@videotron.ca...
bonjour Doumi,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+10,13)")
Range(Range(x), Range(x).Offset(0, -12)).Select
isabelle
Bonsoir,
Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la
première
cellule contenant la date du jour + 3 jours (ou ladate la plus
proche
immédiatement supérieure si la date recherchée n'existe pas)
Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe...
Quelqu'un pourrait-il me la modifier de façon a sélectionner la date
immédiatement supérieure en cas d'absence...
Merci
Domi
Sub aa()
Application.Goto Range("M11",
Range("M65000").End(xlUp)).Find(CDate(Date
+3)), True
Range(ActiveCell, ActiveCell.Offset(0, -12)).Select
.............................Tracage du trait....
End Sub
ho oui tu as raison il faudrait vérifier si l'info exact est trouver,
If Not IsError(Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535,0)+10,13)")) Then x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535, 0)+10,13)") Range(Range(x), Range(x).Offset(0, -12)).Select ' .............................Tracage du trait.... Else x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+11,13)") Range(Range(x), Range(x).Offset(0, -12)).Select ' .............................Tracage du trait.... End If
isabelle
J'ai parlé un petit peu vite...maintenant ça marche un peu trop pour la valeur sup ça selectionne bien la valeur immédiatement supérieure à J +3 ;o)) mais si J+3 existe ça selectionne aussi la valeur immédiatement supérieure ! A+ Domi
"isabelle" a écrit dans le message de news:
bonjour Doumi,
si la plage est trié en ordre croissant, modifie comme ça,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+11,13)")
isabelle
C'est presque cela... 99% ;o) En cas d'absence de la date précise cela sélectionne la date inférieure...
Pour la supérieure je rectifie comment ? Merci Domi
"isabelle" a écrit dans le message de news:
bonjour Doumi,
x = Evaluate("ADDRESS(MATCH(TODAY()+3,M11:M65535)+10,13)") Range(Range(x), Range(x).Offset(0, -12)).Select
isabelle
Bonsoir, Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la première
cellule contenant la date du jour + 3 jours (ou ladate la plus proche
immédiatement supérieure si la date recherchée n'existe pas) Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe... Quelqu'un pourrait-il me la modifier de façon a sélectionner la date immédiatement supérieure en cas d'absence... Merci Domi
Sub aa() Application.Goto Range("M11", Range("M65000").End(xlUp)).Find(CDate(Date
+3)), True Range(ActiveCell, ActiveCell.Offset(0, -12)).Select .............................Tracage du trait.... End Sub
Daniel.M
Salut Domi,
Aussi quelquechose comme ça:
Dim r As Variant, UneVal As Double UneVal = Date * 1 + 3# With Range("M11", Range("M65000").End(xlUp)) r = Application.Match(UneVal, .Cells) If IsError(r) Then MsgBox "Pas de valeur égale ou + grande que Date+3" Else If r < .Rows.Count Or .Cells(r) = UneVal Then If .Cells(r) <> UneVal Then r = r + 1 ' incr si nécessaire .Cells(r, -11).Resize(1, 13).Select ' de A jusqu'à M MsgBox "La valeur est située à la cellule " _ & .Cells(r).Address & "." Else MsgBox "Pas de valeur égale ou + grande que " _ & Format(UneVal, "yyyy mm dd") End If End If End With
Bien sûr, il faut adapter (ou même supprimer) les messages.
Salutations,
Daniel M.
"Domi" wrote in message news:
Bonsoir, Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la première cellule contenant la date du jour + 3 jours (ou ladate la plus proche immédiatement supérieure si la date recherchée n'existe pas) Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe... Quelqu'un pourrait-il me la modifier de façon a sélectionner la date immédiatement supérieure en cas d'absence... Merci Domi
Sub aa() Application.Goto Range("M11", Range("M65000").End(xlUp)).Find(CDate(Date +3)), True Range(ActiveCell, ActiveCell.Offset(0, -12)).Select .............................Tracage du trait.... End Sub
Salut Domi,
Aussi quelquechose comme ça:
Dim r As Variant, UneVal As Double
UneVal = Date * 1 + 3#
With Range("M11", Range("M65000").End(xlUp))
r = Application.Match(UneVal, .Cells)
If IsError(r) Then
MsgBox "Pas de valeur égale ou + grande que Date+3"
Else
If r < .Rows.Count Or .Cells(r) = UneVal Then
If .Cells(r) <> UneVal Then r = r + 1 ' incr si nécessaire
.Cells(r, -11).Resize(1, 13).Select ' de A jusqu'à M
MsgBox "La valeur est située à la cellule " _
& .Cells(r).Address & "."
Else
MsgBox "Pas de valeur égale ou + grande que " _
& Format(UneVal, "yyyy mm dd")
End If
End If
End With
Bien sûr, il faut adapter (ou même supprimer) les messages.
Salutations,
Daniel M.
"Domi" <scrat83@free.fr> wrote in message
news:uS51VerYEHA.2456@TK2MSFTNGP10.phx.gbl...
Bonsoir,
Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la première
cellule contenant la date du jour + 3 jours (ou ladate la plus proche
immédiatement supérieure si la date recherchée n'existe pas)
Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe...
Quelqu'un pourrait-il me la modifier de façon a sélectionner la date
immédiatement supérieure en cas d'absence...
Merci
Domi
Sub aa()
Application.Goto Range("M11", Range("M65000").End(xlUp)).Find(CDate(Date
+3)), True
Range(ActiveCell, ActiveCell.Offset(0, -12)).Select
.............................Tracage du trait....
End Sub
Dim r As Variant, UneVal As Double UneVal = Date * 1 + 3# With Range("M11", Range("M65000").End(xlUp)) r = Application.Match(UneVal, .Cells) If IsError(r) Then MsgBox "Pas de valeur égale ou + grande que Date+3" Else If r < .Rows.Count Or .Cells(r) = UneVal Then If .Cells(r) <> UneVal Then r = r + 1 ' incr si nécessaire .Cells(r, -11).Resize(1, 13).Select ' de A jusqu'à M MsgBox "La valeur est située à la cellule " _ & .Cells(r).Address & "." Else MsgBox "Pas de valeur égale ou + grande que " _ & Format(UneVal, "yyyy mm dd") End If End If End With
Bien sûr, il faut adapter (ou même supprimer) les messages.
Salutations,
Daniel M.
"Domi" wrote in message news:
Bonsoir, Dans la colonne M11:Mxx de mon tableau, je voudrais selectionner la première cellule contenant la date du jour + 3 jours (ou ladate la plus proche immédiatement supérieure si la date recherchée n'existe pas) Le but étant ensuite de tracer un trait sous cette date...
J'ai fais cette macro qui ne fonctionne que si la date existe... Quelqu'un pourrait-il me la modifier de façon a sélectionner la date immédiatement supérieure en cas d'absence... Merci Domi
Sub aa() Application.Goto Range("M11", Range("M65000").End(xlUp)).Find(CDate(Date +3)), True Range(ActiveCell, ActiveCell.Offset(0, -12)).Select .............................Tracage du trait.... End Sub
Daniel.M
Hello,
Mieux structuré, le code donne ceci (et il retourne la première date lorsqu'elles sont toutes plus grandes qu'Aujourd'hui +3 ) On considère que les données sont triées ascendantes.
Dim ResRech As Variant, UneDate As Double, Trouvee As Boolean UneDate = Date * 1 + 3# With Range("M11", Range("M65000").End(xlUp))
ResRech = Application.Match(UneDate, .Cells) If IsError(ResRech) Then ' Toutes les Dates sont + grandes ResRech = 1 ' on prend la première Trouvee = True ElseIf ResRech < .Rows.Count Or .Cells(ResRech) = UneDate Then Trouvee = True If .Cells(ResRech) <> UneDate Then ResRech = ResRech + 1 'incr si pas égal End If Else Trouvee = False ' Toutes les Dates sont + petites End If
If Trouvee Then .Cells(ResRech, -11).Resize(1, 13).Select MsgBox "La valeur est située à la cellule " _ & .Cells(ResRech).Address & "." Else MsgBox "Pas de valeur égale ou + grande que " _ & Format(UneDate, "yyyy mm dd") End If End With
Daniel M.
Hello,
Mieux structuré, le code donne ceci (et il retourne la première date
lorsqu'elles sont toutes plus grandes qu'Aujourd'hui +3 )
On considère que les données sont triées ascendantes.
Dim ResRech As Variant, UneDate As Double, Trouvee As Boolean
UneDate = Date * 1 + 3#
With Range("M11", Range("M65000").End(xlUp))
ResRech = Application.Match(UneDate, .Cells)
If IsError(ResRech) Then ' Toutes les Dates sont + grandes
ResRech = 1 ' on prend la première
Trouvee = True
ElseIf ResRech < .Rows.Count Or .Cells(ResRech) = UneDate Then
Trouvee = True
If .Cells(ResRech) <> UneDate Then
ResRech = ResRech + 1 'incr si pas égal
End If
Else
Trouvee = False ' Toutes les Dates sont + petites
End If
If Trouvee Then
.Cells(ResRech, -11).Resize(1, 13).Select
MsgBox "La valeur est située à la cellule " _
& .Cells(ResRech).Address & "."
Else
MsgBox "Pas de valeur égale ou + grande que " _
& Format(UneDate, "yyyy mm dd")
End If
End With
Mieux structuré, le code donne ceci (et il retourne la première date lorsqu'elles sont toutes plus grandes qu'Aujourd'hui +3 ) On considère que les données sont triées ascendantes.
Dim ResRech As Variant, UneDate As Double, Trouvee As Boolean UneDate = Date * 1 + 3# With Range("M11", Range("M65000").End(xlUp))
ResRech = Application.Match(UneDate, .Cells) If IsError(ResRech) Then ' Toutes les Dates sont + grandes ResRech = 1 ' on prend la première Trouvee = True ElseIf ResRech < .Rows.Count Or .Cells(ResRech) = UneDate Then Trouvee = True If .Cells(ResRech) <> UneDate Then ResRech = ResRech + 1 'incr si pas égal End If Else Trouvee = False ' Toutes les Dates sont + petites End If
If Trouvee Then .Cells(ResRech, -11).Resize(1, 13).Select MsgBox "La valeur est située à la cellule " _ & .Cells(ResRech).Address & "." Else MsgBox "Pas de valeur égale ou + grande que " _ & Format(UneDate, "yyyy mm dd") End If End With
Daniel M.
Domi
Merci Isabelle et Daniel Cela marche parfaitement avec vos 2 solutions ;o)) Domi
"Daniel.M" a écrit dans le message de news:
Hello,
Mieux structuré, le code donne ceci (et il retourne la première date lorsqu'elles sont toutes plus grandes qu'Aujourd'hui +3 ) On considère que les données sont triées ascendantes.
Dim ResRech As Variant, UneDate As Double, Trouvee As Boolean UneDate = Date * 1 + 3# With Range("M11", Range("M65000").End(xlUp))
ResRech = Application.Match(UneDate, .Cells) If IsError(ResRech) Then ' Toutes les Dates sont + grandes ResRech = 1 ' on prend la première Trouvee = True ElseIf ResRech < .Rows.Count Or .Cells(ResRech) = UneDate Then Trouvee = True If .Cells(ResRech) <> UneDate Then ResRech = ResRech + 1 'incr si pas égal End If Else Trouvee = False ' Toutes les Dates sont + petites End If
If Trouvee Then .Cells(ResRech, -11).Resize(1, 13).Select MsgBox "La valeur est située à la cellule " _ & .Cells(ResRech).Address & "." Else MsgBox "Pas de valeur égale ou + grande que " _ & Format(UneDate, "yyyy mm dd") End If End With
Daniel M.
Merci Isabelle et Daniel
Cela marche parfaitement avec vos 2 solutions ;o))
Domi
"Daniel.M" <prenom.maher@bigfoot.inutil.com> a écrit dans le message de
news:ekKS4guYEHA.2456@TK2MSFTNGP10.phx.gbl...
Hello,
Mieux structuré, le code donne ceci (et il retourne la première date
lorsqu'elles sont toutes plus grandes qu'Aujourd'hui +3 )
On considère que les données sont triées ascendantes.
Dim ResRech As Variant, UneDate As Double, Trouvee As Boolean
UneDate = Date * 1 + 3#
With Range("M11", Range("M65000").End(xlUp))
ResRech = Application.Match(UneDate, .Cells)
If IsError(ResRech) Then ' Toutes les Dates sont + grandes
ResRech = 1 ' on prend la première
Trouvee = True
ElseIf ResRech < .Rows.Count Or .Cells(ResRech) = UneDate Then
Trouvee = True
If .Cells(ResRech) <> UneDate Then
ResRech = ResRech + 1 'incr si pas égal
End If
Else
Trouvee = False ' Toutes les Dates sont + petites
End If
If Trouvee Then
.Cells(ResRech, -11).Resize(1, 13).Select
MsgBox "La valeur est située à la cellule " _
& .Cells(ResRech).Address & "."
Else
MsgBox "Pas de valeur égale ou + grande que " _
& Format(UneDate, "yyyy mm dd")
End If
End With
Merci Isabelle et Daniel Cela marche parfaitement avec vos 2 solutions ;o)) Domi
"Daniel.M" a écrit dans le message de news:
Hello,
Mieux structuré, le code donne ceci (et il retourne la première date lorsqu'elles sont toutes plus grandes qu'Aujourd'hui +3 ) On considère que les données sont triées ascendantes.
Dim ResRech As Variant, UneDate As Double, Trouvee As Boolean UneDate = Date * 1 + 3# With Range("M11", Range("M65000").End(xlUp))
ResRech = Application.Match(UneDate, .Cells) If IsError(ResRech) Then ' Toutes les Dates sont + grandes ResRech = 1 ' on prend la première Trouvee = True ElseIf ResRech < .Rows.Count Or .Cells(ResRech) = UneDate Then Trouvee = True If .Cells(ResRech) <> UneDate Then ResRech = ResRech + 1 'incr si pas égal End If Else Trouvee = False ' Toutes les Dates sont + petites End If
If Trouvee Then .Cells(ResRech, -11).Resize(1, 13).Select MsgBox "La valeur est située à la cellule " _ & .Cells(ResRech).Address & "." Else MsgBox "Pas de valeur égale ou + grande que " _ & Format(UneDate, "yyyy mm dd") End If End With