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

XL 2013 Find date erreur

nicroq

XLDnaute Occasionnel
Bonjour a tous,

J'ai un problème avec la fonction Find dans VBA. Je pense que je ne gère pas bien le format date pour la recherche.
J'ai commencé à taper le code mais impossible de trouver le bon format...

Merci pour votre aide

Cordialemnt
 

Pièces jointes

  • find date.xlsm
    17.1 KB · Affichages: 7

patricktoulon

XLDnaute Barbatruc
bonjour
ben a vrai dire c'est un peu du n'importe quoi ton code
tu semble un peu t’emmêler les pinceaux
Sub date_col()
Dim choix_date As Date

Worksheets("Feuil1").Cells(10, 2) = choix_date'ici choix_date est égal à "00:00:00"

il y a une différence entre dimensionner et instruire une variable
 

job75

XLDnaute Barbatruc
Bonjour nicroq, patricktoulon,

Ceci donnera le bon résultat :
VB:
Sub date_col()
[C10] = [7:7].Find([B10], LookIn:=xlFormulas).Column
End Sub
Perso j'utiliserais plutôt Application.Match, beaucoup plus rapide :
Code:
Sub date_col2()
[C10] = Application.Match([B10], [7:7], 0)
End Sub
A+
 

patricktoulon

XLDnaute Barbatruc
re
bonjour @job75 et la gestion du no find alors !!! tu l'a mangé au petit déjeuné??
en une ligne on pourrait le gérer comme ceci
VB:
Sub date_col2()
[C10] = Application.IfError([7:7].Find([B10], LookIn:=xlFormulas).Column, "")
End Sub
 

nicroq

XLDnaute Occasionnel
Merci pour vos reponses

cependant je souhaiterai garder le fait que B10 soit une variable car je l'extrait d un userform dans mon code global donc pourquoi cela ne marche pas :
en déclarant choix_date as string
[C10] = [7:7].Find(choix_date, LookIn:=xlFormulas).Column

Merci pour vos explications.
 

patricktoulon

XLDnaute Barbatruc
RE ben c'est évident
choix_date doit être alimenté sinon il ne vaut rien
dim choix_date as date
choix_date=[B10].value '(ou .value2 selon utilisation de find ou Match)
[C10] = [7:7].Find(choix_date, LookIn:=xlFormulas).Column



ça n'est pas par ce que tu fait dim choix_date as date qu'il contient une date
c'est juste une instanciation de la variable en tant que date
 

nicroq

XLDnaute Occasionnel
merci, mais l'autre probleme est que les cellules en ligne 7 sont des formules est donc le find ne marche pas et j'ai essayé de modifier le code mais rien n y fait...
POurriez vous m'eclairer (voir fichier joint)

merci d avance
 

Pièces jointes

  • find date.xlsm
    18.1 KB · Affichages: 5

patricktoulon

XLDnaute Barbatruc
Bonjour
tu peux l'utiliser ta fonction en formule
VB:
Function GetColonneOfDate(c As Long)
GetColonneOfDate = Application.IfError(Application.Match(c, [7:7], 0), "")
End Function

la formule en C10
=GetColonneOfDate(B10)
 

Discussions similaires

Réponses
2
Affichages
261
Réponses
5
Affichages
217
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…