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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
| Option Explicit
Public MyFile As String
Public SeparateurMois As String
Public SeparateurJours As String
Public Cellule As Range
Public ColDateReleve As Long
Public ColDonneesImportees As Long
Public ColLienHypertexte As Long
Public ColTemperatureMax As Long
Public ColRepertoireSauvegarde As Long
Public LigneDeTitre As Long
Public DerniereLigne As Long
Public ShStationMeteo As Worksheet
Sub MaJLesLiensHypertextes()
' Cette macro permet de mettre à jour les liens lorsque les fichiers ont changé de place ou de disque dur.
Set ShStationMeteo = ActiveSheet
'-----------------------------------------------------------
' Sélection du répertoire de stockage des fichiers d'analyse
'-----------------------------------------------------------
With UserFbChoixRepertoire
.TextRepertoire = ShStationMeteo.Range("RepertoireDeSauvegarde")
.Show
End With
'----------------------------------
' Mise à jour des liens hypertextes
'----------------------------------
If Continuer = True Then
EtablirLesLiensHypertextesAvecLesFichiersMeteo ShStationMeteo
MsgBox ("Fin de programme !")
End If
Set ShStationMeteo = Nothing
End Sub
Sub EtablirLesLiensHypertextesAvecLesFichiersMeteo(ByVal FeuilleMeteo As Worksheet)
Dim CtrJ As Long
Dim AireDateReleve As Range
Application.ScreenUpdating = False
FeuilleMeteo.Activate
LigneDeTitre = 10
ColDateReleve = ColonneReleves(LigneDeTitre, "Date")
ColDonneesImportees = ColonneReleves(LigneDeTitre, "Importé")
ColLienHypertexte = ColonneReleves(LigneDeTitre, "Hyperlien fichier météo")
ColTemperatureMax = ColonneReleves(LigneDeTitre, "Température maximale")
ColRepertoireSauvegarde = ColonneReleves(LigneDeTitre, "Répertoire de sauvegarde")
With FeuilleMeteo
DerniereLigne = .Cells(.Rows.Count, ColTemperatureMax).End(xlUp).Row
Set AireDateReleve = Range(.Cells(LigneDeTitre + 1, ColDateReleve), .Cells(DerniereLigne, ColDateReleve))
For Each Cellule In AireDateReleve
If Cellule.Offset(0, ColLienHypertexte - ColDateReleve) = "" And Cellule.Offset(0, ColDonneesImportees - ColDateReleve) = "Importé" Then
Cellule.Select
Select Case Month(Cellule)
Case Is < 10
SeparateurMois = "-0"
Case Else
SeparateurMois = "-"
End Select
Select Case Day(Cellule)
Case Is < 10
SeparateurJours = "-0"
Case Else
SeparateurJours = "-"
End Select
NomSauvegardeFichier = "Infoclimat-fr " & .Range("SauvegardeStationMeteo").Value & " " & Year(Cellule) & SeparateurMois & Month(Cellule) & SeparateurJours & Day(Cellule) & ".xlsm"
RechercheFichier .Range("RepertoireDeSauvegarde"), FeuilleMeteo, NomSauvegardeFichier
End If
Next Cellule
Set AireDateReleve = Nothing
End With
Application.ScreenUpdating = True
End Sub
Sub RechercheFichier(DossierRacine As Variant, FeuilleDuLien As Worksheet, NomDuFichierATrouver As Variant)
Dim Fso As Object
Dim Dossier As Object
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = Fso.getfolder(DossierRacine)
MyFile = Dir(Dossier.Path & "\*.*")
Do While MyFile <> "" ' Commence la boucle.
If NomDuFichierATrouver = MyFile Then
FeuilleDuLien.Hyperlinks.Add Anchor:=Cellule.Offset(0, ColLienHypertexte - ColDateReleve), Address:=Dossier.Path & "\" & MyFile, TextToDisplay:=MyFile
Cellule.Offset(0, ColRepertoireSauvegarde - ColDateReleve) = Dossier.Path
End If
MyFile = Dir ' Extrait l'entrée suivante.
Loop
Set Dossier = Nothing
Set Fso = Nothing
End Sub |
Partager