Bonsoir
J'ai un fichier excel avec une macro qui crée des fichiers html.
Je voudrais transposer ce fichier sous access , mais ce que je ne sais pas
faire c'est transposer la macro.
Voici un exemple de ma macro excel
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
3stone
Salut,
"jcp" | J'ai un fichier excel avec une macro qui crée des fichiers html. | Je voudrais transposer ce fichier sous access , mais ce que je ne sais pas | faire c'est transposer la macro. | Voici un exemple de ma macro excel | | fichtml = repsite + "" + fichenom + ".htm" | fichtml = repsite + soldatcodesoldat + ".htm" | fichtml = LCase(fichtml) | Open fichtml For Output As 1 | Print #1, "<html>" & Chr$(13) | Print #1, "" & Chr$(13) | Print #1, " <head>" & Chr$(13) | Print #1, "" & Chr$(13) | Print #1, " <title>"; titresite; "</title>" & Chr$(13) | ..................... | | Est il possible d'écrire l'équivalent sous access et si oui connaissez vous | un site qui puisse m'aider.
Pour commencer, le signe de concaténation de chaîne n'est pas "+" pour Access, mais bien le "&" (le + c'est pour les addition ;-)
Le code Print #1, "" & chr(13) est très crado !
Print #1, "<br />" serait plus dans la norme.
Voici (un extrait) de ce que j'utilise depuis un moment... (Je n'ai pas besoin de l'en-tête du fichier html ;-) et que tu devra ajouter au besoin.
'================ début code =========== '--- Ouvrir la requête Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb Set rs = db.OpenRecordset(sRequete)
'--- Création du fichier f = FreeFile Open sChemin & "Equipe.htm" For Output As f Print #f, "<table alignÎnter border=" & iBordure & " cellpadding=" & iDegagement & ">"; Print #f, "<th colspan=9><h3>Equipes - Mannschaften</h3></th>";
iSerie = 0: iPlace = 1
Do '--- boucle sur les enregistrements
Print #f, "<tr>"; 'début ligne
If iSerie < rs!Ser Then 'crée la ligne "frontale" iSerie = rs!Ser iPlace = 1 If iSerie > 1 Then 'crée une séparation entre les équipes Print #f, "<tr><th colSpan=9>~</th></tr>"; End If Print #f, "<th rowspan=" & EquipeParSerie(iSerie) & ">Série : " & iSerie & "</th>"; End If
Print #f, "<td alignÎnter>" & iPlace & "</td>"; 'la place Print #f, "<td align=left>" & rs![Nom_equipe] & "</td>"; 'le nom de l'équipe For j = 1 To 5 Print #f, "<td align=right>" & rs("M" & j) & "</td>"; 'les manches Next j Print #f, "<td align=right>" & rs!Tot & "</td>"; 'le total Print #f, "</tr>"; 'fin de ligne
Print #f, "</table>" Close #f rs.Close: db.Close Set rs = Nothing
'============= fin code ============== Tu peux aussi t'aider du code suivant qui crée un simple fichier texte au départ d'une source: http://users.skynet.be/accesshome/ah_fichiers_generertxt.htm
Il suffit d'y ajouter les balises ad-hoc selon les indications données plus haut ;-)
"jcp"
| J'ai un fichier excel avec une macro qui crée des fichiers html.
| Je voudrais transposer ce fichier sous access , mais ce que je ne sais pas
| faire c'est transposer la macro.
| Voici un exemple de ma macro excel
|
| fichtml = repsite + "" + fichenom + ".htm"
| fichtml = repsite + soldatcodesoldat + ".htm"
| fichtml = LCase(fichtml)
| Open fichtml For Output As 1
| Print #1, "<html>" & Chr$(13)
| Print #1, "" & Chr$(13)
| Print #1, " <head>" & Chr$(13)
| Print #1, "" & Chr$(13)
| Print #1, " <title>"; titresite; "</title>" & Chr$(13)
| .....................
|
| Est il possible d'écrire l'équivalent sous access et si oui connaissez vous
| un site qui puisse m'aider.
Pour commencer, le signe de concaténation de chaîne n'est pas "+" pour
Access, mais bien le "&" (le + c'est pour les addition ;-)
Le code Print #1, "" & chr(13) est très crado !
Print #1, "<br />" serait plus dans la norme.
Voici (un extrait) de ce que j'utilise depuis un moment...
(Je n'ai pas besoin de l'en-tête du fichier html ;-)
et que tu devra ajouter au besoin.
'================ début code ===========
'--- Ouvrir la requête
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset(sRequete)
'--- Création du fichier
f = FreeFile
Open sChemin & "Equipe.htm" For Output As f
Print #f, "<table alignÎnter border=" & iBordure & " cellpadding=" & iDegagement & ">";
Print #f, "<th colspan=9><h3>Equipes - Mannschaften</h3></th>";
iSerie = 0: iPlace = 1
Do '--- boucle sur les enregistrements
Print #f, "<tr>"; 'début ligne
If iSerie < rs!Ser Then 'crée la ligne "frontale"
iSerie = rs!Ser
iPlace = 1
If iSerie > 1 Then 'crée une séparation entre les équipes
Print #f, "<tr><th colSpan=9>~</th></tr>";
End If
Print #f, "<th rowspan=" & EquipeParSerie(iSerie) & ">Série : " & iSerie & "</th>";
End If
Print #f, "<td alignÎnter>" & iPlace & "</td>"; 'la place
Print #f, "<td align=left>" & rs![Nom_equipe] & "</td>"; 'le nom de l'équipe
For j = 1 To 5
Print #f, "<td align=right>" & rs("M" & j) & "</td>"; 'les manches
Next j
Print #f, "<td align=right>" & rs!Tot & "</td>"; 'le total
Print #f, "</tr>"; 'fin de ligne
Print #f, "</table>"
Close #f
rs.Close: db.Close
Set rs = Nothing
'============= fin code ==============
Tu peux aussi t'aider du code suivant qui crée un simple
fichier texte au départ d'une source:
http://users.skynet.be/accesshome/ah_fichiers_generertxt.htm
Il suffit d'y ajouter les balises ad-hoc selon les indications
données plus haut ;-)
"jcp" | J'ai un fichier excel avec une macro qui crée des fichiers html. | Je voudrais transposer ce fichier sous access , mais ce que je ne sais pas | faire c'est transposer la macro. | Voici un exemple de ma macro excel | | fichtml = repsite + "" + fichenom + ".htm" | fichtml = repsite + soldatcodesoldat + ".htm" | fichtml = LCase(fichtml) | Open fichtml For Output As 1 | Print #1, "<html>" & Chr$(13) | Print #1, "" & Chr$(13) | Print #1, " <head>" & Chr$(13) | Print #1, "" & Chr$(13) | Print #1, " <title>"; titresite; "</title>" & Chr$(13) | ..................... | | Est il possible d'écrire l'équivalent sous access et si oui connaissez vous | un site qui puisse m'aider.
Pour commencer, le signe de concaténation de chaîne n'est pas "+" pour Access, mais bien le "&" (le + c'est pour les addition ;-)
Le code Print #1, "" & chr(13) est très crado !
Print #1, "<br />" serait plus dans la norme.
Voici (un extrait) de ce que j'utilise depuis un moment... (Je n'ai pas besoin de l'en-tête du fichier html ;-) et que tu devra ajouter au besoin.
'================ début code =========== '--- Ouvrir la requête Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb Set rs = db.OpenRecordset(sRequete)
'--- Création du fichier f = FreeFile Open sChemin & "Equipe.htm" For Output As f Print #f, "<table alignÎnter border=" & iBordure & " cellpadding=" & iDegagement & ">"; Print #f, "<th colspan=9><h3>Equipes - Mannschaften</h3></th>";
iSerie = 0: iPlace = 1
Do '--- boucle sur les enregistrements
Print #f, "<tr>"; 'début ligne
If iSerie < rs!Ser Then 'crée la ligne "frontale" iSerie = rs!Ser iPlace = 1 If iSerie > 1 Then 'crée une séparation entre les équipes Print #f, "<tr><th colSpan=9>~</th></tr>"; End If Print #f, "<th rowspan=" & EquipeParSerie(iSerie) & ">Série : " & iSerie & "</th>"; End If
Print #f, "<td alignÎnter>" & iPlace & "</td>"; 'la place Print #f, "<td align=left>" & rs![Nom_equipe] & "</td>"; 'le nom de l'équipe For j = 1 To 5 Print #f, "<td align=right>" & rs("M" & j) & "</td>"; 'les manches Next j Print #f, "<td align=right>" & rs!Tot & "</td>"; 'le total Print #f, "</tr>"; 'fin de ligne
Print #f, "</table>" Close #f rs.Close: db.Close Set rs = Nothing
'============= fin code ============== Tu peux aussi t'aider du code suivant qui crée un simple fichier texte au départ d'une source: http://users.skynet.be/accesshome/ah_fichiers_generertxt.htm
Il suffit d'y ajouter les balises ad-hoc selon les indications données plus haut ;-)
Bonsoir Merci de ta réponse Je ne connais pas grand chose à access et rien aux macros access. Comment dois je faire pour entrer le code par exemple celui qui crée un fichier texte. Quand je suis sous access apres avoir ouvert la base j'ai les onglets : tables, requetes, formulaires, etats, macros, modules Quand je vais sous macos je ne vois pas comment entrer directement du code. Quand je vais sous module, j'y arrive bien mais j'ai toujours executer en grisé.
Merci de tes infos
cordialement jclaude
"3stone" a écrit dans le message de news:
Salut,
"jcp" | J'ai un fichier excel avec une macro qui crée des fichiers html. | Je voudrais transposer ce fichier sous access , mais ce que je ne sais pas | faire c'est transposer la macro. | Voici un exemple de ma macro excel | | fichtml = repsite + "" + fichenom + ".htm" | fichtml = repsite + soldatcodesoldat + ".htm" | fichtml = LCase(fichtml) | Open fichtml For Output As 1 | Print #1, "<html>" & Chr$(13) | Print #1, "" & Chr$(13) | Print #1, " <head>" & Chr$(13) | Print #1, "" & Chr$(13) | Print #1, " <title>"; titresite; "</title>" & Chr$(13) | ..................... | | Est il possible d'écrire l'équivalent sous access et si oui connaissez vous | un site qui puisse m'aider.
Pour commencer, le signe de concaténation de chaîne n'est pas "+" pour Access, mais bien le "&" (le + c'est pour les addition ;-)
Le code Print #1, "" & chr(13) est très crado !
Print #1, "<br />" serait plus dans la norme.
Voici (un extrait) de ce que j'utilise depuis un moment... (Je n'ai pas besoin de l'en-tête du fichier html ;-) et que tu devra ajouter au besoin.
'================ début code =========== > '--- Ouvrir la requête Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb Set rs = db.OpenRecordset(sRequete)
'--- Création du fichier f = FreeFile Open sChemin & "Equipe.htm" For Output As f Print #f, "<table alignÎnter border=" & iBordure & " cellpadding=" & iDegagement & ">"; Print #f, "<th colspan=9><h3>Equipes - Mannschaften</h3></th>";
iSerie = 0: iPlace = 1
Do '--- boucle sur les enregistrements
Print #f, "<tr>"; 'début ligne
If iSerie < rs!Ser Then 'crée la ligne "frontale" iSerie = rs!Ser iPlace = 1 If iSerie > 1 Then 'crée une séparation entre les équipes Print #f, "<tr><th colSpan=9>~</th></tr>"; End If Print #f, "<th rowspan=" & EquipeParSerie(iSerie) & ">Série : " & iSerie & "</th>"; End If
Print #f, "<td alignÎnter>" & iPlace & "</td>"; 'la place Print #f, "<td align=left>" & rs![Nom_equipe] & "</td>"; 'le nom de l'équipe For j = 1 To 5 Print #f, "<td align=right>" & rs("M" & j) & "</td>"; 'les manches Next j Print #f, "<td align=right>" & rs!Tot & "</td>"; 'le total Print #f, "</tr>"; 'fin de ligne
Print #f, "</table>" Close #f rs.Close: db.Close Set rs = Nothing
'============= fin code ============== > Tu peux aussi t'aider du code suivant qui crée un simple fichier texte au départ d'une source: http://users.skynet.be/accesshome/ah_fichiers_generertxt.htm
Il suffit d'y ajouter les balises ad-hoc selon les indications données plus haut ;-)
Bonsoir
Merci de ta réponse
Je ne connais pas grand chose à access et rien aux macros access.
Comment dois je faire pour entrer le code par exemple celui qui crée un
fichier texte.
Quand je suis sous access apres avoir ouvert la base j'ai les onglets :
tables, requetes, formulaires, etats, macros, modules
Quand je vais sous macos je ne vois pas comment entrer directement du code.
Quand je vais sous module, j'y arrive bien mais j'ai toujours executer en
grisé.
Merci de tes infos
cordialement
jclaude
"3stone" <3stone_@_skynet_be> a écrit dans le message de news:
OhCm1JN4FHA.1148@tk2msftngp13.phx.gbl...
Salut,
"jcp"
| J'ai un fichier excel avec une macro qui crée des fichiers html.
| Je voudrais transposer ce fichier sous access , mais ce que je ne sais
pas
| faire c'est transposer la macro.
| Voici un exemple de ma macro excel
|
| fichtml = repsite + "" + fichenom + ".htm"
| fichtml = repsite + soldatcodesoldat + ".htm"
| fichtml = LCase(fichtml)
| Open fichtml For Output As 1
| Print #1, "<html>" & Chr$(13)
| Print #1, "" & Chr$(13)
| Print #1, " <head>" & Chr$(13)
| Print #1, "" & Chr$(13)
| Print #1, " <title>"; titresite; "</title>" & Chr$(13)
| .....................
|
| Est il possible d'écrire l'équivalent sous access et si oui connaissez
vous
| un site qui puisse m'aider.
Pour commencer, le signe de concaténation de chaîne n'est pas "+" pour
Access, mais bien le "&" (le + c'est pour les addition ;-)
Le code Print #1, "" & chr(13) est très crado !
Print #1, "<br />" serait plus dans la norme.
Voici (un extrait) de ce que j'utilise depuis un moment...
(Je n'ai pas besoin de l'en-tête du fichier html ;-)
et que tu devra ajouter au besoin.
'================ début code =========== >
'--- Ouvrir la requête
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset(sRequete)
'--- Création du fichier
f = FreeFile
Open sChemin & "Equipe.htm" For Output As f
Print #f, "<table alignÎnter border=" & iBordure & " cellpadding=" &
iDegagement & ">";
Print #f, "<th colspan=9><h3>Equipes - Mannschaften</h3></th>";
iSerie = 0: iPlace = 1
Do '--- boucle sur les enregistrements
Print #f, "<tr>"; 'début ligne
If iSerie < rs!Ser Then 'crée la ligne "frontale"
iSerie = rs!Ser
iPlace = 1
If iSerie > 1 Then 'crée une séparation entre les équipes
Print #f, "<tr><th colSpan=9>~</th></tr>";
End If
Print #f, "<th rowspan=" & EquipeParSerie(iSerie) & ">Série : "
& iSerie & "</th>";
End If
Print #f, "<td alignÎnter>" & iPlace & "</td>"; 'la
place
Print #f, "<td align=left>" & rs![Nom_equipe] & "</td>"; 'le nom
de l'équipe
For j = 1 To 5
Print #f, "<td align=right>" & rs("M" & j) & "</td>"; 'les
manches
Next j
Print #f, "<td align=right>" & rs!Tot & "</td>"; 'le total
Print #f, "</tr>"; 'fin de ligne
Print #f, "</table>"
Close #f
rs.Close: db.Close
Set rs = Nothing
'============= fin code ============== >
Tu peux aussi t'aider du code suivant qui crée un simple
fichier texte au départ d'une source:
http://users.skynet.be/accesshome/ah_fichiers_generertxt.htm
Il suffit d'y ajouter les balises ad-hoc selon les indications
données plus haut ;-)
Bonsoir Merci de ta réponse Je ne connais pas grand chose à access et rien aux macros access. Comment dois je faire pour entrer le code par exemple celui qui crée un fichier texte. Quand je suis sous access apres avoir ouvert la base j'ai les onglets : tables, requetes, formulaires, etats, macros, modules Quand je vais sous macos je ne vois pas comment entrer directement du code. Quand je vais sous module, j'y arrive bien mais j'ai toujours executer en grisé.
Merci de tes infos
cordialement jclaude
"3stone" a écrit dans le message de news:
Salut,
"jcp" | J'ai un fichier excel avec une macro qui crée des fichiers html. | Je voudrais transposer ce fichier sous access , mais ce que je ne sais pas | faire c'est transposer la macro. | Voici un exemple de ma macro excel | | fichtml = repsite + "" + fichenom + ".htm" | fichtml = repsite + soldatcodesoldat + ".htm" | fichtml = LCase(fichtml) | Open fichtml For Output As 1 | Print #1, "<html>" & Chr$(13) | Print #1, "" & Chr$(13) | Print #1, " <head>" & Chr$(13) | Print #1, "" & Chr$(13) | Print #1, " <title>"; titresite; "</title>" & Chr$(13) | ..................... | | Est il possible d'écrire l'équivalent sous access et si oui connaissez vous | un site qui puisse m'aider.
Pour commencer, le signe de concaténation de chaîne n'est pas "+" pour Access, mais bien le "&" (le + c'est pour les addition ;-)
Le code Print #1, "" & chr(13) est très crado !
Print #1, "<br />" serait plus dans la norme.
Voici (un extrait) de ce que j'utilise depuis un moment... (Je n'ai pas besoin de l'en-tête du fichier html ;-) et que tu devra ajouter au besoin.
'================ début code =========== > '--- Ouvrir la requête Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb Set rs = db.OpenRecordset(sRequete)
'--- Création du fichier f = FreeFile Open sChemin & "Equipe.htm" For Output As f Print #f, "<table alignÎnter border=" & iBordure & " cellpadding=" & iDegagement & ">"; Print #f, "<th colspan=9><h3>Equipes - Mannschaften</h3></th>";
iSerie = 0: iPlace = 1
Do '--- boucle sur les enregistrements
Print #f, "<tr>"; 'début ligne
If iSerie < rs!Ser Then 'crée la ligne "frontale" iSerie = rs!Ser iPlace = 1 If iSerie > 1 Then 'crée une séparation entre les équipes Print #f, "<tr><th colSpan=9>~</th></tr>"; End If Print #f, "<th rowspan=" & EquipeParSerie(iSerie) & ">Série : " & iSerie & "</th>"; End If
Print #f, "<td alignÎnter>" & iPlace & "</td>"; 'la place Print #f, "<td align=left>" & rs![Nom_equipe] & "</td>"; 'le nom de l'équipe For j = 1 To 5 Print #f, "<td align=right>" & rs("M" & j) & "</td>"; 'les manches Next j Print #f, "<td align=right>" & rs!Tot & "</td>"; 'le total Print #f, "</tr>"; 'fin de ligne
Print #f, "</table>" Close #f rs.Close: db.Close Set rs = Nothing
'============= fin code ============== > Tu peux aussi t'aider du code suivant qui crée un simple fichier texte au départ d'une source: http://users.skynet.be/accesshome/ah_fichiers_generertxt.htm
Il suffit d'y ajouter les balises ad-hoc selon les indications données plus haut ;-)
"jcp" | Je ne connais pas grand chose à access et rien aux macros access. | Comment dois je faire pour entrer le code par exemple celui qui crée un | fichier texte. | Quand je suis sous access apres avoir ouvert la base j'ai les onglets : | tables, requetes, formulaires, etats, macros, modules | Quand je vais sous macos je ne vois pas comment entrer directement du code. | Quand je vais sous module, j'y arrive bien mais j'ai toujours executer en | grisé.
Effectivement... si tu en es là... ;-)
Pour commencer, ouble les "macro" sous access !
L'équivalent de ce qui existe sous Excel se nomme "module" ! (mais sans la fonction enregistreur :o)
Donc, les "modules VBA" de Access se placent soit dans un module général, onglet module (il ne *s'exécute* pas en les appelant de là) soit ils sont placer dans un formulaire (module de classe) et sont appeler par un événement (clic de bouton, entrée ou sortie de textbox, réception ou perte de focus et des dixaines d'autres ;-) ou également par un autre module.
Il faut aussi distinguer les "Sub" et les "Function" !
Un module "généraliste" (qui est destiné à être appelé de n'importe quel endroit de l'application sont de préférence placer dans les modules généraux (onglet modules) et, s'il doivent retourner une valeur - sont alors définis comme fonction !
Exemple de fonction inutile:
Function fnDateEnString( LaDate As Variant) As String fnDateEnString = Nz(LaDate,"") End Function
a partir de là, tu peux appeler cette fonction de n'importe quel endroit de l'application, et même dans une requête...
Pour revenir à ta question (qui vaut un livre comme réponse ;-)) tu place la fonction donnée par le lien dans un module général et comme il ne doit pas "retourner" une valeur, il peut être une simple Sub (mais une fonction fait également l'affaire)
"jcp"
| Je ne connais pas grand chose à access et rien aux macros access.
| Comment dois je faire pour entrer le code par exemple celui qui crée un
| fichier texte.
| Quand je suis sous access apres avoir ouvert la base j'ai les onglets :
| tables, requetes, formulaires, etats, macros, modules
| Quand je vais sous macos je ne vois pas comment entrer directement du code.
| Quand je vais sous module, j'y arrive bien mais j'ai toujours executer en
| grisé.
Effectivement... si tu en es là... ;-)
Pour commencer, ouble les "macro" sous access !
L'équivalent de ce qui existe sous Excel se nomme "module" !
(mais sans la fonction enregistreur :o)
Donc, les "modules VBA" de Access se placent soit dans un module
général, onglet module (il ne *s'exécute* pas en les appelant de là)
soit ils sont placer dans un formulaire (module de classe) et sont
appeler par un événement (clic de bouton, entrée ou sortie de textbox,
réception ou perte de focus et des dixaines d'autres ;-)
ou également par un autre module.
Il faut aussi distinguer les "Sub" et les "Function" !
Un module "généraliste" (qui est destiné à être appelé de n'importe
quel endroit de l'application sont de préférence placer dans
les modules généraux (onglet modules) et, s'il doivent retourner
une valeur - sont alors définis comme fonction !
Exemple de fonction inutile:
Function fnDateEnString( LaDate As Variant) As String
fnDateEnString = Nz(LaDate,"")
End Function
a partir de là, tu peux appeler cette fonction de n'importe quel
endroit de l'application, et même dans une requête...
Pour revenir à ta question (qui vaut un livre comme réponse ;-))
tu place la fonction donnée par le lien dans un module général
et comme il ne doit pas "retourner" une valeur, il peut être
une simple Sub (mais une fonction fait également l'affaire)
"jcp" | Je ne connais pas grand chose à access et rien aux macros access. | Comment dois je faire pour entrer le code par exemple celui qui crée un | fichier texte. | Quand je suis sous access apres avoir ouvert la base j'ai les onglets : | tables, requetes, formulaires, etats, macros, modules | Quand je vais sous macos je ne vois pas comment entrer directement du code. | Quand je vais sous module, j'y arrive bien mais j'ai toujours executer en | grisé.
Effectivement... si tu en es là... ;-)
Pour commencer, ouble les "macro" sous access !
L'équivalent de ce qui existe sous Excel se nomme "module" ! (mais sans la fonction enregistreur :o)
Donc, les "modules VBA" de Access se placent soit dans un module général, onglet module (il ne *s'exécute* pas en les appelant de là) soit ils sont placer dans un formulaire (module de classe) et sont appeler par un événement (clic de bouton, entrée ou sortie de textbox, réception ou perte de focus et des dixaines d'autres ;-) ou également par un autre module.
Il faut aussi distinguer les "Sub" et les "Function" !
Un module "généraliste" (qui est destiné à être appelé de n'importe quel endroit de l'application sont de préférence placer dans les modules généraux (onglet modules) et, s'il doivent retourner une valeur - sont alors définis comme fonction !
Exemple de fonction inutile:
Function fnDateEnString( LaDate As Variant) As String fnDateEnString = Nz(LaDate,"") End Function
a partir de là, tu peux appeler cette fonction de n'importe quel endroit de l'application, et même dans une requête...
Pour revenir à ta question (qui vaut un livre comme réponse ;-)) tu place la fonction donnée par le lien dans un module général et comme il ne doit pas "retourner" une valeur, il peut être une simple Sub (mais une fonction fait également l'affaire)