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

recherche de date

  • Initiateur de la discussion Initiateur de la discussion Seb
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Seb

XLDnaute Occasionnel
Bonjours a tous,

Je viens de faire un petit code pour me retrouver une date dans un tableau, mais il y a une erreur dans le code et je sais pas ou elle se citue.. Je me tourne vers vous si quelqu'un a une solution...

Merci encore

Sub cherche()
Dim vcherche As Variant
vrecherche = InputBox("Saisir la date")
Range("A1").Select

Cells.Find(What:=vrecherche, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
End Sub
 
Re : recherche de date

bonjour seb

je suppose que dans ta feuille, les dates sont en format date

inputbox, c'est du text et dans vrecherche, tu as du texte

vrecherche = cdate(InputBox("Saisir la date")) devrait fonctionner

mais fait comme cela pour un essai, parceque meme si ca marche, quand tu aura une faute de frappe, ca plantera
 
Re : recherche de date

Bonsoir Seb,

Sans tester ta macro et à 1ère vue, regardes la différence sur les données colorées

Sub cherche()
Dim vcherche As Variant
vrecherche = InputBox("Saisir la date")
Range("A1").Select

Cells.Find(What:=vrecherche , After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate


Bonne soirée
Kotov
End Sub

Edit: désolé du doublon Wilfried, t'as été plus rapide ! Bonne soirée à toi.
Et t'as raison, seb a intérêt à mettre sa variable au format date
 
Dernière édition:
Re : recherche de date

Bonsoir,

J'avais pas fait attention que je declarais avec une faute de frappe. Mais ça marche toujours pas...Je sais pas trop comment m'y prendre avec tous ces formats... Je viens aussi de declarer au format date mais ça buggue toujours...
 
Re : recherche de date

re:

j'ai fait des recherches à fond, je n'ai rien trouvé sur find avec des valeurs calculées, ca marche avec des saisies, mais des calculs, je ne sais pas faire
j'ai donc modifié la macro, pour faire une recherche pas a pas

ton fichier en retour
 

Pièces jointes

Re : recherche de date

Bonjour Seb, Kotov, Wilfried

en reprenant ton code d'origine, essaye peut être comme ci dessous :

Code:
Sub cherche()
Dim vrecherche As Date
vrecherche = InputBox("Saisir la date")

Cells.Find(What:=CDate(vrecherche), After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext).Activate

End Sub

bon dimanche
@+
 
Re : recherche de date

Bonjour tout le monde

Une proposition en utilisant la fonction de feuille de calcul EQUIV dans VBA
Code:
Sub EQUIVMultiColonne()
Dim vRecherche As Date
Dim J As Byte
Dim vRow As Long
Dim vLimiteColumn As Byte
Dim Saisie  As Variant
[COLOR="SeaGreen"]'trouve le n° de la dernière colonne utilisée par les tableaux[/COLOR]
vLimiteColumn = Range("IV4").End(xlToLeft).Column
[COLOR="SeaGreen"]'Affiche un champ de saisie[/COLOR]
Saisie = InputBox("Saisir la date")
[COLOR="SeaGreen"]'Contrôle si l'utilisateur à cliquer sur le bouton annuler, ou sur le bouton avec une saisie vide[/COLOR]
If Saisie = "" Then Exit Sub
[COLOR="SeaGreen"]'Convertion la saisie en une date[/COLOR]
[COLOR="SeaGreen"]'la suite nécessite une gestion d'erreur[/COLOR]
On Error Resume Next
vRecherche = CDate(Saisie)
[COLOR="SeaGreen"]'la saisie ne correspond pas à une date[/COLOR]
If vRecherche = 0 Then Exit Sub
Do
[COLOR="SeaGreen"]   'recherche à l'aide de la fonction feuille de calcul EQUIV[/COLOR]
   vRow = Application.WorksheetFunction.Match(vRecherche * 1, Range("B:B").Offset(0, J), 0)
   If vRow > 0 Then
[COLOR="SeaGreen"]      'Date trouvée dans la colonne, sélection de la cellule, et sortie de la sub[/COLOR]
      Cells(vRow, J + 2).Select
      Exit Sub
   End If
[COLOR="SeaGreen"]   'Incrémentation de la colonne de recherche, avec un pas de 13[/COLOR]
   J = J + 13
Loop Until J >= vLimiteColumn
[COLOR="SeaGreen"]'Sortie de la sub la date n'est pas présente dans les tableaux[/COLOR]
End Sub
@+Jean-Marie
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
588
Réponses
3
Affichages
639
Réponses
1
Affichages
347
Réponses
12
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…