owc SpreadSheet

Le
isabelle
Salutatous,

il y aurait t'il moyen d'éviter le message suivant lorsque l'on utilise
dans un UserForm un control SpreadSheet,
Message :
Cet application est sur le point d'initialiser les contrôles ActiveX qui
ne sont peut-être pas fiables. si la source de ce fichier vous semble
fiable, cliker sur OK. Les contrôles seront initialisés avec les
paramètres d'espace de travail actuels.

merci,
isabelle
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #21362941
Bonjour Isabelle,

Pour Excel 2003, consulte ce site :
http://support.microsoft.com/default.aspx?scid=kb;en-us;827742

Pour Excel 2007,
http://office.microsoft.com/en-us/help/HA100310671033.aspx






"isabelle" a écrit dans le message de groupe de discussion :

Salutatous,

il y aurait t'il moyen d'éviter le message suivant lorsque l'on utilise
dans un UserForm un control SpreadSheet,
Message :
Cet application est sur le point d'initialiser les contrôles ActiveX qui
ne sont peut-être pas fiables. si la source de ce fichier vous semble
fiable, cliker sur OK. Les contrôles seront initialisés avec les
paramètres d'espace de travail actuels.

merci,
isabelle
michdenis
Le #21363161
Pour les versions 2002 et 2003, je n'ai pas trouvé un moyen de
se soustraire à ce message. Le mieux que je connais c'est
de retarder l'affichage du message au moment d'ouvrir le formulaire
plutôt que l'ouverture du fichier.

Pour ce faire, il s'agit d'enlever la référence au moment de fermer le
fichier. Évidemment, il faudra répondre oui pour sauvegarder la
modification... à moins d'ajouter à la procédure ThisWorkbook.Save
'-------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Dim LesRefs As Object
Set LesRefs = ThisWorkbook.VBProject.References
For i = 1 To LesRefs.Count
If Left(UCase(LesRefs(i).Name), 4) = "OWC1" Then
LesRefs.Remove LesRefs.Item(LesRefs(i).Name)
Exit For
End If
Next
End Sub
'-------------------------

Et lors de l'ouverture du formulaire :
'-------------------------
Sub afficher_formulaire()
On Error Resume Next
'Chargement de la référence
ThisWorkbook.VBProject.References.AddFromGuid _
"{0002E558-0000-0000-C000-000000000046}", 1, 1
UserForm1.Show
End Sub
'-------------------------




"michdenis" O0$
Bonjour Isabelle,

Pour Excel 2003, consulte ce site :
http://support.microsoft.com/default.aspx?scid=kb;en-us;827742

Pour Excel 2007,
http://office.microsoft.com/en-us/help/HA100310671033.aspx






"isabelle" a écrit dans le message de groupe de discussion :

Salutatous,

il y aurait t'il moyen d'éviter le message suivant lorsque l'on utilise
dans un UserForm un control SpreadSheet,
Message :
Cet application est sur le point d'initialiser les contrôles ActiveX qui
ne sont peut-être pas fiables. si la source de ce fichier vous semble
fiable, cliker sur OK. Les contrôles seront initialisés avec les
paramètres d'espace de travail actuels.

merci,
isabelle
isabelle
Le #21363441
salut Denis,

c'est bien vrai, j'ai installé le Microsoft Office Tools et ça n'a rien
changer,
je vais appliquer ta solution en attendant,
j'ai trouvé un autre méthode mais je n'arrive pas à la mettre en
pratique, si tu veut bien y jeter un oeil,
je l'ai trouvé ici :
http://www.vbfrance.com/tutoriaux/AJOUTER-CONTROLE-OCX-DYNAMIQUEMENT-PLEINE-EXECUTION-LATE-BINDING_361.aspx
et le Progid: OWC10.Spreadsheet.10 ici :
http://cyberinsecure.com/microsoft-office-web-components-activex-control-msdatasourceobject-vulnerability-allows-remote-code-execution/
j'ai un message d'erreur de compilation "Type défini par l'utilisateur
non défini"
sur la ligne ... As VBControlExtender
merci,
isabelle
'________________________________________________________________________
Sub Macro1()
'a exécuter une seul fois
'enregistrer l'ocx dans le registre de windows
Shell ("RegSvr32.exe -s, C:Program FilesFichiers communsMicrosoft
SharedWeb Components10OWC10.DLL")
End Sub

Dim WithEvents MySpreadSheet As VBControlExtender

Private Sub UserForm_Initialize()
Set MySpreadSheet = UserForm1.Controls.Add("OWC10.Spreadsheet.10",
"Spreadsheet")
MySpreadSheet.Visible = True
With MySpreadSheet
.Height = 350
.Width = 350
.Object.Author = ""
.Author = ""
End With
End Sub

Private Sub MySpreadSheet_ObjectEvent(info As EventInfo)
Dim i As Long
Dim nbArgs As Long
Dim msg As String
nbArgs = info.EventParameters.Count
msg = msg & "Evenement : " & info.Name & vbCrLf
For i = 0 To nbArgs - 1
msg = msg & "Argument n. " & CStr(i) & " name = " &
CStr(info.EventParameters(i).Name & " valeur = " &
CStr(info.EventParameters(i).Value)) & vbCrLf
Next i
MsgBox msg, vbInformation, "Evenement !"
End Sub
'________________________________________________________________________


Le 2010-03-11 16:58, michdenis a écrit :
Pour les versions 2002 et 2003, je n'ai pas trouvé un moyen de
se soustraire à ce message. Le mieux que je connais c'est
de retarder l'affichage du message au moment d'ouvrir le formulaire
plutôt que l'ouverture du fichier.

Pour ce faire, il s'agit d'enlever la référence au moment de fermer le
fichier. Évidemment, il faudra répondre oui pour sauvegarder la
modification... à moins d'ajouter à la procédure ThisWorkbook.Save
'-------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Dim LesRefs As Object
Set LesRefs = ThisWorkbook.VBProject.References
For i = 1 To LesRefs.Count
If Left(UCase(LesRefs(i).Name), 4) = "OWC1" Then
LesRefs.Remove LesRefs.Item(LesRefs(i).Name)
Exit For
End If
Next
End Sub
'-------------------------

Et lors de l'ouverture du formulaire :
'-------------------------
Sub afficher_formulaire()
On Error Resume Next
'Chargement de la référence
ThisWorkbook.VBProject.References.AddFromGuid _
"{0002E558-0000-0000-C000-000000000046}", 1, 1
UserForm1.Show
End Sub
'-------------------------




"michdenis" O0$
Bonjour Isabelle,

Pour Excel 2003, consulte ce site :
http://support.microsoft.com/default.aspx?scid=kb;en-us;827742

Pour Excel 2007,
http://office.microsoft.com/en-us/help/HA100310671033.aspx






"isabelle" a écrit dans le message de groupe de discussion :

Salutatous,

il y aurait t'il moyen d'éviter le message suivant lorsque l'on utilise
dans un UserForm un control SpreadSheet,
Message :
Cet application est sur le point d'initialiser les contrôles ActiveX qui
ne sont peut-être pas fiables. si la source de ce fichier vous semble
fiable, cliker sur OK. Les contrôles seront initialisés avec les
paramètres d'espace de travail actuels.

merci,
isabelle


Publicité
Poster une réponse
Anonyme