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:
hélas ceci ne fonctionne pas car il me trouve non pas P1 mais D1
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)
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
Partager