1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| Public Function Check_Effectifs(Nom_Presta As String, FirstSearch As Boolean) As Boolean
'-------------------------------
Dim Effectifs_FullFileName As String
Dim fich As Object
Dim Trouve As Range, PlageDeRecherche As Range
'Dim Valeur_Cherchee As String, AdresseTrouvee As String
Dim estouvert As Boolean
Effectifs_FullFileName = "Tdb_Effectifs.xlsx"
Sheets(1).Select
If FirstSearch Then 'si on est à la 1ere rech. on check l'ouverture du xls
'test si le classeur est ouvert
estouvert = False
For Each fich In Workbooks
'Debug.Print fich.Name
If fich.Name = Effectifs_FullFileName Then estouvert = True
Next
If estouvert = False Then
If FileDateTime("C:\fichiersxls\" & Effectifs_FullFileName) < Date Then
MsgBox ("les fichiers shpt n'ont pas été copiés en local ! :-(")
'ChDir "C:\fichiersxls"
Exit Function
Else
Workbooks.Open filename:="C:\fichiersxls\" & Effectifs_FullFileName, UpdateLinks:=0
End If
End If
End If
'Effectifs
Windows(Effectifs_FullFileName).Activate
'supp filtres éventuels
Range("A1").Select
Application.CutCopyMode = False
Selection.AutoFilter
Range("A1").Select
Selection.AutoFilter
ActiveWorkbook.Worksheets(1).ListObjects("effectifHbx").Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets(1).ListObjects("effectifHbx").Sort. _
SortFields.Add Key:=Range("effectifHbx[[#All],[Nom]]"), SortOn:= _
xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(1).ListObjects("effectifHbx"). _
Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Set PlageDeRecherche = ActiveSheet.Columns(1)
'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
Set Trouve = PlageDeRecherche.Cells.Find(what:=Nom_Presta, lookat:=xlWhole)
'traitement de l'erreur possible : Si on ne trouve rien :
If Trouve Is Nothing Then
'ici, traitement pour le cas où la valeur n'est pas trouvée
'AdresseTrouvee = Nom_Presta & " n'est pas présent dans " & PlageDeRecherche.Address
Check_Effectifs = False
Else
'ici, traitement pour le cas où la valeur est trouvée
'AdresseTrouvee = Trouve.Address
Check_Effectifs = True
Cells.Find(what:=Nom_Presta, lookat:=xlWhole).Select
End If
'MsgBox AdresseTrouvee
'vidage des variables
Set PlageDeRecherche = Nothing
Set Trouve = Nothing
End Function |
Partager