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 :

[VBA-E]Référence à activer pour OLEObject


Sujet :

Macros et VBA Excel

  1. #1
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut [VBA-E]Référence à activer pour OLEObject
    Bonsoir,
    J'ai à utiliser le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        For Each obj In Worksheets("Feuil1").OLEObjects
              MsgBox obj.Name
        Next
    L'objet est une "zone de texte" Barre d'outils Dessin (non Commandes)
    Code inspiré de l'aide où il est précisemment utilisé avec une "zone de texte" (et que j'ai utilisé ailleurs pour des commandButton placés dans une feuille de calcul)
    Or ce code ne fonctionne pas sur "ce" poste
    Quelqu'un a-t-il une idée de la référence que je dois valider pour corriger le tir ? (car je ne vois que ça)

    Merci de votre réponse.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour cher Ouskel'n'or

    cette synthaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Obj As OLEObject
     
    For Each Obj In Worksheets("Feuil1").OLEObjects
    MsgBox Obj.Name
    Next
    est à utiliser pour boucler sur les objets de la boite à outils controles




    pour boucler sur les objets de la barre d'outils dessins , de la barre d'outils formulaires et de la boite à outils controles

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Obj As Shape
     
    For Each Obj In Worksheets("Feuil1").Shapes
    MsgBox Obj.Name
    Next


    pour boucler uniquement sur les objets de la barre d'outils formulaires

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Obj As Shape
     
    For Each Obj In ActiveSheet.Shapes
    If Obj.Type = msoFormControl Then MsgBox Obj.Name
    Next Obj


    pour boucler uniquement sur les objets formes automatiques (rectangle, ovale, autoshape ...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Obj As Shape
     
    For Each Obj In ActiveSheet.Shapes
    If Obj.Type = msoAutoShape Then MsgBox Obj.Name
    Next Obj



    bonne journée
    michel

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Merci Silky,
    Ce que j'apprécie est l'exhaustivité de tes réponses et ton application à épuiser le sujet. Je collectionne d'ailleurs tes solutions et je m'y réfère dès que je cale.
    En l'occurence, je me suis laissé tromper par l'aide dont j'ai extrait ça
    L'exemple suivant montre comment supprimer l'objet OLE « ZonedeListe1 ».
    Worksheets("Feuil1").OLEObjects("ZonedeListe1").Delete
    Pas étonnant que je n'arrivais pas à l'utiliser.

    Par contre, avec Shapes, également essayé, je n'arrive pas à accéder à la zone de text sans la sélectionner. Par exemple, ceci fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Shapes("Text Box 1").Select
        MsgBox Selection.Characters.Text
    Mais ceci ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       With Worksheets("Feuil1").Shapes("Text Box 1")
            MsgBox .Characters.Text
        End With
    Non plus que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       With Shapes("Text Box 1")
            MsgBox .Characters.Text
        End With
    ni
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            MsgBox ThisWorkbook.Worksheets("Feuil1").Shapes("Text Box 1").Characters.Text
    ni
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            MsgBox Worksheets("Feuil1").Shapes("Text Box 1").Characters.Text
    ni
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            MsgBox Shapes("Text Box 1").Characters.Text
    Ce qui paraît normal puisque une zone de liste "Dessin" n'est pas un objet appartenant à une feuille de calcul...

    Enfin je passe sur les essais hasardeux que je n'avouerai jamais avoir faits, même sous la torture.

    Mais alors, à quoi appartient de foutu objet ?

    Merci pour la réponse

  4. #4
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    par ex
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set feuille = ActiveWorkbook.Worksheets(1)
    Set toto = feuille.Shapes(1)
    MsgBox toto.OLEFormat.Object.Characters.Text

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    bidou,
    C'est ok du premier coup !
    Donc, mes essais inavouables avec OLE..., j'aurais pu les évoquer ?

    Merci une fois encore.

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 20/05/2008, 14h49
  2. [VBA Excel] référence necessaire pour OLEObjects
    Par gatsu07 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 03/08/2006, 08h51
  3. [VBA-E] référence Pour fonction Excel
    Par illight dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 19/04/2006, 14h29
  4. [VBA-E] [help]macro pour dupliquer une feuille (en valeur)
    Par minikisskool dans le forum Macros et VBA Excel
    Réponses: 31
    Dernier message: 07/11/2005, 19h24
  5. Réponses: 4
    Dernier message: 12/09/2005, 09h21

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