cela pourrait abréger mes souffrances.
cela pourrait abréger mes souffrances.
cela pourrait abréger mes souffrances.
tu me fais penser, clément, à ces deux types qui marchent dans le
désert
(pas les pêcheurs, non, non, deux autres) ; l'un des deux se fait
mordre par
la plus venimeuse des vipères du coin en une partie de son anatomie
que la
décence m'interdit de nommer ici (twinley a déjà compris) ; l'autre
part à
la recherche de la cabine téléphonique qui se trouve 3 km plus loin,
appelle
le docteur, explique ce qui est arrivé, demande ce qu'il y a lieu de
faire,
ce à quoi le praticien répond "la seule chose qui puisse sauver
votre ami
d'une mort certaine, c'est la sucion" et l'autre de refaire les 3 km
dans
l'autre sens, de retrouver son compagnon de plus en plus souffrant
qui a
encore la force de demander "alors, qu'est-ce qu'il a dit le
docteur?" "il a
dit que tu allais mourir"
jps
"Clément Marcotte" a écrit dans le
message
de news:cela pourrait abréger mes souffrances.
tu me fais penser, clément, à ces deux types qui marchent dans le
désert
(pas les pêcheurs, non, non, deux autres) ; l'un des deux se fait
mordre par
la plus venimeuse des vipères du coin en une partie de son anatomie
que la
décence m'interdit de nommer ici (twinley a déjà compris) ; l'autre
part à
la recherche de la cabine téléphonique qui se trouve 3 km plus loin,
appelle
le docteur, explique ce qui est arrivé, demande ce qu'il y a lieu de
faire,
ce à quoi le praticien répond "la seule chose qui puisse sauver
votre ami
d'une mort certaine, c'est la sucion" et l'autre de refaire les 3 km
dans
l'autre sens, de retrouver son compagnon de plus en plus souffrant
qui a
encore la force de demander "alors, qu'est-ce qu'il a dit le
docteur?" "il a
dit que tu allais mourir"
jps
"Clément Marcotte" <clement.marcotte@sympatico.ca> a écrit dans le
message
de news:ujBdgFk2EHA.1144@TK2MSFTNGP09.phx.gbl...
cela pourrait abréger mes souffrances.
tu me fais penser, clément, à ces deux types qui marchent dans le
désert
(pas les pêcheurs, non, non, deux autres) ; l'un des deux se fait
mordre par
la plus venimeuse des vipères du coin en une partie de son anatomie
que la
décence m'interdit de nommer ici (twinley a déjà compris) ; l'autre
part à
la recherche de la cabine téléphonique qui se trouve 3 km plus loin,
appelle
le docteur, explique ce qui est arrivé, demande ce qu'il y a lieu de
faire,
ce à quoi le praticien répond "la seule chose qui puisse sauver
votre ami
d'une mort certaine, c'est la sucion" et l'autre de refaire les 3 km
dans
l'autre sens, de retrouver son compagnon de plus en plus souffrant
qui a
encore la force de demander "alors, qu'est-ce qu'il a dit le
docteur?" "il a
dit que tu allais mourir"
jps
"Clément Marcotte" a écrit dans le
message
de news:cela pourrait abréger mes souffrances.
Bonjour,
Étant en train de méditer sur la question de "bartez" sur la
possibilité de stocker à quelque part la date de modification d'une
procédure; je suis à la recherche d'un moyen, de retrouver, soit la
liste des procédures d'un module, soit le nom procédure de la
procédure active elle-même. J'ai trouvé le moyen de retrouver le nom
du module (du moins le "caption" de la fenêtre), mais pas le nom d'une
procédure.
Là, je commence à chercher chez Frédéric, et peut-être ailleurs
ensuite; mais si quelqu'un avait cela pas trop loin, cela pourrait
abréger mes souffrances.
Merci d'avance.
Bonjour,
Étant en train de méditer sur la question de "bartez" sur la
possibilité de stocker à quelque part la date de modification d'une
procédure; je suis à la recherche d'un moyen, de retrouver, soit la
liste des procédures d'un module, soit le nom procédure de la
procédure active elle-même. J'ai trouvé le moyen de retrouver le nom
du module (du moins le "caption" de la fenêtre), mais pas le nom d'une
procédure.
Là, je commence à chercher chez Frédéric, et peut-être ailleurs
ensuite; mais si quelqu'un avait cela pas trop loin, cela pourrait
abréger mes souffrances.
Merci d'avance.
Bonjour,
Étant en train de méditer sur la question de "bartez" sur la
possibilité de stocker à quelque part la date de modification d'une
procédure; je suis à la recherche d'un moyen, de retrouver, soit la
liste des procédures d'un module, soit le nom procédure de la
procédure active elle-même. J'ai trouvé le moyen de retrouver le nom
du module (du moins le "caption" de la fenêtre), mais pas le nom d'une
procédure.
Là, je commence à chercher chez Frédéric, et peut-être ailleurs
ensuite; mais si quelqu'un avait cela pas trop loin, cela pourrait
abréger mes souffrances.
Merci d'avance.
tu me fais penser, clément, à ces deux types qui marchent dans le désert
(pas les pêcheurs, non, non, deux autres) ; l'un des deux se fait mordre par
la plus venimeuse des vipères du coin en une partie de son anatomie que la
décence m'interdit de nommer ici (twinley a déjà compris) ; l'autre part à
la recherche de la cabine téléphonique qui se trouve 3 km plus loin, appelle
le docteur, explique ce qui est arrivé, demande ce qu'il y a lieu de faire,
ce à quoi le praticien répond "la seule chose qui puisse sauver votre ami
d'une mort certaine, c'est la sucion" et l'autre de refaire les 3 km dans
l'autre sens, de retrouver son compagnon de plus en plus souffrant qui a
encore la force de demander "alors, qu'est-ce qu'il a dit le docteur?" "il a
dit que tu allais mourir"
jps
"Clément Marcotte" a écrit dans le message
de news:cela pourrait abréger mes souffrances.
tu me fais penser, clément, à ces deux types qui marchent dans le désert
(pas les pêcheurs, non, non, deux autres) ; l'un des deux se fait mordre par
la plus venimeuse des vipères du coin en une partie de son anatomie que la
décence m'interdit de nommer ici (twinley a déjà compris) ; l'autre part à
la recherche de la cabine téléphonique qui se trouve 3 km plus loin, appelle
le docteur, explique ce qui est arrivé, demande ce qu'il y a lieu de faire,
ce à quoi le praticien répond "la seule chose qui puisse sauver votre ami
d'une mort certaine, c'est la sucion" et l'autre de refaire les 3 km dans
l'autre sens, de retrouver son compagnon de plus en plus souffrant qui a
encore la force de demander "alors, qu'est-ce qu'il a dit le docteur?" "il a
dit que tu allais mourir"
jps
"Clément Marcotte" <clement.marcotte@sympatico.ca> a écrit dans le message
de news:ujBdgFk2EHA.1144@TK2MSFTNGP09.phx.gbl...
cela pourrait abréger mes souffrances.
tu me fais penser, clément, à ces deux types qui marchent dans le désert
(pas les pêcheurs, non, non, deux autres) ; l'un des deux se fait mordre par
la plus venimeuse des vipères du coin en une partie de son anatomie que la
décence m'interdit de nommer ici (twinley a déjà compris) ; l'autre part à
la recherche de la cabine téléphonique qui se trouve 3 km plus loin, appelle
le docteur, explique ce qui est arrivé, demande ce qu'il y a lieu de faire,
ce à quoi le praticien répond "la seule chose qui puisse sauver votre ami
d'une mort certaine, c'est la sucion" et l'autre de refaire les 3 km dans
l'autre sens, de retrouver son compagnon de plus en plus souffrant qui a
encore la force de demander "alors, qu'est-ce qu'il a dit le docteur?" "il a
dit que tu allais mourir"
jps
"Clément Marcotte" a écrit dans le message
de news:cela pourrait abréger mes souffrances.
Bsr à tous,
c'est vrai que je comprend plus vite ce que tu écris, que le VBA.
J'aime souvent raconter comment du temps où pour s'assurer de la mort
d'un client, les croques-mort mordait cruellement le gros orteil du
défunt.
Un jour, deux d'entre eux furent appelés et constatant qu'il s'agissait
d'un cul de jatte, il y eu un moment de flottement.
Mais l'un des deux trouva une solution pour vérifier la mort du pauvre
bonhomme.
Et depuis on les appelle les pompes funèbres...
twinley
Bsr à tous,
c'est vrai que je comprend plus vite ce que tu écris, que le VBA.
J'aime souvent raconter comment du temps où pour s'assurer de la mort
d'un client, les croques-mort mordait cruellement le gros orteil du
défunt.
Un jour, deux d'entre eux furent appelés et constatant qu'il s'agissait
d'un cul de jatte, il y eu un moment de flottement.
Mais l'un des deux trouva une solution pour vérifier la mort du pauvre
bonhomme.
Et depuis on les appelle les pompes funèbres...
twinley
Bsr à tous,
c'est vrai que je comprend plus vite ce que tu écris, que le VBA.
J'aime souvent raconter comment du temps où pour s'assurer de la mort
d'un client, les croques-mort mordait cruellement le gros orteil du
défunt.
Un jour, deux d'entre eux furent appelés et constatant qu'il s'agissait
d'un cul de jatte, il y eu un moment de flottement.
Mais l'un des deux trouva une solution pour vérifier la mort du pauvre
bonhomme.
Et depuis on les appelle les pompes funèbres...
twinley
Bonjour,
Étant en train de méditer sur la question de "bartez" sur la
possibilité de stocker à quelque part la date de modification d'une
procédure; je suis à la recherche d'un moyen, de retrouver, soit la
liste des procédures d'un module, soit le nom procédure de la
procédure active elle-même. J'ai trouvé le moyen de retrouver le nom
du module (du moins le "caption" de la fenêtre), mais pas le nom
d'une
procédure.
Là, je commence à chercher chez Frédéric, et peut-être ailleurs
ensuite; mais si quelqu'un avait cela pas trop loin, cela pourrait
abréger mes souffrances.
Merci d'avance.
Bonjour,
Étant en train de méditer sur la question de "bartez" sur la
possibilité de stocker à quelque part la date de modification d'une
procédure; je suis à la recherche d'un moyen, de retrouver, soit la
liste des procédures d'un module, soit le nom procédure de la
procédure active elle-même. J'ai trouvé le moyen de retrouver le nom
du module (du moins le "caption" de la fenêtre), mais pas le nom
d'une
procédure.
Là, je commence à chercher chez Frédéric, et peut-être ailleurs
ensuite; mais si quelqu'un avait cela pas trop loin, cela pourrait
abréger mes souffrances.
Merci d'avance.
Bonjour,
Étant en train de méditer sur la question de "bartez" sur la
possibilité de stocker à quelque part la date de modification d'une
procédure; je suis à la recherche d'un moyen, de retrouver, soit la
liste des procédures d'un module, soit le nom procédure de la
procédure active elle-même. J'ai trouvé le moyen de retrouver le nom
du module (du moins le "caption" de la fenêtre), mais pas le nom
d'une
procédure.
Là, je commence à chercher chez Frédéric, et peut-être ailleurs
ensuite; mais si quelqu'un avait cela pas trop loin, cela pourrait
abréger mes souffrances.
Merci d'avance.
Bonjour,
Juste un petit "rapport d'étape" sur l'avancement de mon projet.
Je ne suis pas encore rendu aux dates, mais cela progresse.
En fait, mon idée était (est) d'utiliser les propriétés des fichiers
Office pour faire une liste facilement accessible (Clic-droit dans
l'Explorateur Windows - Propriétés) des procédures VBA pouvant se
trouver dans un fichier particulier. (À force de répondre aux
questions et de ne pas vouloir encombrer mes classeurs existants de
macros qui ne fonctionnent pas, j'ai accumulé un tas de classeurs avec
des macros, et je m'aperçois que des fois je refais du déjà fait.)
Dans VBA seul, on peut seulement lire les propriétés "de base", et on
peut lire/écrire (du moins je pense) les propriétés "custom".
Par contre, avec DSOFile,
http://support.microsoft.com/default.aspx?scid=kb;FR;q224351
on peut lire/écrire toutes les propriétés. Mais, car il y a toujours
un mais, le fichier doit être fermé pour que DSOFile puisse agir, et
être ouvert pour que les procédures de manipulation des modules
puissent être utilisées.
Avec un peu de gymnastique, des procédures du site de Frédéric, un
exemple microsoftien pour VB et DSOFile; j'ai réussi à mettre dans la
propriété "Commentaires" d'un classeur Excel, les procédures VBA de ce
classeur.
Pour ceux que cela intéresse, voici donc les procédures, dans leur
état actuel. C'est la fonction microsoftienne (allégée)
OpenDocumentProperties qui permet de lire l'ensemble des propriétés.
Ne pas oublier de cocher les références à la bibliothèque
Extensibility et à la bibliothèque DSOFile. Les noms sont donnés en
commentaires dans la macro. Cependant, la bibliothèque DSOFile ne sera
pas forcément dans Windowssystem. Chez moi, le programme
d'installation l'a mise (ou je l'ai peut-être fait mettre là), dans
C:DSOFile. Il se pourrait donc que vous deviez vous promener un peu
(parcourir) sur votre disque pour la retrouver et l'ajouter aux
références.
Sub ListeMacrosModule()
'nécessite une référence à la bibliothèque
'Microsoft Visual Basic For Application Extensibility 5.3
'et à la bibliothèque DsoFile (DSOleFile.CustomProperty)
'renvoie dans les propriétés du classeur la liste
'des procédures et
'fonctions d'un module standard
Dim oCustProp As DSOleFile.CustomProperty, oFilePropReader
Dim oDocProp As DSOleFile.DocumentProperties
Dim VBCodeMod As CodeModule, liste As Object
Dim StartLine As Long
Dim ProcName As String
Dim Wbk As Workbook
Dim i As Long, fenetre, lenom
Dim letexte As String, lefichier As String
Set oFilePropReader = New DSOleFile.PropertyReader
lefichier = "C:Mes Documentstestregex1.xls"
Set oDocProp = oFilePropReader.GetDocumentProperties(lefichier)
letexte = oDocProp.Comments
Set oDocProp = Nothing
Set Wbk = Workbooks.Open(lefichier)
For Each fenetre In Wbk.VBProject.VBComponents
lenom = fenetre.Name
Set VBCodeMod = Wbk.VBProject.VBComponents(lenom).CodeModule
i = 1
With VBCodeMod
StartLine = .CountOfDeclarationLines + 1
Do Until StartLine >= .CountOfLines
letexte = letexte & .ProcOfLine(StartLine, vbext_pk_Proc) &
vbNewLine
StartLine = StartLine + .ProcCountLines(.ProcOfLine(StartLine, _
vbext_pk_Proc), vbext_pk_Proc)
i = i + 1
Loop
End With
Next
Wbk.Close
Set Wbk = Nothing
Set VBCodeMod = Nothing
Set oDocProp = oFilePropReader.GetDocumentProperties(lefichier)
oDocProp.Comments = letexte
Set oDocProp = Nothing
End Sub
Public Function OpenDocumentProperties(lefichier) As Boolean
Dim oCustProp As DSOleFile.CustomProperty
Dim sTmp As String
' If the user cancels the dialog, exit out.
If Len(sFile) = 0 Then Exit Function
' Here is where we load the document properties for the file
' selected. The function will return a DocumentProperties object.
' We must have exclusive access to the storage of the file. If
' another app has the file open, this function will raise an error
Set oDocProp = oFilePropReader.GetDocumentProperties(sFile)
On Error Resume Next
cProp.PresentationFormat
' The HasMacros property only works for Excel & Word files
' and raises error if document is not one of these. Ignore
' any error for this sample.
Dim sItem As String
sItem = CStr(oDocProp.HasMacros)
If Err Then sItem = "<unknown>"
lstNormalProps.AddItem "Macros Attached: " & sItem
' We'll get the thumnail image of the document (if available)...
Dim oPicDisp As StdPicture
Set oPicDisp = oDocProp.Thumbnail
If oPicDisp Is Nothing Then
chkShowPreview.Enabled = False
Else
Set picPreview.Picture = oPicDisp
chkShowPreview.Enabled = True
End If
On Error GoTo Err_Trap
txtCustName.Text = ""
txtCustValue.Text = ""
lstCustType.ListIndex = 0
' The operation was successful.
OpenDocumentProperties = True
Exit Function
Err_Trap:
' Trap common errors returned from componenet...
Select Case Err.Number
Case &H80040203
' The file is open by another program
MsgBox Err.Description & " Please choose another file."
Err.Clear: Resume GetFileFromUser
Case &H80040202
' The file selected is not an OLE structured storage file
MsgBox Err.Description & " Please choose another file."
Err.Clear: Resume GetFileFromUser
Case &H80040201
' DCOM is not installed -- fall through to MsgBox below
End Select
MsgBox "Error: " & Err.Description, vbCritical, "Err: " &
CStr(Err.Number)
End Function
Bonjour,
Juste un petit "rapport d'étape" sur l'avancement de mon projet.
Je ne suis pas encore rendu aux dates, mais cela progresse.
En fait, mon idée était (est) d'utiliser les propriétés des fichiers
Office pour faire une liste facilement accessible (Clic-droit dans
l'Explorateur Windows - Propriétés) des procédures VBA pouvant se
trouver dans un fichier particulier. (À force de répondre aux
questions et de ne pas vouloir encombrer mes classeurs existants de
macros qui ne fonctionnent pas, j'ai accumulé un tas de classeurs avec
des macros, et je m'aperçois que des fois je refais du déjà fait.)
Dans VBA seul, on peut seulement lire les propriétés "de base", et on
peut lire/écrire (du moins je pense) les propriétés "custom".
Par contre, avec DSOFile,
http://support.microsoft.com/default.aspx?scid=kb;FR;q224351
on peut lire/écrire toutes les propriétés. Mais, car il y a toujours
un mais, le fichier doit être fermé pour que DSOFile puisse agir, et
être ouvert pour que les procédures de manipulation des modules
puissent être utilisées.
Avec un peu de gymnastique, des procédures du site de Frédéric, un
exemple microsoftien pour VB et DSOFile; j'ai réussi à mettre dans la
propriété "Commentaires" d'un classeur Excel, les procédures VBA de ce
classeur.
Pour ceux que cela intéresse, voici donc les procédures, dans leur
état actuel. C'est la fonction microsoftienne (allégée)
OpenDocumentProperties qui permet de lire l'ensemble des propriétés.
Ne pas oublier de cocher les références à la bibliothèque
Extensibility et à la bibliothèque DSOFile. Les noms sont donnés en
commentaires dans la macro. Cependant, la bibliothèque DSOFile ne sera
pas forcément dans Windowssystem. Chez moi, le programme
d'installation l'a mise (ou je l'ai peut-être fait mettre là), dans
C:DSOFile. Il se pourrait donc que vous deviez vous promener un peu
(parcourir) sur votre disque pour la retrouver et l'ajouter aux
références.
Sub ListeMacrosModule()
'nécessite une référence à la bibliothèque
'Microsoft Visual Basic For Application Extensibility 5.3
'et à la bibliothèque DsoFile (DSOleFile.CustomProperty)
'renvoie dans les propriétés du classeur la liste
'des procédures et
'fonctions d'un module standard
Dim oCustProp As DSOleFile.CustomProperty, oFilePropReader
Dim oDocProp As DSOleFile.DocumentProperties
Dim VBCodeMod As CodeModule, liste As Object
Dim StartLine As Long
Dim ProcName As String
Dim Wbk As Workbook
Dim i As Long, fenetre, lenom
Dim letexte As String, lefichier As String
Set oFilePropReader = New DSOleFile.PropertyReader
lefichier = "C:Mes Documentstestregex1.xls"
Set oDocProp = oFilePropReader.GetDocumentProperties(lefichier)
letexte = oDocProp.Comments
Set oDocProp = Nothing
Set Wbk = Workbooks.Open(lefichier)
For Each fenetre In Wbk.VBProject.VBComponents
lenom = fenetre.Name
Set VBCodeMod = Wbk.VBProject.VBComponents(lenom).CodeModule
i = 1
With VBCodeMod
StartLine = .CountOfDeclarationLines + 1
Do Until StartLine >= .CountOfLines
letexte = letexte & .ProcOfLine(StartLine, vbext_pk_Proc) &
vbNewLine
StartLine = StartLine + .ProcCountLines(.ProcOfLine(StartLine, _
vbext_pk_Proc), vbext_pk_Proc)
i = i + 1
Loop
End With
Next
Wbk.Close
Set Wbk = Nothing
Set VBCodeMod = Nothing
Set oDocProp = oFilePropReader.GetDocumentProperties(lefichier)
oDocProp.Comments = letexte
Set oDocProp = Nothing
End Sub
Public Function OpenDocumentProperties(lefichier) As Boolean
Dim oCustProp As DSOleFile.CustomProperty
Dim sTmp As String
' If the user cancels the dialog, exit out.
If Len(sFile) = 0 Then Exit Function
' Here is where we load the document properties for the file
' selected. The function will return a DocumentProperties object.
' We must have exclusive access to the storage of the file. If
' another app has the file open, this function will raise an error
Set oDocProp = oFilePropReader.GetDocumentProperties(sFile)
On Error Resume Next
cProp.PresentationFormat
' The HasMacros property only works for Excel & Word files
' and raises error if document is not one of these. Ignore
' any error for this sample.
Dim sItem As String
sItem = CStr(oDocProp.HasMacros)
If Err Then sItem = "<unknown>"
lstNormalProps.AddItem "Macros Attached: " & sItem
' We'll get the thumnail image of the document (if available)...
Dim oPicDisp As StdPicture
Set oPicDisp = oDocProp.Thumbnail
If oPicDisp Is Nothing Then
chkShowPreview.Enabled = False
Else
Set picPreview.Picture = oPicDisp
chkShowPreview.Enabled = True
End If
On Error GoTo Err_Trap
txtCustName.Text = ""
txtCustValue.Text = ""
lstCustType.ListIndex = 0
' The operation was successful.
OpenDocumentProperties = True
Exit Function
Err_Trap:
' Trap common errors returned from componenet...
Select Case Err.Number
Case &H80040203
' The file is open by another program
MsgBox Err.Description & " Please choose another file."
Err.Clear: Resume GetFileFromUser
Case &H80040202
' The file selected is not an OLE structured storage file
MsgBox Err.Description & " Please choose another file."
Err.Clear: Resume GetFileFromUser
Case &H80040201
' DCOM is not installed -- fall through to MsgBox below
End Select
MsgBox "Error: " & Err.Description, vbCritical, "Err: " &
CStr(Err.Number)
End Function
Bonjour,
Juste un petit "rapport d'étape" sur l'avancement de mon projet.
Je ne suis pas encore rendu aux dates, mais cela progresse.
En fait, mon idée était (est) d'utiliser les propriétés des fichiers
Office pour faire une liste facilement accessible (Clic-droit dans
l'Explorateur Windows - Propriétés) des procédures VBA pouvant se
trouver dans un fichier particulier. (À force de répondre aux
questions et de ne pas vouloir encombrer mes classeurs existants de
macros qui ne fonctionnent pas, j'ai accumulé un tas de classeurs avec
des macros, et je m'aperçois que des fois je refais du déjà fait.)
Dans VBA seul, on peut seulement lire les propriétés "de base", et on
peut lire/écrire (du moins je pense) les propriétés "custom".
Par contre, avec DSOFile,
http://support.microsoft.com/default.aspx?scid=kb;FR;q224351
on peut lire/écrire toutes les propriétés. Mais, car il y a toujours
un mais, le fichier doit être fermé pour que DSOFile puisse agir, et
être ouvert pour que les procédures de manipulation des modules
puissent être utilisées.
Avec un peu de gymnastique, des procédures du site de Frédéric, un
exemple microsoftien pour VB et DSOFile; j'ai réussi à mettre dans la
propriété "Commentaires" d'un classeur Excel, les procédures VBA de ce
classeur.
Pour ceux que cela intéresse, voici donc les procédures, dans leur
état actuel. C'est la fonction microsoftienne (allégée)
OpenDocumentProperties qui permet de lire l'ensemble des propriétés.
Ne pas oublier de cocher les références à la bibliothèque
Extensibility et à la bibliothèque DSOFile. Les noms sont donnés en
commentaires dans la macro. Cependant, la bibliothèque DSOFile ne sera
pas forcément dans Windowssystem. Chez moi, le programme
d'installation l'a mise (ou je l'ai peut-être fait mettre là), dans
C:DSOFile. Il se pourrait donc que vous deviez vous promener un peu
(parcourir) sur votre disque pour la retrouver et l'ajouter aux
références.
Sub ListeMacrosModule()
'nécessite une référence à la bibliothèque
'Microsoft Visual Basic For Application Extensibility 5.3
'et à la bibliothèque DsoFile (DSOleFile.CustomProperty)
'renvoie dans les propriétés du classeur la liste
'des procédures et
'fonctions d'un module standard
Dim oCustProp As DSOleFile.CustomProperty, oFilePropReader
Dim oDocProp As DSOleFile.DocumentProperties
Dim VBCodeMod As CodeModule, liste As Object
Dim StartLine As Long
Dim ProcName As String
Dim Wbk As Workbook
Dim i As Long, fenetre, lenom
Dim letexte As String, lefichier As String
Set oFilePropReader = New DSOleFile.PropertyReader
lefichier = "C:Mes Documentstestregex1.xls"
Set oDocProp = oFilePropReader.GetDocumentProperties(lefichier)
letexte = oDocProp.Comments
Set oDocProp = Nothing
Set Wbk = Workbooks.Open(lefichier)
For Each fenetre In Wbk.VBProject.VBComponents
lenom = fenetre.Name
Set VBCodeMod = Wbk.VBProject.VBComponents(lenom).CodeModule
i = 1
With VBCodeMod
StartLine = .CountOfDeclarationLines + 1
Do Until StartLine >= .CountOfLines
letexte = letexte & .ProcOfLine(StartLine, vbext_pk_Proc) &
vbNewLine
StartLine = StartLine + .ProcCountLines(.ProcOfLine(StartLine, _
vbext_pk_Proc), vbext_pk_Proc)
i = i + 1
Loop
End With
Next
Wbk.Close
Set Wbk = Nothing
Set VBCodeMod = Nothing
Set oDocProp = oFilePropReader.GetDocumentProperties(lefichier)
oDocProp.Comments = letexte
Set oDocProp = Nothing
End Sub
Public Function OpenDocumentProperties(lefichier) As Boolean
Dim oCustProp As DSOleFile.CustomProperty
Dim sTmp As String
' If the user cancels the dialog, exit out.
If Len(sFile) = 0 Then Exit Function
' Here is where we load the document properties for the file
' selected. The function will return a DocumentProperties object.
' We must have exclusive access to the storage of the file. If
' another app has the file open, this function will raise an error
Set oDocProp = oFilePropReader.GetDocumentProperties(sFile)
On Error Resume Next
cProp.PresentationFormat
' The HasMacros property only works for Excel & Word files
' and raises error if document is not one of these. Ignore
' any error for this sample.
Dim sItem As String
sItem = CStr(oDocProp.HasMacros)
If Err Then sItem = "<unknown>"
lstNormalProps.AddItem "Macros Attached: " & sItem
' We'll get the thumnail image of the document (if available)...
Dim oPicDisp As StdPicture
Set oPicDisp = oDocProp.Thumbnail
If oPicDisp Is Nothing Then
chkShowPreview.Enabled = False
Else
Set picPreview.Picture = oPicDisp
chkShowPreview.Enabled = True
End If
On Error GoTo Err_Trap
txtCustName.Text = ""
txtCustValue.Text = ""
lstCustType.ListIndex = 0
' The operation was successful.
OpenDocumentProperties = True
Exit Function
Err_Trap:
' Trap common errors returned from componenet...
Select Case Err.Number
Case &H80040203
' The file is open by another program
MsgBox Err.Description & " Please choose another file."
Err.Clear: Resume GetFileFromUser
Case &H80040202
' The file selected is not an OLE structured storage file
MsgBox Err.Description & " Please choose another file."
Err.Clear: Resume GetFileFromUser
Case &H80040201
' DCOM is not installed -- fall through to MsgBox below
End Select
MsgBox "Error: " & Err.Description, vbCritical, "Err: " &
CStr(Err.Number)
End Function