XL 2013 Vba Indenter Interface v4.0a

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Jean BUSSER

XLDnaute Nouveau
Supporter XLD
Bonjour.
La démo étant séduisante, j'ai installé cette ressource. Mais dès le lancement d'Excel, le code VBA s'ffiche avec une erreur 1004 :
"Set bar = Application.VBE.CommandBars("Code Window")" "L'accès par programme au projet Visual Basic n'est pas fiable"
Je suis sous Windows 10, Excel 2013.
Que faire ?
Merci.
Jean
 
re
je suis en train d'arbitrer un combat en chatgpt et claude
l'un pense que les caractères de retard n'en sont pas et en fait une des touche"-" active le focus sur la fenêtre donc plus vite prises en charge par les autres touches

et l'autre pense que ce sont bien des touches(qui servent a rien)mais qui ralentisse donc l'arrivée du premier {TAB}

ça promet d'être intéressant
affaire à suivre
 
Salut,
Une astuce pour que le VBA ne soit pas bloqué par la fenêtre "Centre de gestion de la confidentialité", c'est de la lancer dans une autre instance d'Excel. A mettre dans le complément :
VB:
Public Sub OuvrirNouvelleInstanceEtMacroSecurityViaAddin()
    Dim xlApp As Object
    ' Créer nouvelle instance
    Set xlApp = CreateObject("Excel.Application")
    xlApp.Visible = True
    ' Charger le complément
    xlApp.Workbooks.Open ThisWorkbook.FullName
       ' Exécuter la macro depuis le complément
    xlApp.OnTime Now, "OuvrirSecuriteMacro"
End Sub

Sub OuvrirSecuriteMacro()
    CommandBars.ExecuteMso "MacroSecurity"
    Application.Quit
End Sub
On ouvre une nouvelle instance Excel dans laquelle on ouvre le complément et on lance la macro OuvrirNouvelleInstanceEtMacroSecurityViaAddin qui lance par le OnTime (pour que cela ne soit pas bloquant) l'ouverture de la boite de dialogue de sécurité. Comme cette boîte est dans une autre instance Excel elle ne bloque pas le VBA de l'instance en cours. On peut alors manipuler la boîte de dialogue avec du code vba. Dès qu'on ferme la boîte de dialogue, la nouvelle instance se ferme avec le Application.Quit.
Nullosse
 
Bonjour @Dudu2 merci
mais j'ai déjà ma méthode pour activer l’accès par vba
si je ne le fait pas c'est par déontologie
cela doit être de la responsabilité de l'utilisateur
j'ai expliqué comment il fallait faire sur 2013
un peu d'effort n'a jamais fait de mal a personne
Bonjour, PatrickToulon.
Certes, un peu d'effort ne fait pas de mal.
Mais, mets toi à la place de l'utilisateur qui a peut-être oublié une étape de l'installation de ton produit (installation pas simple, pas standard).
Il lance EXCEL pour travailler sur un classeur qui n'a pas la moindre macro VBA, et se trouve bloqué par une erreur dans le nouveau complément !
1 - sa première impression est mauvaise, et elle le restera
2 - il désinstalle et se tourne vers autre chose
Je ne vois pas où est la déontologie dans le fait d'obliger l'utilisateur (néophyte ou pas) à finir ton boulot, alors que tu aurais su le faire.
Bye
 
Mais, mets toi à la place de l'utilisateur qui a peut-être oublié une étape de l'installation de ton produit (installation pas simple, pas standard).
pas simple????
c'est si compliqué de copier le xla dans le dossier des addins ?
c'est si compliqué d'aller cocher l'addins dans les options d'excel?
et puisque tu va cocher l'addins c'est si compliqué d'aller cocher l’accès approuvé.....
c'est la base quand on démarre(débutant) le vba d'aller taper dans les options(c'est ce que l'on apprend en premier )
Je ne vois pas où est la déontologie dans le fait d'obliger l'utilisateur (néophyte ou pas) à finir ton boulot, alors que tu aurais su le faire.

serieux !!!!! "finir ton boulot" ,"j'aurais du le faire"!!!!!
non mais ta vu la vierge toi 😡😡
depuis quand c'est au dev de régler les paramètres d'excel d'un utilisateur
ne renvoie pas ta parfaite incompétence en la matière à la responsabilité du dev svp
non mais il est pas net celui la
tu sais quoi tu a raison ,installe toi le canard ou ce que tu veux
tu es dans un forum d'entraide ici ,personne ne te doit rien
quand tu sera capable de faire ce que je fait tu pourra l'ouvrir
non mais il est pas bien lui !!!!!!!!!!!!!!
 
Dernière édition:
re
Je vais être franc maintenant que ma tension redescend :
si vous pensez que c’est à moi de désactiver pour vous un verrou de sécurité dans votre propre environnement, c’est que vous n’avez rien compris ni à l’informatique, ni à la responsabilité.


L’option « Accès approuvé au modèle d’objet du projet VBA » existe pour éviter que des macros malveillantes prennent le contrôle de vos projets. C’est une protection volontairement placée entre vous et un potentiel désastre.
Et vous voudriez que je la contourne, en douce, pour votre confort personnel ? Sérieusement ?
par ce que vous êtes parfaitement incompétent ?

Forcer ce paramètre sans votre accord serait un acte de pirate, pas de développeur. Ce serait exactement comme si votre banquier vous demandait votre code PIN et que vous lui reprochiez de ne pas taper lui-même vos chiffres dans le distributeur.
Il y a un mot pour ça : irresponsabilité.


Donc je vais être très clair :


  • Mon outil fonctionne si vous activez ce paramètre.
  • Il ne fonctionnera pas si vous refusez.
  • Et il ne fonctionnera jamais en sacrifiant la sécurité des autres parce que vous avez décidé que « ça devrait être fait automatiquement ».

Si ce simple clic dans vos options vous semble trop insurmontable, peut-être que l’outil est effectivement trop avancé pour vous. Moi, je ne fabrique pas des jouets, je développe des outils utiles et responsable. À vous de vous hisser au niveau, pas l’inverse."*
 
Dernière édition:
pas simple????
c'est si compliqué de copier le xla dans le dossier des addins ?
c'est si compliqué d'aller cocher l'addins dans les options d'excel?
et puisque tu va cocher l'addins c'est si compliqué d'aller cocher l’accès approuvé.....
c'est la base quand on démarre(débutant) le vba d'aller taper dans les options(c'est ce que l'on apprend en premier )


serieux !!!!! "finir ton boulot" ,"j'aurais du le faire"!!!!!
non mais ta vu la vierge toi 😡😡
depuis quand c'est au dev de régler les paramètres d'excel d'un utilisateur
ne renvoie pas ta parfaite incompétence en la matière à la responsabilité du dev svp
non mais il est pas net celui la
tu sais quoi tu a raison ,installe toi le canard ou ce que tu veux
tu es dans un forum d'entraide ici ,personne ne te doit rien
quand tu sera capable de faire ce que je fait tu pourra l'ouvrir
non mais il est pas bien lui !!!!!!!!!!!!!!
Bon, désolé, ne t'énerve pas. Je ne voulais pas te fâcher.
Je suis totalement incapable de faire ce que tu fais.
C'est pour ça que, utilisateur lambda pas du tout spécialiste de ces subtilités, j'ai regretté de devoir demander de l'aide pour résoudre une erreur dont je ne comprenais même pas le sens du libellé ! Oui, j'avais oublié une étape, mais ce qui est évident pour un spécialiste plutôt pointu comme toi, pour moi c'est du chinois.
Bravo en tout cas, car si j'avais installé ton indenteur, c'est parce la démo m'avait beaucoup plu.
 
pour l'instant je suis pas allé plus loin, mais à mon avis avec UIAutomation on doit pouvoir manipuler la case à cocher de la boîte de dialogue (lire son état, changer son état) .
Bon avec l'aide de l'I.A j'ai pondu un truc (à vérifier) :
VB:
Public Sub verifySecu()
Dim c As New CUIAutomation, root As IUIAutomationElement, oExcel As IUIAutomationElement
Dim oSecurity As IUIAutomationElement, oCheckbox As IUIAutomationElement, oCondition As IUIAutomationCondition, res, i
Dim allCB As IUIAutomationElementArray, oBtOK As IUIAutomationElement
On Error Resume Next
Set root = c.GetRootElement
Set oCondition = c.CreatePropertyCondition(UIAutomationClient.UIA_NamePropertyId, "Excel") 'fenêtre nouvelle instance
Set oExcel = root.FindFirst(TreeScope_Children, oCondition)
Set oCondition = c.CreatePropertyCondition(UIAutomationClient.UIA_NamePropertyId, "Centre de gestion de la confidentialité")
Set oSecurity = oExcel.FindFirst(TreeScope_Descendants, oCondition)
Set oCondition = c.CreatePropertyCondition(UIAutomationClient.UIA_NamePropertyId, "OK") ' bouton OK
Set oBtOK = oSecurity.FindFirst(TreeScope_Descendants, oCondition)
Set oCondition = c.CreatePropertyCondition(UIAutomationClient.UIA_ControlTypePropertyId, 50002) 'NetUICheckbox case à cocher
Set allCB = oSecurity.FindAll(TreeScope_Descendants, oCondition)
    For i = 0 To allCB.Length - 1
        Set oCheckbox = allCB.GetElement(i) ' la dernière CB est la bonne normalement
        Debug.Print oCheckbox.CurrentName
    Next i        ' Récupérer le TogglePattern
Dim togglePattern As IUIAutomationTogglePattern
Set togglePattern = oCheckbox.GetCurrentPattern(UIA_TogglePatternId)
' Lire l’état actuel
Dim currentState As Integer
currentState = togglePattern.CurrentToggleState
    Select Case currentState
            Case ToggleState_Off
                Debug.Print "Checkbox est décochée. On va la cocher."
                togglePattern.Toggle  ' Devient cochée
            Case ToggleState_On
                Debug.Print "Checkbox est cochée"
            Case ToggleState_Indeterminate
                Debug.Print "Checkbox est dans un état indéterminé."
    End Select
Dim clicBtnOK As IUIAutomationInvokePattern
Set clicBtnOK = oBtOK.GetCurrentPattern(UIA_InvokePatternId)
clicBtnOK.Invoke ' cliquer sur le bouton OK
End Sub
il faut cocher la référence à UIAutomationClient
Il faut lancer cette macro après avoir lancer la boîte de dialogue dans une nouvelle instance
On cherche la fenêtre de la nouvelle Instance (Excel) et dedans on cherche la boîte de dialogue.
Dans la boîte de dialogue on cherche les cases à cocher et on retient la dernière . On vérifie l'état si c'est non coché , on coche.
Puis on clique sur le bouton OK. Cela ferme la boîte de dialogue et ferme la fenêtre Excel
 
Bonjour,
Tu ne trouveras pas de développeur responsable tanter de contourner la sécurité imposé par le système.

Bon nombre, don je fais parti, ne se sont même pas posé la question du comment faire. Il y a tellement de choses à explorer dans le cadre de la légalité que ce qui est illégal n'apporte aucun intérêt.

Le type qui a contrefait une carte bancaire pour attirer l'intention des banques. C'est fait encristé a juste titre.

Il y une différence entre dire a quelqu'un je rentre chez toi quand je veux et le trouver dans son salon "je te l'avais bien dit"
 
Bonjour à tous,
Mais, mets toi à la place de l'utilisateur qui a peut-être oublié une étape de l'installation de ton produit (installation pas simple, pas standard).
Il lance EXCEL pour travailler sur un classeur qui n'a pas la moindre macro VBA, et se trouve bloqué par une erreur dans le nouveau complément !
Et le transfert de responsabilité, on en parle ?
Tu es développeur, tu active « Accès approuvé au modèle d’objet du projet VBA » sans rien demander à personne. l'utilisateur télécharge un fichier avec un virus, son disque dur est encrypté, il doit payer une rançon, il te fait un procès et toi tu paye. Donc il vaut mieux lui laisser cette tâche...
 
re
@valtraze , @dysorthographie franchement merci les gars au moins deux qui comprennent

@Jean BUSSER
Bon, désolé, ne t'énerve pas. Je ne voulais pas te fâcher.
Je suis totalement incapable de faire ce que tu fais.
Je ne vois pas où est la déontologie dans le fait d'obliger l'utilisateur (néophyte ou pas) à finir ton boulot, alors que tu aurais su le faire.
Bye
serieux!!!????
ben moi quand je lis des trucs pareils oui je me fâche
ici nous somme tous bénévoles, on doit rien a personne , et encore moins recevoir des critique du genre "t'a pas fini ton boulot "
en fait vous êtes fâché contre vous même d'être absolument incompétents et vous reportez votre déception sur la responsabilité de ceux qui vous proposent des choses clé en main (moyennant le fait que vous sachiez à minima paramétrer votre application excel)
mais comme vous êtes dans l'ignorance Totale c'est sur c'est la faute des autres

bon de toute façon c'est plié tu a le canard si j'ai bien suivi et ça ira très bien
Patrick
 
Bonjour,
Moi, ce qui me dérange, ce sont les réactions violentes...
Le demandeur pose une question, somme toute banale, se retrouve avec 4 ou 5 pages de réponses n'ayant rien à voir avec sa demande (il suffisait de lui indiquer le chemin pour autoriser, et non faire vos démonstrations de "c'est moi qui ais la plus belle....")
Et en plus il se fait insulter, traiter d'incompétent, d'ignorant...
C'est sûr qu'avec ce type de réaction, il va peut-être revenir...
Un peu de modération, svp.
Bonne journée
 
Bonjour,
Moi, ce qui me dérange, ce sont les réactions violentes...
Le demandeur pose une question, somme toute banale, se retrouve avec 4 ou 5 pages de réponses n'ayant rien à voir avec sa demande (il suffisait de lui indiquer le chemin pour autoriser, et non faire vos démonstrations de "c'est moi qui ais la plus belle....")
Et en plus il se fait insulter, traiter d'incompétent, d'ignorant...
C'est sûr qu'avec ce type de réaction, il va peut-être revenir...
Un peu de modération, svp.
Bonne journée
Bonjour @Cousinhub
  1. la méthode il la dans la vidéo
  2. je lui ai donné la marche a suivre plus haut dans le topic
j'ai l'impression que tu regarde dans un seul sens toi hein
quand un membre te dis t a pas fini ton boulot
ou un autre dis ho moi j'ai fini par abandonné j'ai installé....( je sais plus quoi)
c'est pas de la violence et du mépris ça
et quand tu leur dis comment il faut faire ils appuient sur le fait "tu aurais du le dire" alors que c'est expliqué dans les vidéos depuis la premières versions

bref je m’arrête là sinon je vais encore m’enflammer

du coup tu vois je voulais déposer la mise a jour avec le guide pour ce problème
et ben je vais même pas le faire

Bonne fin de journée à tous
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
914
Retour