-----Message d'origine-----
Bonsoir Claudio;
As-tu bien renseigné le nom du fichier d'aide associé à
ton projet dans les
propriétés du projet ?
Cela ne fonctionne qu'avec des fichiers d'aide .hlp et
non pas des fichiers
d'aide .chm !!!
Tu pourrais t' en sortir en ajoutant un bouton d'aide qui
exécuterait
l'affichage de l'aide au moyen d'une fonction API comme
dans l'exemple
suivant:
(J'ai mis les 2 possibilités .chm et .hlp, tu feras le
ménage...)
Option Explicit
Private Declare Function FindWindow& Lib "user32"
Alias "FindWindowA" _
(ByVal lpClassName$, ByVal lpWindowName$)
'// Fichiers d'aide .hlp
Private Declare Function WinHelp& Lib "user32.dll"
Alias "WinHelpA" _
(ByVal hWndMain&, ByVal lpHelpFile$, ByVal uCommand&,
dwData As Any)
'// Fichiers d'aide .chm
Private Declare Function HtmlHelp& Lib "hhctrl.ocx"
Alias "HtmlHelpA" _
(ByVal hwndCaller&, ByVal pszFile$, ByVal uCommand&,
dwData As Any)
'// Pour info, constantes .chm:
'Const HH_DISPLAY_TOPIC = &H0
'Const HH_SET_WIN_TYPE = &H4
'Const HH_GET_WIN_TYPE = &H5
'Const HH_GET_WIN_HANDLE = &H6
' Display string resource ID or text in a popupwin.
'Const HH_DISPLAY_TEXT_POPUP = &HE
' Display mapped numeric value in dwdata
'Const HH_HELP_CONTEXT = &HF
' Text pop-up help, similar to WinHelp's HELP_CONTEXTMENU
'Const HH_TP_HELP_CONTEXTMENU = &H10
' Text pop-up help, similar to WinHelp's HELP_WM_HELP
'Const HH_TP_HELP_WM_HELP = &H11
Sub AidePerso()
' Affiche le sommaire de l'aide
ShowChm "c:Retten.chm"
'ShowHelp "c:Retten.hlp"
' Affiche une rubrique particulière de l'aide
'ShowChm "c:Retten.chm", 1010
'ShowHelp "c:Retten.hlp", 1010
End Sub
Sub ShowChm(ChmFile$, Optional idx& = 0)
Dim hWnd&
hWnd = FindWindow(vbNullString, Application.Caption)
Call HtmlHelp(hWnd, ChmFile, &H0, ByVal idx)
End Sub
Sub ShowHlp(HlpFile$, Optional idx& = 0)
Dim i&, hWnd&
If idx Then i& = &H1 Else i& = &H3
hWnd = FindWindow(vbNullString, Application.Caption)
Call WinHelp(hWnd, HlpFile, i, ByVal idx)
End Sub
MP
"Claudio" a écrit
dans le message de
news:382501c48f79$68f72a60$
Hi all,
pour un fichiers xls contenat une grosse macro, j'ai
associé un fichier d'aide en ligne (.chm).
Pour chaque userform concernée, j'ai associé un
HelpContextId, comme indiqué dans la doc.
En principe, lorsque je presse F1, çà devrait m'afficher
qqch, mais balle peau ...
Manquerait-il qqch ou bien la vérité est-elle ailleurs ?
D'avance merci
Claudio
.
-----Message d'origine-----
Bonsoir Claudio;
As-tu bien renseigné le nom du fichier d'aide associé à
ton projet dans les
propriétés du projet ?
Cela ne fonctionne qu'avec des fichiers d'aide .hlp et
non pas des fichiers
d'aide .chm !!!
Tu pourrais t' en sortir en ajoutant un bouton d'aide qui
exécuterait
l'affichage de l'aide au moyen d'une fonction API comme
dans l'exemple
suivant:
(J'ai mis les 2 possibilités .chm et .hlp, tu feras le
ménage...)
Option Explicit
Private Declare Function FindWindow& Lib "user32"
Alias "FindWindowA" _
(ByVal lpClassName$, ByVal lpWindowName$)
'// Fichiers d'aide .hlp
Private Declare Function WinHelp& Lib "user32.dll"
Alias "WinHelpA" _
(ByVal hWndMain&, ByVal lpHelpFile$, ByVal uCommand&,
dwData As Any)
'// Fichiers d'aide .chm
Private Declare Function HtmlHelp& Lib "hhctrl.ocx"
Alias "HtmlHelpA" _
(ByVal hwndCaller&, ByVal pszFile$, ByVal uCommand&,
dwData As Any)
'// Pour info, constantes .chm:
'Const HH_DISPLAY_TOPIC = &H0
'Const HH_SET_WIN_TYPE = &H4
'Const HH_GET_WIN_TYPE = &H5
'Const HH_GET_WIN_HANDLE = &H6
' Display string resource ID or text in a popupwin.
'Const HH_DISPLAY_TEXT_POPUP = &HE
' Display mapped numeric value in dwdata
'Const HH_HELP_CONTEXT = &HF
' Text pop-up help, similar to WinHelp's HELP_CONTEXTMENU
'Const HH_TP_HELP_CONTEXTMENU = &H10
' Text pop-up help, similar to WinHelp's HELP_WM_HELP
'Const HH_TP_HELP_WM_HELP = &H11
Sub AidePerso()
' Affiche le sommaire de l'aide
ShowChm "c:Retten.chm"
'ShowHelp "c:Retten.hlp"
' Affiche une rubrique particulière de l'aide
'ShowChm "c:Retten.chm", 1010
'ShowHelp "c:Retten.hlp", 1010
End Sub
Sub ShowChm(ChmFile$, Optional idx& = 0)
Dim hWnd&
hWnd = FindWindow(vbNullString, Application.Caption)
Call HtmlHelp(hWnd, ChmFile, &H0, ByVal idx)
End Sub
Sub ShowHlp(HlpFile$, Optional idx& = 0)
Dim i&, hWnd&
If idx Then i& = &H1 Else i& = &H3
hWnd = FindWindow(vbNullString, Application.Caption)
Call WinHelp(hWnd, HlpFile, i, ByVal idx)
End Sub
MP
"Claudio" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:382501c48f79$68f72a60$a501280a@phx.gbl...
Hi all,
pour un fichiers xls contenat une grosse macro, j'ai
associé un fichier d'aide en ligne (.chm).
Pour chaque userform concernée, j'ai associé un
HelpContextId, comme indiqué dans la doc.
En principe, lorsque je presse F1, çà devrait m'afficher
qqch, mais balle peau ...
Manquerait-il qqch ou bien la vérité est-elle ailleurs ?
D'avance merci
Claudio
.
-----Message d'origine-----
Bonsoir Claudio;
As-tu bien renseigné le nom du fichier d'aide associé à
ton projet dans les
propriétés du projet ?
Cela ne fonctionne qu'avec des fichiers d'aide .hlp et
non pas des fichiers
d'aide .chm !!!
Tu pourrais t' en sortir en ajoutant un bouton d'aide qui
exécuterait
l'affichage de l'aide au moyen d'une fonction API comme
dans l'exemple
suivant:
(J'ai mis les 2 possibilités .chm et .hlp, tu feras le
ménage...)
Option Explicit
Private Declare Function FindWindow& Lib "user32"
Alias "FindWindowA" _
(ByVal lpClassName$, ByVal lpWindowName$)
'// Fichiers d'aide .hlp
Private Declare Function WinHelp& Lib "user32.dll"
Alias "WinHelpA" _
(ByVal hWndMain&, ByVal lpHelpFile$, ByVal uCommand&,
dwData As Any)
'// Fichiers d'aide .chm
Private Declare Function HtmlHelp& Lib "hhctrl.ocx"
Alias "HtmlHelpA" _
(ByVal hwndCaller&, ByVal pszFile$, ByVal uCommand&,
dwData As Any)
'// Pour info, constantes .chm:
'Const HH_DISPLAY_TOPIC = &H0
'Const HH_SET_WIN_TYPE = &H4
'Const HH_GET_WIN_TYPE = &H5
'Const HH_GET_WIN_HANDLE = &H6
' Display string resource ID or text in a popupwin.
'Const HH_DISPLAY_TEXT_POPUP = &HE
' Display mapped numeric value in dwdata
'Const HH_HELP_CONTEXT = &HF
' Text pop-up help, similar to WinHelp's HELP_CONTEXTMENU
'Const HH_TP_HELP_CONTEXTMENU = &H10
' Text pop-up help, similar to WinHelp's HELP_WM_HELP
'Const HH_TP_HELP_WM_HELP = &H11
Sub AidePerso()
' Affiche le sommaire de l'aide
ShowChm "c:Retten.chm"
'ShowHelp "c:Retten.hlp"
' Affiche une rubrique particulière de l'aide
'ShowChm "c:Retten.chm", 1010
'ShowHelp "c:Retten.hlp", 1010
End Sub
Sub ShowChm(ChmFile$, Optional idx& = 0)
Dim hWnd&
hWnd = FindWindow(vbNullString, Application.Caption)
Call HtmlHelp(hWnd, ChmFile, &H0, ByVal idx)
End Sub
Sub ShowHlp(HlpFile$, Optional idx& = 0)
Dim i&, hWnd&
If idx Then i& = &H1 Else i& = &H3
hWnd = FindWindow(vbNullString, Application.Caption)
Call WinHelp(hWnd, HlpFile, i, ByVal idx)
End Sub
MP
"Claudio" a écrit
dans le message de
news:382501c48f79$68f72a60$
Hi all,
pour un fichiers xls contenat une grosse macro, j'ai
associé un fichier d'aide en ligne (.chm).
Pour chaque userform concernée, j'ai associé un
HelpContextId, comme indiqué dans la doc.
En principe, lorsque je presse F1, çà devrait m'afficher
qqch, mais balle peau ...
Manquerait-il qqch ou bien la vérité est-elle ailleurs ?
D'avance merci
Claudio
.
-----Message d'origine-----
Bonsoir Claudio;
As-tu bien renseigné le nom du fichier d'aide associé à
ton projet dans les
propriétés du projet ?
Cela ne fonctionne qu'avec des fichiers d'aide .hlp et
non pas des fichiers
d'aide .chm !!!
Tu pourrais t' en sortir en ajoutant un bouton d'aide qui
exécuterait
l'affichage de l'aide au moyen d'une fonction API comme
dans l'exemple
suivant:
(J'ai mis les 2 possibilités .chm et .hlp, tu feras le
ménage...)
Option Explicit
Private Declare Function FindWindow& Lib "user32"
Alias "FindWindowA" _
(ByVal lpClassName$, ByVal lpWindowName$)
'// Fichiers d'aide .hlp
Private Declare Function WinHelp& Lib "user32.dll"
Alias "WinHelpA" _
(ByVal hWndMain&, ByVal lpHelpFile$, ByVal uCommand&,
dwData As Any)
'// Fichiers d'aide .chm
Private Declare Function HtmlHelp& Lib "hhctrl.ocx"
Alias "HtmlHelpA" _
(ByVal hwndCaller&, ByVal pszFile$, ByVal uCommand&,
dwData As Any)
'// Pour info, constantes .chm:
'Const HH_DISPLAY_TOPIC = &H0
'Const HH_SET_WIN_TYPE = &H4
'Const HH_GET_WIN_TYPE = &H5
'Const HH_GET_WIN_HANDLE = &H6
' Display string resource ID or text in a popupwin.
'Const HH_DISPLAY_TEXT_POPUP = &HE
' Display mapped numeric value in dwdata
'Const HH_HELP_CONTEXT = &HF
' Text pop-up help, similar to WinHelp's HELP_CONTEXTMENU
'Const HH_TP_HELP_CONTEXTMENU = &H10
' Text pop-up help, similar to WinHelp's HELP_WM_HELP
'Const HH_TP_HELP_WM_HELP = &H11
Sub AidePerso()
' Affiche le sommaire de l'aide
ShowChm "c:Retten.chm"
'ShowHelp "c:Retten.hlp"
' Affiche une rubrique particulière de l'aide
'ShowChm "c:Retten.chm", 1010
'ShowHelp "c:Retten.hlp", 1010
End Sub
Sub ShowChm(ChmFile$, Optional idx& = 0)
Dim hWnd&
hWnd = FindWindow(vbNullString, Application.Caption)
Call HtmlHelp(hWnd, ChmFile, &H0, ByVal idx)
End Sub
Sub ShowHlp(HlpFile$, Optional idx& = 0)
Dim i&, hWnd&
If idx Then i& = &H1 Else i& = &H3
hWnd = FindWindow(vbNullString, Application.Caption)
Call WinHelp(hWnd, HlpFile, i, ByVal idx)
End Sub
MP
"Claudio" a écrit
dans le message de
news:382501c48f79$68f72a60$
Hi all,
pour un fichiers xls contenat une grosse macro, j'ai
associé un fichier d'aide en ligne (.chm).
Pour chaque userform concernée, j'ai associé un
HelpContextId, comme indiqué dans la doc.
En principe, lorsque je presse F1, çà devrait m'afficher
qqch, mais balle peau ...
Manquerait-il qqch ou bien la vérité est-elle ailleurs ?
D'avance merci
Claudio
.
-----Message d'origine-----
Bonsoir Claudio;
As-tu bien renseigné le nom du fichier d'aide associé à
ton projet dans les
propriétés du projet ?
Cela ne fonctionne qu'avec des fichiers d'aide .hlp et
non pas des fichiers
d'aide .chm !!!
Tu pourrais t' en sortir en ajoutant un bouton d'aide qui
exécuterait
l'affichage de l'aide au moyen d'une fonction API comme
dans l'exemple
suivant:
(J'ai mis les 2 possibilités .chm et .hlp, tu feras le
ménage...)
Option Explicit
Private Declare Function FindWindow& Lib "user32"
Alias "FindWindowA" _
(ByVal lpClassName$, ByVal lpWindowName$)
'// Fichiers d'aide .hlp
Private Declare Function WinHelp& Lib "user32.dll"
Alias "WinHelpA" _
(ByVal hWndMain&, ByVal lpHelpFile$, ByVal uCommand&,
dwData As Any)
'// Fichiers d'aide .chm
Private Declare Function HtmlHelp& Lib "hhctrl.ocx"
Alias "HtmlHelpA" _
(ByVal hwndCaller&, ByVal pszFile$, ByVal uCommand&,
dwData As Any)
'// Pour info, constantes .chm:
'Const HH_DISPLAY_TOPIC = &H0
'Const HH_SET_WIN_TYPE = &H4
'Const HH_GET_WIN_TYPE = &H5
'Const HH_GET_WIN_HANDLE = &H6
' Display string resource ID or text in a popupwin.
'Const HH_DISPLAY_TEXT_POPUP = &HE
' Display mapped numeric value in dwdata
'Const HH_HELP_CONTEXT = &HF
' Text pop-up help, similar to WinHelp's HELP_CONTEXTMENU
'Const HH_TP_HELP_CONTEXTMENU = &H10
' Text pop-up help, similar to WinHelp's HELP_WM_HELP
'Const HH_TP_HELP_WM_HELP = &H11
Sub AidePerso()
' Affiche le sommaire de l'aide
ShowChm "c:Retten.chm"
'ShowHelp "c:Retten.hlp"
' Affiche une rubrique particulière de l'aide
'ShowChm "c:Retten.chm", 1010
'ShowHelp "c:Retten.hlp", 1010
End Sub
Sub ShowChm(ChmFile$, Optional idx& = 0)
Dim hWnd&
hWnd = FindWindow(vbNullString, Application.Caption)
Call HtmlHelp(hWnd, ChmFile, &H0, ByVal idx)
End Sub
Sub ShowHlp(HlpFile$, Optional idx& = 0)
Dim i&, hWnd&
If idx Then i& = &H1 Else i& = &H3
hWnd = FindWindow(vbNullString, Application.Caption)
Call WinHelp(hWnd, HlpFile, i, ByVal idx)
End Sub
MP
"Claudio" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:382501c48f79$68f72a60$a501280a@phx.gbl...
Hi all,
pour un fichiers xls contenat une grosse macro, j'ai
associé un fichier d'aide en ligne (.chm).
Pour chaque userform concernée, j'ai associé un
HelpContextId, comme indiqué dans la doc.
En principe, lorsque je presse F1, çà devrait m'afficher
qqch, mais balle peau ...
Manquerait-il qqch ou bien la vérité est-elle ailleurs ?
D'avance merci
Claudio
.
-----Message d'origine-----
Bonsoir Claudio;
As-tu bien renseigné le nom du fichier d'aide associé à
ton projet dans les
propriétés du projet ?
Cela ne fonctionne qu'avec des fichiers d'aide .hlp et
non pas des fichiers
d'aide .chm !!!
Tu pourrais t' en sortir en ajoutant un bouton d'aide qui
exécuterait
l'affichage de l'aide au moyen d'une fonction API comme
dans l'exemple
suivant:
(J'ai mis les 2 possibilités .chm et .hlp, tu feras le
ménage...)
Option Explicit
Private Declare Function FindWindow& Lib "user32"
Alias "FindWindowA" _
(ByVal lpClassName$, ByVal lpWindowName$)
'// Fichiers d'aide .hlp
Private Declare Function WinHelp& Lib "user32.dll"
Alias "WinHelpA" _
(ByVal hWndMain&, ByVal lpHelpFile$, ByVal uCommand&,
dwData As Any)
'// Fichiers d'aide .chm
Private Declare Function HtmlHelp& Lib "hhctrl.ocx"
Alias "HtmlHelpA" _
(ByVal hwndCaller&, ByVal pszFile$, ByVal uCommand&,
dwData As Any)
'// Pour info, constantes .chm:
'Const HH_DISPLAY_TOPIC = &H0
'Const HH_SET_WIN_TYPE = &H4
'Const HH_GET_WIN_TYPE = &H5
'Const HH_GET_WIN_HANDLE = &H6
' Display string resource ID or text in a popupwin.
'Const HH_DISPLAY_TEXT_POPUP = &HE
' Display mapped numeric value in dwdata
'Const HH_HELP_CONTEXT = &HF
' Text pop-up help, similar to WinHelp's HELP_CONTEXTMENU
'Const HH_TP_HELP_CONTEXTMENU = &H10
' Text pop-up help, similar to WinHelp's HELP_WM_HELP
'Const HH_TP_HELP_WM_HELP = &H11
Sub AidePerso()
' Affiche le sommaire de l'aide
ShowChm "c:Retten.chm"
'ShowHelp "c:Retten.hlp"
' Affiche une rubrique particulière de l'aide
'ShowChm "c:Retten.chm", 1010
'ShowHelp "c:Retten.hlp", 1010
End Sub
Sub ShowChm(ChmFile$, Optional idx& = 0)
Dim hWnd&
hWnd = FindWindow(vbNullString, Application.Caption)
Call HtmlHelp(hWnd, ChmFile, &H0, ByVal idx)
End Sub
Sub ShowHlp(HlpFile$, Optional idx& = 0)
Dim i&, hWnd&
If idx Then i& = &H1 Else i& = &H3
hWnd = FindWindow(vbNullString, Application.Caption)
Call WinHelp(hWnd, HlpFile, i, ByVal idx)
End Sub
MP
"Claudio" a écrit
dans le message de
news:382501c48f79$68f72a60$
Hi all,
pour un fichiers xls contenat une grosse macro, j'ai
associé un fichier d'aide en ligne (.chm).
Pour chaque userform concernée, j'ai associé un
HelpContextId, comme indiqué dans la doc.
En principe, lorsque je presse F1, çà devrait m'afficher
qqch, mais balle peau ...
Manquerait-il qqch ou bien la vérité est-elle ailleurs ?
D'avance merci
Claudio
.
-----Message d'origine-----
Bonjour Claudio;
Autant pour moi, tu as la possibilité d'utiliser les
fichiers d'aide .chm
2 façons de faire:
1 - En dur avec le mode Création
Dans le menu Outils / Propriétés de VBAProject, renseigne
le champ "Nom du fichier
d'aide" au moyen du browser associé en choisissant
HtmlHelp (*.chm) comme type de
fichier.
Renseigner les propriétés de ton UserForm:
HelpContextID (Ton numéro de contexte à afficher lors de
l'appui sur la touche F1)
WhatsThisHelp (Mettre à True)
Si tu souhaites des aides particulières pour les
contrôles, tu peux renseigner la
propriété HelpContextID de chaque contrôle accessible à
l'utilisateur (l'appui sur
F1 lorsque le contrôle à le focus affichera le numéro de
rubrique indiqué) et même
utiliser le bouton en forme de point d'interrogation à
coté de la croix de
fermeture en mettant la propriété WhatsThisButton de to
UserForm à True.
2 - Par programmation
Mettre la propriété WhatsThisHelp de ton UserForm à True
en mode création car
cette propriété est en lecture seule et ne peut être
modifiée en mode exécution.
Private Sub UserForm_Initialize()
Const MyHelp$ = "C:ExcelHelpvbSample.chm"
Application.ThisWorkbook.VBProject.HelpFile = MyHelp
Application.ThisWorkbook.VBProject.HelpContextID = 0
Me.HelpContextID = 3000
End Sub
MP
"Claudio" a écrit
dans le message de
news:3eac01c48ff6$f0c16730$
Merci beaucoup pour la rapidité et la précision de la
réponse.
Pour ce qui est du .chm, étant donné qu'XL le propose dans
les types de fichiers à associer, je pensais que ce serait
OK.
J'avais essayé d'associer du code ;
pas de soucis pour ajouter une ligne de menu qui pointe
sur la première page de l'aide.
Par contre, je ne sais pas comment faire pour appeler la
page d'aide associée à un écran particulier sans ajouter
de bouton à la userform (je connais le code, avec le
ContextId, mais je n'arrive pas à l'associer à l'appui sur
la touche "F1").
Si tu as une idée ...
Claudio-----Message d'origine-----
Bonsoir Claudio;
As-tu bien renseigné le nom du fichier d'aide associé à
ton projet dans lespropriétés du projet ?
Cela ne fonctionne qu'avec des fichiers d'aide .hlp et
non pas des fichiersd'aide .chm !!!
Tu pourrais t' en sortir en ajoutant un bouton d'aide qui
exécuteraitl'affichage de l'aide au moyen d'une fonction API comme
dans l'exemplesuivant:
(J'ai mis les 2 possibilités .chm et .hlp, tu feras le
ménage...)
Option Explicit
Private Declare Function FindWindow& Lib "user32"
Alias "FindWindowA" _(ByVal lpClassName$, ByVal lpWindowName$)
'// Fichiers d'aide .hlp
Private Declare Function WinHelp& Lib "user32.dll"
Alias "WinHelpA" _(ByVal hWndMain&, ByVal lpHelpFile$, ByVal uCommand&,
dwData As Any)'// Fichiers d'aide .chm
Private Declare Function HtmlHelp& Lib "hhctrl.ocx"
Alias "HtmlHelpA" _(ByVal hwndCaller&, ByVal pszFile$, ByVal uCommand&,
dwData As Any)'// Pour info, constantes .chm:
'Const HH_DISPLAY_TOPIC = &H0
'Const HH_SET_WIN_TYPE = &H4
'Const HH_GET_WIN_TYPE = &H5
'Const HH_GET_WIN_HANDLE = &H6
' Display string resource ID or text in a popupwin.
'Const HH_DISPLAY_TEXT_POPUP = &HE
' Display mapped numeric value in dwdata
'Const HH_HELP_CONTEXT = &HF
' Text pop-up help, similar to WinHelp's HELP_CONTEXTMENU
'Const HH_TP_HELP_CONTEXTMENU = &H10
' Text pop-up help, similar to WinHelp's HELP_WM_HELP
'Const HH_TP_HELP_WM_HELP = &H11
Sub AidePerso()
' Affiche le sommaire de l'aide
ShowChm "c:Retten.chm"
'ShowHelp "c:Retten.hlp"
' Affiche une rubrique particulière de l'aide
'ShowChm "c:Retten.chm", 1010
'ShowHelp "c:Retten.hlp", 1010
End Sub
Sub ShowChm(ChmFile$, Optional idx& = 0)
Dim hWnd&
hWnd = FindWindow(vbNullString, Application.Caption)
Call HtmlHelp(hWnd, ChmFile, &H0, ByVal idx)
End Sub
Sub ShowHlp(HlpFile$, Optional idx& = 0)
Dim i&, hWnd&
If idx Then i& = &H1 Else i& = &H3
hWnd = FindWindow(vbNullString, Application.Caption)
Call WinHelp(hWnd, HlpFile, i, ByVal idx)
End Sub
MP
"Claudio" a écrit
dans le message denews:382501c48f79$68f72a60$
Hi all,
pour un fichiers xls contenat une grosse macro, j'ai
associé un fichier d'aide en ligne (.chm).
Pour chaque userform concernée, j'ai associé un
HelpContextId, comme indiqué dans la doc.
En principe, lorsque je presse F1, çà devrait m'afficher
qqch, mais balle peau ...
Manquerait-il qqch ou bien la vérité est-elle ailleurs ?
D'avance merci
Claudio
.
.
-----Message d'origine-----
Bonjour Claudio;
Autant pour moi, tu as la possibilité d'utiliser les
fichiers d'aide .chm
2 façons de faire:
1 - En dur avec le mode Création
Dans le menu Outils / Propriétés de VBAProject, renseigne
le champ "Nom du fichier
d'aide" au moyen du browser associé en choisissant
HtmlHelp (*.chm) comme type de
fichier.
Renseigner les propriétés de ton UserForm:
HelpContextID (Ton numéro de contexte à afficher lors de
l'appui sur la touche F1)
WhatsThisHelp (Mettre à True)
Si tu souhaites des aides particulières pour les
contrôles, tu peux renseigner la
propriété HelpContextID de chaque contrôle accessible à
l'utilisateur (l'appui sur
F1 lorsque le contrôle à le focus affichera le numéro de
rubrique indiqué) et même
utiliser le bouton en forme de point d'interrogation à
coté de la croix de
fermeture en mettant la propriété WhatsThisButton de to
UserForm à True.
2 - Par programmation
Mettre la propriété WhatsThisHelp de ton UserForm à True
en mode création car
cette propriété est en lecture seule et ne peut être
modifiée en mode exécution.
Private Sub UserForm_Initialize()
Const MyHelp$ = "C:ExcelHelpvbSample.chm"
Application.ThisWorkbook.VBProject.HelpFile = MyHelp
Application.ThisWorkbook.VBProject.HelpContextID = 0
Me.HelpContextID = 3000
End Sub
MP
"Claudio" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:3eac01c48ff6$f0c16730$a601280a@phx.gbl...
Merci beaucoup pour la rapidité et la précision de la
réponse.
Pour ce qui est du .chm, étant donné qu'XL le propose dans
les types de fichiers à associer, je pensais que ce serait
OK.
J'avais essayé d'associer du code ;
pas de soucis pour ajouter une ligne de menu qui pointe
sur la première page de l'aide.
Par contre, je ne sais pas comment faire pour appeler la
page d'aide associée à un écran particulier sans ajouter
de bouton à la userform (je connais le code, avec le
ContextId, mais je n'arrive pas à l'associer à l'appui sur
la touche "F1").
Si tu as une idée ...
Claudio
-----Message d'origine-----
Bonsoir Claudio;
As-tu bien renseigné le nom du fichier d'aide associé à
ton projet dans les
propriétés du projet ?
Cela ne fonctionne qu'avec des fichiers d'aide .hlp et
non pas des fichiers
d'aide .chm !!!
Tu pourrais t' en sortir en ajoutant un bouton d'aide qui
exécuterait
l'affichage de l'aide au moyen d'une fonction API comme
dans l'exemple
suivant:
(J'ai mis les 2 possibilités .chm et .hlp, tu feras le
ménage...)
Option Explicit
Private Declare Function FindWindow& Lib "user32"
Alias "FindWindowA" _
(ByVal lpClassName$, ByVal lpWindowName$)
'// Fichiers d'aide .hlp
Private Declare Function WinHelp& Lib "user32.dll"
Alias "WinHelpA" _
(ByVal hWndMain&, ByVal lpHelpFile$, ByVal uCommand&,
dwData As Any)
'// Fichiers d'aide .chm
Private Declare Function HtmlHelp& Lib "hhctrl.ocx"
Alias "HtmlHelpA" _
(ByVal hwndCaller&, ByVal pszFile$, ByVal uCommand&,
dwData As Any)
'// Pour info, constantes .chm:
'Const HH_DISPLAY_TOPIC = &H0
'Const HH_SET_WIN_TYPE = &H4
'Const HH_GET_WIN_TYPE = &H5
'Const HH_GET_WIN_HANDLE = &H6
' Display string resource ID or text in a popupwin.
'Const HH_DISPLAY_TEXT_POPUP = &HE
' Display mapped numeric value in dwdata
'Const HH_HELP_CONTEXT = &HF
' Text pop-up help, similar to WinHelp's HELP_CONTEXTMENU
'Const HH_TP_HELP_CONTEXTMENU = &H10
' Text pop-up help, similar to WinHelp's HELP_WM_HELP
'Const HH_TP_HELP_WM_HELP = &H11
Sub AidePerso()
' Affiche le sommaire de l'aide
ShowChm "c:Retten.chm"
'ShowHelp "c:Retten.hlp"
' Affiche une rubrique particulière de l'aide
'ShowChm "c:Retten.chm", 1010
'ShowHelp "c:Retten.hlp", 1010
End Sub
Sub ShowChm(ChmFile$, Optional idx& = 0)
Dim hWnd&
hWnd = FindWindow(vbNullString, Application.Caption)
Call HtmlHelp(hWnd, ChmFile, &H0, ByVal idx)
End Sub
Sub ShowHlp(HlpFile$, Optional idx& = 0)
Dim i&, hWnd&
If idx Then i& = &H1 Else i& = &H3
hWnd = FindWindow(vbNullString, Application.Caption)
Call WinHelp(hWnd, HlpFile, i, ByVal idx)
End Sub
MP
"Claudio" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:382501c48f79$68f72a60$a501280a@phx.gbl...
Hi all,
pour un fichiers xls contenat une grosse macro, j'ai
associé un fichier d'aide en ligne (.chm).
Pour chaque userform concernée, j'ai associé un
HelpContextId, comme indiqué dans la doc.
En principe, lorsque je presse F1, çà devrait m'afficher
qqch, mais balle peau ...
Manquerait-il qqch ou bien la vérité est-elle ailleurs ?
D'avance merci
Claudio
.
.
-----Message d'origine-----
Bonjour Claudio;
Autant pour moi, tu as la possibilité d'utiliser les
fichiers d'aide .chm
2 façons de faire:
1 - En dur avec le mode Création
Dans le menu Outils / Propriétés de VBAProject, renseigne
le champ "Nom du fichier
d'aide" au moyen du browser associé en choisissant
HtmlHelp (*.chm) comme type de
fichier.
Renseigner les propriétés de ton UserForm:
HelpContextID (Ton numéro de contexte à afficher lors de
l'appui sur la touche F1)
WhatsThisHelp (Mettre à True)
Si tu souhaites des aides particulières pour les
contrôles, tu peux renseigner la
propriété HelpContextID de chaque contrôle accessible à
l'utilisateur (l'appui sur
F1 lorsque le contrôle à le focus affichera le numéro de
rubrique indiqué) et même
utiliser le bouton en forme de point d'interrogation à
coté de la croix de
fermeture en mettant la propriété WhatsThisButton de to
UserForm à True.
2 - Par programmation
Mettre la propriété WhatsThisHelp de ton UserForm à True
en mode création car
cette propriété est en lecture seule et ne peut être
modifiée en mode exécution.
Private Sub UserForm_Initialize()
Const MyHelp$ = "C:ExcelHelpvbSample.chm"
Application.ThisWorkbook.VBProject.HelpFile = MyHelp
Application.ThisWorkbook.VBProject.HelpContextID = 0
Me.HelpContextID = 3000
End Sub
MP
"Claudio" a écrit
dans le message de
news:3eac01c48ff6$f0c16730$
Merci beaucoup pour la rapidité et la précision de la
réponse.
Pour ce qui est du .chm, étant donné qu'XL le propose dans
les types de fichiers à associer, je pensais que ce serait
OK.
J'avais essayé d'associer du code ;
pas de soucis pour ajouter une ligne de menu qui pointe
sur la première page de l'aide.
Par contre, je ne sais pas comment faire pour appeler la
page d'aide associée à un écran particulier sans ajouter
de bouton à la userform (je connais le code, avec le
ContextId, mais je n'arrive pas à l'associer à l'appui sur
la touche "F1").
Si tu as une idée ...
Claudio-----Message d'origine-----
Bonsoir Claudio;
As-tu bien renseigné le nom du fichier d'aide associé à
ton projet dans lespropriétés du projet ?
Cela ne fonctionne qu'avec des fichiers d'aide .hlp et
non pas des fichiersd'aide .chm !!!
Tu pourrais t' en sortir en ajoutant un bouton d'aide qui
exécuteraitl'affichage de l'aide au moyen d'une fonction API comme
dans l'exemplesuivant:
(J'ai mis les 2 possibilités .chm et .hlp, tu feras le
ménage...)
Option Explicit
Private Declare Function FindWindow& Lib "user32"
Alias "FindWindowA" _(ByVal lpClassName$, ByVal lpWindowName$)
'// Fichiers d'aide .hlp
Private Declare Function WinHelp& Lib "user32.dll"
Alias "WinHelpA" _(ByVal hWndMain&, ByVal lpHelpFile$, ByVal uCommand&,
dwData As Any)'// Fichiers d'aide .chm
Private Declare Function HtmlHelp& Lib "hhctrl.ocx"
Alias "HtmlHelpA" _(ByVal hwndCaller&, ByVal pszFile$, ByVal uCommand&,
dwData As Any)'// Pour info, constantes .chm:
'Const HH_DISPLAY_TOPIC = &H0
'Const HH_SET_WIN_TYPE = &H4
'Const HH_GET_WIN_TYPE = &H5
'Const HH_GET_WIN_HANDLE = &H6
' Display string resource ID or text in a popupwin.
'Const HH_DISPLAY_TEXT_POPUP = &HE
' Display mapped numeric value in dwdata
'Const HH_HELP_CONTEXT = &HF
' Text pop-up help, similar to WinHelp's HELP_CONTEXTMENU
'Const HH_TP_HELP_CONTEXTMENU = &H10
' Text pop-up help, similar to WinHelp's HELP_WM_HELP
'Const HH_TP_HELP_WM_HELP = &H11
Sub AidePerso()
' Affiche le sommaire de l'aide
ShowChm "c:Retten.chm"
'ShowHelp "c:Retten.hlp"
' Affiche une rubrique particulière de l'aide
'ShowChm "c:Retten.chm", 1010
'ShowHelp "c:Retten.hlp", 1010
End Sub
Sub ShowChm(ChmFile$, Optional idx& = 0)
Dim hWnd&
hWnd = FindWindow(vbNullString, Application.Caption)
Call HtmlHelp(hWnd, ChmFile, &H0, ByVal idx)
End Sub
Sub ShowHlp(HlpFile$, Optional idx& = 0)
Dim i&, hWnd&
If idx Then i& = &H1 Else i& = &H3
hWnd = FindWindow(vbNullString, Application.Caption)
Call WinHelp(hWnd, HlpFile, i, ByVal idx)
End Sub
MP
"Claudio" a écrit
dans le message denews:382501c48f79$68f72a60$
Hi all,
pour un fichiers xls contenat une grosse macro, j'ai
associé un fichier d'aide en ligne (.chm).
Pour chaque userform concernée, j'ai associé un
HelpContextId, comme indiqué dans la doc.
En principe, lorsque je presse F1, çà devrait m'afficher
qqch, mais balle peau ...
Manquerait-il qqch ou bien la vérité est-elle ailleurs ?
D'avance merci
Claudio
.
.