Salut,
En VB, j'utilise ceci, on associe les fichier texte à Wordpad, et comme nom fichiertextetZon, attention modifier le chemin je suis sous PlugAndPry XP, on peut même associer une icône différente, à copier dans un module standard.
'adapté d'une source sur vbfrance.com
Private Declare Sub SHChangeNotify Lib "shell32.dll" (ByVal wEventId&, ByVal uFlags&, dwItem1 As Any, dwItem2 As Any)
Private Const SHCNE_ASSOCCHANGED = &H8000000
Private Const SHCNF_IDLIST = &H0&
Private Function Associer(ChApp$, T, NomFich$, Optional ChIcone$) As Boolean
Dim WshShell, Ch$, I&
On Error Resume Next
Set WshShell = CreateObject("Wscript.Shell")
For I = LBound(T) To UBound(T)
'Association de l'extention a un type "NomFich"
WshShell.RegWrite "HKEY_CLASSES_ROOT\." & T(I) & "\", NomFich, "REG_SZ"
Next I
Ch = "HKEY_CLASSES_ROOT\" & NomFich & "\"
WshShell.RegWrite Ch, NomFich & " General", "REG_SZ" ' Declaration de l'emplacement spécifique
WshShell.RegWrite Ch & "Shell\open\command\", Chr(34) & ChApp & Chr(34) & " %1", "REG_SZ" 'Indique le chemin de lexe a ouvrir
If Not IsMissing(ChIcone) Then
WshShell.RegWrite Ch & "DefaultIcon\", ChIcone, "REG_SZ" 'Permet de mettre l'adresse de l'icone à asssocier
SHChangeNotify SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0 'Reinitialise la base d'icone par defaut de windows
End If
Associer = IIf(Err = 0, True, False)
End Function
Sub Changer()
If Associer("C:\Program Files\Windows NT\Accessoires\wordpad.exe", Array("Txt"), "FichierTexteZon") Then
MsgBox "Changement réussi."
Else
MsgBox "Erreur"
End If
End Sub
Donc en VBA, on doit pouvoir bidouiller avec l'évènement sheetfollowhyperlink mais là j'ai pas le temps de tester.
A+++