! Je ne possède pas Access sur ma machine (maison)et pourtant j'ai le calendrier
Est-ce que tu veux dire que tu n'as jamais installé sur ta machine
Access et tu as quand même le contrôle "Calendar" ?
Désinstaller Access ou désinstaller une version d'office pour
en installer une autre, cela ne veut pas dire que dans chacun
de ces cas, le fichier "dll" a été éliminé lors de la désinstallation.
C'est ce pourquoi il est toujours disponible !Et puis, je ne vois pas pourquoi MS a réservé ce contrôle
plutôt pratique à ACCESS en oubliant EXCEL !
Tu dois adresser ta question à Microsoft !
! Je ne possède pas Access sur ma machine (maison)
et pourtant j'ai le calendrier
Est-ce que tu veux dire que tu n'as jamais installé sur ta machine
Access et tu as quand même le contrôle "Calendar" ?
Désinstaller Access ou désinstaller une version d'office pour
en installer une autre, cela ne veut pas dire que dans chacun
de ces cas, le fichier "dll" a été éliminé lors de la désinstallation.
C'est ce pourquoi il est toujours disponible !
Et puis, je ne vois pas pourquoi MS a réservé ce contrôle
plutôt pratique à ACCESS en oubliant EXCEL !
Tu dois adresser ta question à Microsoft !
! Je ne possède pas Access sur ma machine (maison)et pourtant j'ai le calendrier
Est-ce que tu veux dire que tu n'as jamais installé sur ta machine
Access et tu as quand même le contrôle "Calendar" ?
Désinstaller Access ou désinstaller une version d'office pour
en installer une autre, cela ne veut pas dire que dans chacun
de ces cas, le fichier "dll" a été éliminé lors de la désinstallation.
C'est ce pourquoi il est toujours disponible !Et puis, je ne vois pas pourquoi MS a réservé ce contrôle
plutôt pratique à ACCESS en oubliant EXCEL !
Tu dois adresser ta question à Microsoft !
Problème réglé pour le dit PC ; mais si l'application est destinée à un
PC lambda, c'est la roulette !? (Je veux dire que si on réalise cette
manip à partir d'une macro pour activer le MSCAL.OCX, le contrôle ne
sera pas automatiquement associé au UF et l'utilisateur lambda ne pourra
donc pas avoir l'usage du calendrier pour son application !
Problème réglé pour le dit PC ; mais si l'application est destinée à un
PC lambda, c'est la roulette !? (Je veux dire que si on réalise cette
manip à partir d'une macro pour activer le MSCAL.OCX, le contrôle ne
sera pas automatiquement associé au UF et l'utilisateur lambda ne pourra
donc pas avoir l'usage du calendrier pour son application !
Problème réglé pour le dit PC ; mais si l'application est destinée à un
PC lambda, c'est la roulette !? (Je veux dire que si on réalise cette
manip à partir d'une macro pour activer le MSCAL.OCX, le contrôle ne
sera pas automatiquement associé au UF et l'utilisateur lambda ne pourra
donc pas avoir l'usage du calendrier pour son application !
j-pascal a écrit :Problème réglé pour le dit PC ; mais si l'application est destinée à un PC
lambda, c'est la roulette !? (Je veux dire que si on réalise cette manip à
partir d'une macro pour activer le MSCAL.OCX, le contrôle ne sera pas
automatiquement associé au UF et l'utilisateur lambda ne pourra donc pas
avoir l'usage du calendrier pour son application !
C'est le problème de ce genre de contrôle qui n'est pas présent par défaut...
perso j'évite.
Il y a des solutions alternatives heureusement.
Notamment celles-ci
http://www.excelabo.net/excel/compteclic.php?nom=mp-datepicker
http://www.excelabo.net/excel/compteclic.php?nom¬-calendarsansocx
ou encore
http://www.excelabo.net/excel/compteclic.php?nom=mp-generateurcalendrier
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net
j-pascal a écrit :
Problème réglé pour le dit PC ; mais si l'application est destinée à un PC
lambda, c'est la roulette !? (Je veux dire que si on réalise cette manip à
partir d'une macro pour activer le MSCAL.OCX, le contrôle ne sera pas
automatiquement associé au UF et l'utilisateur lambda ne pourra donc pas
avoir l'usage du calendrier pour son application !
C'est le problème de ce genre de contrôle qui n'est pas présent par défaut...
perso j'évite.
Il y a des solutions alternatives heureusement.
Notamment celles-ci
http://www.excelabo.net/excel/compteclic.php?nom=mp-datepicker
http://www.excelabo.net/excel/compteclic.php?nom¬-calendarsansocx
ou encore
http://www.excelabo.net/excel/compteclic.php?nom=mp-generateurcalendrier
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net
j-pascal a écrit :Problème réglé pour le dit PC ; mais si l'application est destinée à un PC
lambda, c'est la roulette !? (Je veux dire que si on réalise cette manip à
partir d'une macro pour activer le MSCAL.OCX, le contrôle ne sera pas
automatiquement associé au UF et l'utilisateur lambda ne pourra donc pas
avoir l'usage du calendrier pour son application !
C'est le problème de ce genre de contrôle qui n'est pas présent par défaut...
perso j'évite.
Il y a des solutions alternatives heureusement.
Notamment celles-ci
http://www.excelabo.net/excel/compteclic.php?nom=mp-datepicker
http://www.excelabo.net/excel/compteclic.php?nom¬-calendarsansocx
ou encore
http://www.excelabo.net/excel/compteclic.php?nom=mp-generateurcalendrier
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net
Voici comment tu peux procéder si tu veux normaliser
l'ajout de la référence "Calendar" peu importe la version
d'excel ou de Windows.
A ) Tu zippes ton fichier avec un exemplaire de ton fichier
Calendar.
B ) lorsque l'usager ouvrira le fichier pour la première fois,
il doit s'assurer qu'il le fait à partir du répertoire où est
situé le fichier "Calendar". De mémoire, ce fichier existe
sous au moins 2 versions entre excel 97 et 2007.
- Mscal.ocx et Mscal.Dll.
La seule donnée que je n'ai pas, c'est à savoir si le nom
de la bibliothèque est demeuré le même. (Je t'ai dit comment
procéder pour l'obtenir lors d'un message précédent sur ce fil.)
C ) à l'ouverture du fichier, la procédure va vérifier si le fichier existe
sur l'ordi. si non elle va copier le fichier "Calendar" dans le bon
répertoire et initiera la dll ou ocx dans la base de registre tout
en ajoutant la référence pour faire en sorte que ton application
contenant ce contrôle fonctionne sans anicroche
P.S- ton contrôle "calendar" sera opérationnelle. Cependant, ce
contrôle n'apparaitrera pas dans la boîte à outils du formulaire.
Il n'existe aucune façon d'ajouter l'icône à la boîte d'outils en
VBA. Cependant, si ton application est déjà créée avec ce
contrôle, tout fonctionnera rondement même si on ne détecte
pas sa présence dans la boîte d'outils du formulaire.
Pour ce qui est du reste -> lire les instructions.
'-------------------
Private Sub Workbook_Open()
'à l'ouverture du classeur, lancement de
'la procédure d'installation du fichier
OuverturePremièrefois
End Sub
'-------------------
'Dans le haut d'un module Standard, Déclaration de l'api
Private Declare Function GetSystemDirectory Lib "kernel32.dll" Alias _
"GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As
Long
Const Ref As String = "Mscal.ocx"
'------------------------------
Sub OuverturePremièrefois()
Dim ChFile As String
'Vérifie si la présence du fichier dans le
'répertoire système du nouvel ordinateur
ChFile = CheminSystem & ""
If Dir(ChFile & Ref) = "" Then
'Vérifie la présence de la dll
'dans le répertoire source de ce fichier.
If Dir(ThisWorkbook.Path & "" & Ref) = "" Then
MsgBox "Le fichier à installer est absent." & _
" Placer ce fichier " & Ref & " dans le ce " & _
"répertoire : " & ThisWorkbook.Path
'Si fichier(dll) n'est pas dans le répertoire
'de ce classeur, fin de la procédure.
Exit Sub
End If
'si le fichier n'existe pas, copie du fichier
CopierUnFichier ChFile 'Procédure
InitialerBaseDeRegistre ChFile 'Procédure
End If
On Error Resume Next
ThisWorkbook.VBProject.References.AddFromFile ChFile
On Error Goto 0
End Sub
'------------------------------
Sub CopierUnFichier(Destination As String)
'copie du fichier dans le répertoire système
FileCopy ThisWorkbook.Path & "" & Ref, Destination
End Sub
'------------------------------
Sub InitialerBaseDeRegistre(CheminFichier As String)
'Initialise la base de régistre
Shell "command.com /c " & CheminFichier & Ref
End Sub
'------------------------------
Function CheminSystem()
Dim RetVal As Long
Dim SysDir As String
SysDir = Space$(256)
RetVal = GetSystemDirectory(SysDir, Len(SysDir))
If RetVal <> 0 Then
CheminSystem = Left$(SysDir, RetVal)
End If
End Function
'------------------------------
Voici comment tu peux procéder si tu veux normaliser
l'ajout de la référence "Calendar" peu importe la version
d'excel ou de Windows.
A ) Tu zippes ton fichier avec un exemplaire de ton fichier
Calendar.
B ) lorsque l'usager ouvrira le fichier pour la première fois,
il doit s'assurer qu'il le fait à partir du répertoire où est
situé le fichier "Calendar". De mémoire, ce fichier existe
sous au moins 2 versions entre excel 97 et 2007.
- Mscal.ocx et Mscal.Dll.
La seule donnée que je n'ai pas, c'est à savoir si le nom
de la bibliothèque est demeuré le même. (Je t'ai dit comment
procéder pour l'obtenir lors d'un message précédent sur ce fil.)
C ) à l'ouverture du fichier, la procédure va vérifier si le fichier existe
sur l'ordi. si non elle va copier le fichier "Calendar" dans le bon
répertoire et initiera la dll ou ocx dans la base de registre tout
en ajoutant la référence pour faire en sorte que ton application
contenant ce contrôle fonctionne sans anicroche
P.S- ton contrôle "calendar" sera opérationnelle. Cependant, ce
contrôle n'apparaitrera pas dans la boîte à outils du formulaire.
Il n'existe aucune façon d'ajouter l'icône à la boîte d'outils en
VBA. Cependant, si ton application est déjà créée avec ce
contrôle, tout fonctionnera rondement même si on ne détecte
pas sa présence dans la boîte d'outils du formulaire.
Pour ce qui est du reste -> lire les instructions.
'-------------------
Private Sub Workbook_Open()
'à l'ouverture du classeur, lancement de
'la procédure d'installation du fichier
OuverturePremièrefois
End Sub
'-------------------
'Dans le haut d'un module Standard, Déclaration de l'api
Private Declare Function GetSystemDirectory Lib "kernel32.dll" Alias _
"GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As
Long
Const Ref As String = "Mscal.ocx"
'------------------------------
Sub OuverturePremièrefois()
Dim ChFile As String
'Vérifie si la présence du fichier dans le
'répertoire système du nouvel ordinateur
ChFile = CheminSystem & ""
If Dir(ChFile & Ref) = "" Then
'Vérifie la présence de la dll
'dans le répertoire source de ce fichier.
If Dir(ThisWorkbook.Path & "" & Ref) = "" Then
MsgBox "Le fichier à installer est absent." & _
" Placer ce fichier " & Ref & " dans le ce " & _
"répertoire : " & ThisWorkbook.Path
'Si fichier(dll) n'est pas dans le répertoire
'de ce classeur, fin de la procédure.
Exit Sub
End If
'si le fichier n'existe pas, copie du fichier
CopierUnFichier ChFile 'Procédure
InitialerBaseDeRegistre ChFile 'Procédure
End If
On Error Resume Next
ThisWorkbook.VBProject.References.AddFromFile ChFile
On Error Goto 0
End Sub
'------------------------------
Sub CopierUnFichier(Destination As String)
'copie du fichier dans le répertoire système
FileCopy ThisWorkbook.Path & "" & Ref, Destination
End Sub
'------------------------------
Sub InitialerBaseDeRegistre(CheminFichier As String)
'Initialise la base de régistre
Shell "command.com /c " & CheminFichier & Ref
End Sub
'------------------------------
Function CheminSystem()
Dim RetVal As Long
Dim SysDir As String
SysDir = Space$(256)
RetVal = GetSystemDirectory(SysDir, Len(SysDir))
If RetVal <> 0 Then
CheminSystem = Left$(SysDir, RetVal)
End If
End Function
'------------------------------
Voici comment tu peux procéder si tu veux normaliser
l'ajout de la référence "Calendar" peu importe la version
d'excel ou de Windows.
A ) Tu zippes ton fichier avec un exemplaire de ton fichier
Calendar.
B ) lorsque l'usager ouvrira le fichier pour la première fois,
il doit s'assurer qu'il le fait à partir du répertoire où est
situé le fichier "Calendar". De mémoire, ce fichier existe
sous au moins 2 versions entre excel 97 et 2007.
- Mscal.ocx et Mscal.Dll.
La seule donnée que je n'ai pas, c'est à savoir si le nom
de la bibliothèque est demeuré le même. (Je t'ai dit comment
procéder pour l'obtenir lors d'un message précédent sur ce fil.)
C ) à l'ouverture du fichier, la procédure va vérifier si le fichier existe
sur l'ordi. si non elle va copier le fichier "Calendar" dans le bon
répertoire et initiera la dll ou ocx dans la base de registre tout
en ajoutant la référence pour faire en sorte que ton application
contenant ce contrôle fonctionne sans anicroche
P.S- ton contrôle "calendar" sera opérationnelle. Cependant, ce
contrôle n'apparaitrera pas dans la boîte à outils du formulaire.
Il n'existe aucune façon d'ajouter l'icône à la boîte d'outils en
VBA. Cependant, si ton application est déjà créée avec ce
contrôle, tout fonctionnera rondement même si on ne détecte
pas sa présence dans la boîte d'outils du formulaire.
Pour ce qui est du reste -> lire les instructions.
'-------------------
Private Sub Workbook_Open()
'à l'ouverture du classeur, lancement de
'la procédure d'installation du fichier
OuverturePremièrefois
End Sub
'-------------------
'Dans le haut d'un module Standard, Déclaration de l'api
Private Declare Function GetSystemDirectory Lib "kernel32.dll" Alias _
"GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As
Long
Const Ref As String = "Mscal.ocx"
'------------------------------
Sub OuverturePremièrefois()
Dim ChFile As String
'Vérifie si la présence du fichier dans le
'répertoire système du nouvel ordinateur
ChFile = CheminSystem & ""
If Dir(ChFile & Ref) = "" Then
'Vérifie la présence de la dll
'dans le répertoire source de ce fichier.
If Dir(ThisWorkbook.Path & "" & Ref) = "" Then
MsgBox "Le fichier à installer est absent." & _
" Placer ce fichier " & Ref & " dans le ce " & _
"répertoire : " & ThisWorkbook.Path
'Si fichier(dll) n'est pas dans le répertoire
'de ce classeur, fin de la procédure.
Exit Sub
End If
'si le fichier n'existe pas, copie du fichier
CopierUnFichier ChFile 'Procédure
InitialerBaseDeRegistre ChFile 'Procédure
End If
On Error Resume Next
ThisWorkbook.VBProject.References.AddFromFile ChFile
On Error Goto 0
End Sub
'------------------------------
Sub CopierUnFichier(Destination As String)
'copie du fichier dans le répertoire système
FileCopy ThisWorkbook.Path & "" & Ref, Destination
End Sub
'------------------------------
Sub InitialerBaseDeRegistre(CheminFichier As String)
'Initialise la base de régistre
Shell "command.com /c " & CheminFichier & Ref
End Sub
'------------------------------
Function CheminSystem()
Dim RetVal As Long
Dim SysDir As String
SysDir = Space$(256)
RetVal = GetSystemDirectory(SysDir, Len(SysDir))
If RetVal <> 0 Then
CheminSystem = Left$(SysDir, RetVal)
End If
End Function
'------------------------------