Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA recherche date en ligne

C@thy

XLDnaute Barbatruc
#1C@thy

XLDnaute Barbatruc

Date d'inscription mars 2005Localisation PARISMessages 2 550UtiliseExcel 2003 (PC)

[h=2]
VBA recherche date en ligne[/h]
Bonjour le forum,

ceci fonctionne pour une recherche de date sur une colonne (la A en l'occurence):

Sub rechercheDate()
DerLigne = Range("A" & Rows.Count).End(xlUp).Row
Set a = Range("A2:A" & DerLigne )
b = CDbl(Date)
c = Application.Match(b, a, 0)
ligdeb = a(c).Row
MsgBox "date trouvée en ligne " & ligdeb
End Sub

mais ceci ne fonctionne pas lorsque les dates sont en ligne... (la ligne 2)
Sub rechercheDateLigne()
derCol = Cells(2, Cells.Columns.Count).End(xlToLeft).Column
Set a = Range("D2" & derCol )
b = CDbl(Date)
c = Application.Match(b, a, 0)
coldate= a(c).column
MsgBox "date trouvée en colonne " & coldate
End Sub

j'imagine que le match (très pratique!) ne fonctionne pas dans ce cas.

Y a-t-il une solution, à part examiner cellule par cellule les dates répertoriées en ligne???

Merci à vous

Bises

C@thy
 
Dernière édition:

titiborregan5

XLDnaute Accro
Re : VBA recherche date en ligne

Bonjour Cathy, le forum,

pourquoi le match ne fonctionnerait-il pas?
avec un .find (je ne sais pas si ça te convient mais bon)
VB:
Range("b5") = Rows(1).Find(what:=Range("a5")).Column

qui me permet de trouver la colonne de la date écrite en A5 et de renvoyer le numéro de la colonne en B5 (je ne sais pas comment on traduit un numéro de colonne en Lettre)

Tibo
Edit : salut Pierrot
 
Dernière édition:

DoubleZero

XLDnaute Barbatruc
Re : VBA recherche date en ligne

Bonjour + bise, C@thy , Pierrot , titiborregan5, le Forum,

Pour une date en ligne 2, peut-être ainsi :

Code:
Option Explicit
Sub Où()
Rows(2).Find(Date).Select
End Sub

A bientôt

P. S. : Je n'ai pas fourni le bon code pour la question posée ... Me faudrait une loupe
 
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : VBA recherche date en ligne

Bonjour à tous ,

En fait si je comprend bien puisque pas de fichier de travail ,
la date n'est pas une valeur mais un calcul de la cellule précédente + 1 ?
Sinon pourquoi convertir en double la date
 

C@thy

XLDnaute Barbatruc
Re : VBA recherche date en ligne

Un grand MERCI à tous les 3,

BRAVO, cela fonctionne.
Oui j'ai bien pensé au find, mais le format de date dans ma ligne est spécial, et cela ne fonctionne pas.

Un immense MERCI...

Bisous bisous

C@thy
 

job75

XLDnaute Barbatruc
Re : VBA recherche date en ligne

Bonjour C@thy, bonjour les ami(e)s,

Il faut définir correctement la plage a :

Code:
Sub rechercheDateLigne()
Dim a As Range, b As Double, c As Variant
Set a = [D2].Resize(, Columns.Count - 3)
b = Date 'CDbl(Date)
c = Application.Match(b, a, 0)
If IsNumeric(c) Then MsgBox "date trouvée en colonne " & c + 3
End Sub
CDbl n'est pas nécessaire si b est bien déclarée As Double.

A+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…