IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

explication sur l'object scriptcontrol


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut explication sur l'object scriptcontrol
    bonjour a tous

    dans un autre post Durupt a proposé ceci:


    j'aimerait comprendre a partir le la ligne 13

    j'ai l'impression que Durupt utilise le scriptcontrol comme moi j'utilise l'Object "htmlfile"

    cela dis je ne suis pas sur de comprendre a partir de la ligne 13

    voila durupt j'ai ouvert un autre post pour ne pas pollué l'autre post si tu passe par la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub test()
    Dim a As Integer
    Dim code As String
    code = "Sub Test()" & vbCrLf
    code = code & "dim a,i" & vbCrLf
    code = code & "for i = 1 to 10" & vbCrLf
    code = code & "a = a + 10" & vbCrLf
    code = code & "next " & vbCrLf
    code = code & "msgbox a" & vbCrLf
    code = code & "End Sub" & vbCrLf
    Set scr = CreateObject("ScriptControl")
    scr.Language = "VbScript"
    scr.AddObject "This", ThisWorkbook, True
    Set m = scr.Modules.Add("Module1")
    m.AddCode code
    m.Run "test"
    Set m= nothing
    Set scr = nothing
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Tu peux déjà monter la référence à msscript.ocx pour voir les Objects dans l'Explorateur d'objets.

    Chez moi j'ai :
    Library MSScriptControl
    C:\WINDOWS\system32\msscript.ocx
    Microsoft Script Control 1.0

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour PMO2017

    heu.......
    Tu peux déjà monter la référence à msscript.ocx pour voir les Objects dans l'Explorateur d'objets.
    moi je monte a cheval et a l'échelle et toi?

    cela dit ce n'est pas ce qui m'intéresse déjà parce que je ne fait que du late binding (transportabilité)alors ce qui peut ce passer dans la référence ......

    moi c'est les lignes 13 et plus que je ne suis pas sur de comprendre :après l'Object presque m'importe peu

    cela dit quelle référence faut il activer pour l'avoir je ne le trouve pas chez moi
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour tout le monde et bonjour Patrick,
    L'objet ScriptControl permet certe d'exécuter un script vbscript ou javascript c'est selon, mais il permet un réactivité entre le script et le programme appelant.
    "This" représente un nom virtuel qui sera utilisé dans le script, ThisWorkbook L'objet physique passé en paramètre.
    Code vbscript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    This.workSeets("feuil1")
    This.application.vba.dir("c:\*.*")

    J'ai mis "This" mais je pouvais mettre "DuChnoque"

    Jusqu'ici nous avons créé une enveloppe comme qu'en on ouvre une session Excel,on p. Voir Excel mais il est vide et il faut lui ajouter des workbooks

    Set m = scr.Modules.Add("Module1") ajoute un module vierge.

    Ensuite on change le code dans le module et on l'exécute.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    m.AddCode code
    m.Run "test"
    Note qu'il est possible de créer de fonctions et que le run te retourne la valeur
    v = m.run("myfoncton")Note également que les Sub et les fonctions ne sont pas obligatoire tu peux placer ton code directement sens Sub et end Sub et dans ce cas m.run suffit!

    Dans une application visual studio 6, j"utilisais un web office qui présentait des données a saisir, certaines personnes en charge de contrôler certaines données voulaient masquer certains colonnes et d'autres d'autre colonnes.

    J'ai mis au point un générateur de macros et j'ai utiliser cet algorithme pour l'exécution
    Dernière modification par Invité ; 01/07/2015 à 21h39.

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonsoir Durupt

    OK donc je reprends
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    'on créé l'object script 
    Set scr = CreateObject("ScriptControl")
    'on lui atrubue le language VBS
    scr.Language = "VbScript"
    'on lui atrubu le parmatre  thiworkbook (le classeur actuel)
    scr.AddObject "This", ThisWorkbook, True
    'on ajoute un module dans le workbook
    Set m = scr.Modules.Add("Module1")
    'on place le code dans le module du workbook en parametre 
    m.AddCode code
    ' on execute la sub test du module 1 précédement créé
    m.Run "test"
    c'est cette ligne qui me rend perplexe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set m = scr.Modules.Add("Module1")
    j'aurais plutôt tendance a penser que l'on ajoute un module dans SRC

    mais déjà tu a répondu a une question qui me tarabustait depuis 2 jours

    a savoir créé l'object ,placer un code sans sub ou fonction, et l'exécuter

    ca reviendrais a la me chose que créé un fichier VBS avec du code dedans et lancer le vbs externe sauf que la c'est interne
    tout du moins en mémoire de la même manière que mon Object "htmlfile"

    on est d'accords ??,

    cet object m'intéresse pour reprendre la contrib de MarcL sur le sujet "accélérer une requête multi page web qui utilise en l'etat un fichier physique VBS

    j'avais fait une tentative mais échoué ne connaissant pas bien cet object
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour Patrick,
    j'aurais plutôt tendance a penser que l'on ajoute un module dans SRC
    Oui comme set wb =workbooks.add ajoute un classeur à. Workbooks mais ne nous interdit pas d'utiliser wb


    En soit utiliser ScriptControl dans un projet vba, relève d'un exercice de style et présente peut d'intérêt ! C'est pas tous les jours qu'on implémente du code à la volé dans une macro.
    ca reviendrais a la me chose que créé un fichier VBS avec du code dedans et lancer le vbs externe sauf que la c'est interne
    On utilise ce type d'algorithmes pour des projets vbs volumineux, on exécute un ficher vbs qui ouvre un autre fichier vbs qui le run pour le charger en mémoires.

    Sur une autre conversation il était question une sorte includ, c'est exactement ça.
    On peut charger plusieurs modules et ce contenter de faire un run sens appeler un méthode pour activer le procès d'exécution ainsi toutes les méthodes sont accessibles d'un autre module.

    J'ai fourni à vba une technique utiliser en vbs.

    On utilise ce procédé pour inclure plusieurs fichiers vbs dans l'exécution d'un seule (#includ)!

    Tu attends des réponses à tes questionnement et c'est bien légitime, mais tu veux tellement que ça match que tu perds de vue les fondamentaux!

    Je pense que cet objet vas répondre favorablement à ta problématique! Seulement tes bourdes te feront progresser sur le sujet!

    Et même passer ton "htmlfile" en paramètre et le gérer dans "scriptcontrol" (faire un mixe des deux!)
    Dernière modification par Invité ; 02/07/2015 à 13h00.

Discussions similaires

  1. Explication sur List(Of Object).IndexOf(Object)
    Par Zakapatul dans le forum VB.NET
    Réponses: 2
    Dernier message: 01/12/2008, 15h55
  2. [C#] Quelles explications sur Object.Equals()
    Par vandamme dans le forum C#
    Réponses: 16
    Dernier message: 22/04/2006, 01h30
  3. s.v.p :explication sur le ".h" et dll de l'opengl
    Par Asmod_D dans le forum OpenGL
    Réponses: 1
    Dernier message: 22/11/2004, 10h32
  4. Réponses: 28
    Dernier message: 18/08/2003, 11h54
  5. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo