VBA RECHERCHEV Valeur_Proche sur date

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 !

Arpette

XLDnaute Impliqué
Bonsoir à toutes et tous, j'espère ne pas sortir de la chartre en ouvrant un nouveau post, car il n'a plus rien à voir avec le précédent.
J'ai une macro construite avec l'aide de Staple et Softmama qui fonctionne très bien. Maintenant, je souhaite chercher une date d'une feuille sur une autre et renvoyer la valeur la plus proche. Mais cela me renvoi qu'une seule valeur qui est la première valeur proche que la macro a trouvé. Le code est dans la dernière recherche en fin de macro.
Merci de votre aide
@+

Cijoint.fr - Service gratuit de dépôt de fichiers
 
Dernière édition:
Re : VBA RECHERCHEV Valeur_Proche sur date

Bonjour à tous

Arpette:
Je ne vois pas où dans ton code tu utilises WorksheetFunction.VLookup (RECHERCHEV en VBA)
Pourtant j'ai relu tout ton code (je parle de celui présent dans la PJ de JCGL)

Voici un exemple utilisant RECHERCHEV en VBA
Code:
Sub Macro1() ' à exécuter dans un classeur vierge
Dim a, b
[A1] = "1": [A2] = "2": [B1] = "b1": [C1] = "c1": [E1] = 3
[A1:A2].AutoFill Destination:=Range("A1:A5")
[B1:C1].AutoFill Destination:=Range("B1:C5")
[A1:C5].Name = "tablo"
a = WorksheetFunction.VLookup([E1], [tablo], 2, 0)
b = WorksheetFunction.VLookup([E1], [tablo], 3, 0)
MsgBox a & vbLf & b
End Sub
 
Dernière édition:
Re : VBA RECHERCHEV Valeur_Proche sur date

Salut Staple, je souhaitais rester avec le même genre de structure avec le code ci-dessous, mais apparemment çà ne fonctionne pas, çà me renvoi 2012 et seulement sur la prmière date trovée. Je vais essayer d'appliquer ta fonction.
Merci de ton aide.
@+

Code:
Set g = Worksheets("5-9-12").Range("N" & Worksheets("5-9-12").Range("N65536").End(xlUp).Row)
Set h = Worksheets("Calendar").Range("B" & Worksheets("Calendar").Range("B65536").End(xlUp).Row)
Do While g.Row > 1
    With Worksheets("Calendar").Range("B2:B" & Worksheets("Calendar").Range("B65536").End(xlUp).Row)
        Set h = .Find(g).True
        If Not h Is Nothing Then
            Départ = h.Address
            Do
                g(1, 3) = h(1, 3)
            
            Set h = .FindNext(h)
            Loop While Not h Is Nothing And h.Address <> Départ
        End If
    End With
Set g = g(0, 1)
Loop
 
Re : VBA RECHERCHEV Valeur_Proche sur date

Bonsoir Staple, je n'arrive pas à appliquer ta fonction. Dans le fichier joint, je l'ai fait avec la fonction Excel, çà fonctionne bien, résultat en jaune. Je souhaiterais le faire en VB pour l'imbriquer dans ma maco "Synthèsetest1.xls"
Merci de ton aide.
@+Regarde la pièce jointe Classeur3.xls
 

Pièces jointes

Re : VBA RECHERCHEV Valeur_Proche sur date

Re

Ton titre évoque RECHERCHEV en VBA, bah moi benoîtement je fais du RECHERCHEV en VBA.

Si tu veux garder ton code initial, dans lequel tu n'emploies pas VLookup, je ne vois pas comment faire pour utiliser Vlookup.

Je repasse par ici après avoir souper.
 
Re : VBA RECHERCHEV Valeur_Proche sur date

Bonsoir tout le monde

Excuse moi Arpette de squatter ton fil mais une j'ai une question concernant une instruction dans ton code

A quoi sert le .True à la fin de .Find(g).True

Et merci de ton hébergement involontaire

Désolé si c'est une question basique pour certains d'entre vous (ou pour tous) mais je voudrais bien savoir avant .... de passer à autre chose

Merci
 
Re : VBA RECHERCHEV Valeur_Proche sur date

Bonjour Banzai, à vrai dire pas grand chose. Je voulais l'utiliser comme "vrai" dans une rehercheV pour qu'il renvoi la valeur la plus proche trouvée. Mais ça me renvoi uniquement la première et ce n'est pas ce que recherche.
@+
 
Re : VBA RECHERCHEV Valeur_Proche sur date

Bonjour


Cela fonctionne (attention à ta syntaxe)
(Et j'ai mis le code dans un module standard)
Je te suggère de lire l'aide d'Excel concernant la fonction RECHERCHEV
Tu comprendras mieux ce qui te guettes au coin du bois 😉
Code:
Sub test()
Dim a
a = WorksheetFunction.VLookup(Sheets("Feuil1").Range("A6"), Sheets("Feuil2").Range("B1:D10000"), 3, True)
[C6] = a
End Sub
 
Dernière édition:
Re : VBA RECHERCHEV Valeur_Proche sur date

Staple, ton code renvoi une seule valeur sur la première date trouvée et ne boucle pas. Je pense que je vais rester sur ma fonction et ne pas utiliser VB pour çà car je pense que ce n'est pas possible.
Merci pour ton aide.
@+
 
- 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
3
Affichages
399
Retour