Bonjour,

Je cherche à trouver la dernière colonne contenant en partie un texte définit dans une cellule:

J'ai en faite en D1: "Moy 2015"
La partie numérique est ammenée à changer (par exemple peut devenir Moy 2016)
j'ai ensuite de E1 à AA1 par exemple des date au format dd/mm/yyyy
je cherche au final à calculer une moyenne sur ces dates et pour ce faire, j'ai besoin de connaitre la colonne de la dernière date de l'année pour connaitre mon range cible:
en gros si en D1 j'ai Moy 2015 et que j'ai mon année 2015 qui se trouve de E1 à P1 je cherche à trouver comme dernière colonne P1:

Pour ce faire j'ai pensé au find:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Set C = ThisWorkbook.Worksheets(Sh).Range("A1:AA1").Find(CRITERE, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False)
hélas ceci ne fonctionne pas car il me trouve non pas P1 mais D1
aussi, si je remplace la majuscule de SearchDirection par searchdirection, excel ne me le transforme pas en SearchDirection comme si il ne reconnaissait pas cet argument

Savez-vous pourquoi ma méthode ne trouve pas la bonne occurrence?
Merci d'avance pour votre aide

code complet:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub test_cal_moy(Sh As String)
Dim CRITERE As String
With ThisWorkbook.Worksheets(Sh)
For i = 4 To 6
    CRITERE = Right(.Cells(1, i), 4)
    Set C = ThisWorkbook.Worksheets(Sh).Range("A1:AA1").Find(CRITERE, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False)
    If Not C Is Nothing Then DC = C.Column
Next i
End With
End Sub
Sub testons()
test_cal_moy ("Clinique Boites")
End Sub