Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 Problème ScriptControl

Rabeto

XLDnaute Occasionnel
Bonjour,

Que peut être la raison de cette erreur lors du lancement de la macro svp (Ligne Jaune)

Je suis sur office 2021

J'ai vu des sujets à propos de MSscript.ocx ect... mais avec les solutions, cela ne fonctionne toujours pas

 

Dranreb

XLDnaute Barbatruc
Bonsoir.
La référence "Micosoft script control 1.0" étant cochée dans un nouveau classeur, cette procédure ne provoque pas d'erreur chez moi :
VB:
Sub Test()
   Dim SCl As New ScriptControl
   SCl.Language = "JScript"
   End Sub
 

dysorthographie

XLDnaute Accro
Bonjour,

Les erreurs lors du lancement d'une macro, particulièrement si une ligne spécifique est surlignée (ligne jaune), peuvent souvent être liées à des problèmes avec les contrôles ActiveX comme MSscript.ocx. Toutefois, les solutions classiques peuvent ne pas toujours résoudre le problème, surtout avec Office 2021 où des restrictions de sécurité supplémentaires ont été mises en place.

Voici quelques pistes pour résoudre ce problème :

### 1. Vérification des paramètres de sécurité
Office 2021 peut bloquer les contrôles ActiveX par défaut pour des raisons de sécurité. Pour vérifier et ajuster ces paramètres :

1. Ouvrez l'application Office concernée (Excel, Word, etc.).
2. Allez dans "Fichier" > "Options" > "Centre de gestion de la confidentialité" > "Paramètres du Centre de gestion de la confidentialité".
3. Sélectionnez "Paramètres des macros" et assurez-vous que l'option permettant d'activer les macros est cochée.
4. Cliquez sur "Paramètres des contrôles ActiveX" et assurez-vous que l'option "Désactiver tous les contrôles sans notification" n'est pas cochée. Vous pouvez choisir "Demander avant d'activer tous les contrôles avec restrictions".

### 2. Ré-enregistrement des contrôles ActiveX
Parfois, il est nécessaire de ré-enregistrer les contrôles ActiveX. Pour ce faire :

1. Ouvrez l'invite de commandes en mode administrateur.
2. Exécutez les commandes suivantes :

```sh
regsvr32 c:\windows\system32\mscomctl.ocx
regsvr32 c:\windows\system32\mswinsck.ocx
```

### 3. Utilisation de solutions alternatives
Les contrôles ActiveX étant souvent bloqués pour des raisons de sécurité, il peut être judicieux d'explorer des alternatives. Par exemple, utilisez des formulaires UserForm et les contrôles intégrés de VBA qui peuvent souvent remplacer les contrôles ActiveX dans les macros.

### 4. Mise à jour d'Office
Assurez-vous que votre installation d'Office 2021 est à jour. Les mises à jour peuvent inclure des correctifs pour des problèmes connus avec les macros et les contrôles ActiveX.

### 5. Documentation et mises à jour de sécurité de Microsoft
Consultez la documentation de Microsoft et les mises à jour de sécurité concernant les contrôles ActiveX. Microsoft publie régulièrement des informations sur les restrictions et les alternatives disponibles.

En prenant en compte ces recommandations, vous devriez pouvoir résoudre les problèmes liés aux contrôles ActiveX et faire fonctionner votre macro correctement. Si le problème persiste, fournir plus de détails sur l'erreur et le code de la macro serait utile pour un diagnostic plus précis.
 

Rabeto

XLDnaute Occasionnel
Ah, voilà l'erreur



Mais, j'aimerai passer à autre chose,

bref, j'ai essayé autre méthode est fonction bien, avec la macro ci-dessous
J'aimerai juste savoir si vous avez une solution car lors du traitement macro, si la macro ne trouve pas (Par exemple X1 dans les données) cela me donne une erreur



Y a t-il un moyen de dire à la macro de passer à l'étape suivante si erreur et de terminer le traitement sans erreur.

Merci
-------------------------------------------------------------
Sub TESTLANCEMENT()

suppfeuilles
Range("A1").CurrentRegion.Offset(2, 0).ClearContents

Site = Range("F1").Value
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", Site, False
.send
donnee = .responsetext
End With

table = Split(donnee, "Base"":")

For i = 1 To UBound(table )
With ActiveSheet
.Cells(i + 2, 1).Value = Split(table (i), ",")(0)
.Cells(i + 2, 2).Value = Split(Split(table (i), "X1"":")(1), ",")(0) 'Laisser vide et Passer à X2 si erreur
.Cells(i + 2, 2).Value = Split(Split(table (i), "X2"":")(1), ",")(0) 'Laisser vide et Passer à X3 si erreur
.Cells(i + 2, 3).Value = Split(Split(table (i), "X3"":")(1), ",")(0) 'Laisser vide et Passer à X4 si erreur
.Cells(i + 2, 4).Value = Split(Split(table (i), "X4"":")(1), ",")(0) 'Laisser vide et Passer à X5 si erreur
.Cells(i + 2, 6).Value = Split(Split(table (i), "X5"":")(1), ",")(0) 'Laisser vide et Passer à X6 si erreur
.Cells(i + 2, 5).Value = Split(Split(table (i), "X6"":")(1), ",")(0) 'Laisser vide et Passer à X7 si erreur
.Cells(i + 2, 8).Value = Split(Split(table (i), "X7"":")(1), ",")(0) 'Laisser vide et Passer à X8 si erreur
.Cells(i + 2, 6).Value = Split(Split(table (i), "X8"":")(1), ",")(0) 'Laisser vide et Passer à X8 si erreur

End With
Next

End Sub
---------------------------------------------------------------------
 

patricktoulon

XLDnaute Barbatruc
ce control est tout simplement déactivé en dehors des paramètres de securité de vba
il n'est donc tout simplement plus utilisable dans l'environnement windows
il faut aller faire peter une cle de registre dans regedit
et ca repart comme en 14
 

patricktoulon

XLDnaute Barbatruc
l'addresse dans le registre ça doit être un truc de ce genre
pour les version clickandrun
VB:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Office\16.0
\ClickToRun\REGISTRY\MACHINE\Software\Wo
w6432Node\Microsoft\Office\16.0
\Common\COM Compatibility\leclisd

pour ceux qui ont des version Msi
Code:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432
Node\Microsoft\Office\16.0\Common\COM
Compatibility\leclisd

1°remplacer 16 par le numéro de la version que l'on utilise
2°remplacer le mot"leclisd" par la reférence du clisd
Les identificateurs de classe suivants sont affectés par

liste non exhaustive ci dessous

Description ClassID
Contrôle de navigateur(le webbrowser )
Web

{8856F961-340A-11D0-
A96B-00C04FD705A2}

Composant Microsoft
Scriptlet

{AE24FDAE-03C6-11D1-
8B76-0080C744F389}

Contrôle d’édition HTML
{25336920-03F9-11CF-
8FD0-00AA00686F13}
{25336921-03F9-11CF-
8FD0-00AA00686F13}

Contrôle d’édition de
MHTML

{3050F3D9-98B5-11CFBB82-
00AA00BDCE0B}
{3050F5C8-98B5-11CFBB82-
00AA00BDCE0B}
{3050F67D-98B5-11CFBB82-
00AA00BDCE0B}

Contrôle DHTML Edit
{2D360200-FFF5-11d1-
8d03-00a0c959bc0a}

Contrôle de (sécurisé
pour le script) DHTML

{2D360201-FFF5-11d1-
8D03-00A0C959BC0A}

une fois que vous avez trouvé vottre clé dans la base de registre
click droit dessus et exporte pour la sauvegarder et après vous la supprimez tout simplement
 

patricktoulon

XLDnaute Barbatruc
Bonjour Robert
oui exact il y a un article là dessus je s"is plus ou c'est mais quand j'avais trouvé pour 2013 je m'était fait un pdf
comme ça c'est pas perdu

edit:
oui c'est ça ça vient de microsoft
une petite precision
maintenant vous savez tout
 

dysorthographie

XLDnaute Accro
Bonjour Patrick,
Bonjour Robert
oui exact il y a un article là dessus je s"is plus ou c'est mais quand j'avais trouvé pour 2013 je m'était fait un pdf
comme ça c'est pas perdu
J'utilise Guitlab même pour y stocker des pdf

Si tu formate ou change d'ordinateur tu peux récupérer le lien sur le site de Guitlab et le rapatrier sur ton PC il faut tortues et 2,3 truc mais c'est simple
 

Discussions similaires

Réponses
3
Affichages
492
Réponses
10
Affichages
464
Réponses
18
Affichages
869
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…