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

VBScript Discussion :

Récupérer Objet/Controls d'une feuille excel


Sujet :

VBScript

  1. #1
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut Récupérer Objet/Controls d'une feuille excel
    Bonjour,

    Dans le but de réaliser mon script j'ai tenté de modifier le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim ctrl As Control
        For Each ctrl In Me.Controls
            If TypeOf ctrl Is MsForms.TextBox Then
                ctrl.Name
            End If
        Next ctrl
    En effet Me est inconnu au bataillon en VBS par exemple, donc cela donne cela :
    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
    Dim ExcelFile
     
    ExcelFile = "C:\Documents and Settings\uspa8495\Desktop\IMS Test Plan v2611_revSPI.xls"
    Set obj_xls = CreateObject("Excel.Application")
    Set obj_File = obj_Xls.Workbooks.Open (ExcelFile)
    GetObjectList obj_File, obj_xls, "SIP Conformance RFC3261"
     
    Function GetObjectList(obj_File, obj_xls, Nom_feuille)
    Dim ctrl
    Set Feuille = obj_File.Worksheets(Nom_feuille)
        For Each ctrl In Feuille.Controls 'obj_File.Controls 'obj_xls.Controls 'Me.Controls
    		'msgbox ctrl.Name
            'If TypeOf ctrl Is MsForms.TextBox Then
            '    ctrl.Name
            'End If
        Next
    End Function
    Mais bien sur cel ne marche pas, j'ai une erreur :
    Cette objet ne gère pas cette proprieté ou cette méthode : Feuille.Controls

    Erreur au caractère 5 de la ligne 31, c'est à dire celle du for each (je n'ai pas posté une fonction fonctionnelle que je n'appelle pas, d'où 31 et pas un truc comme 20)

    Bref avec les commentaires vous avez mes tentatives. Quelqu'un aurait une idée ?
    Je ne suis pas très fort en traduction VBA -> VBS

    Mon but est de récupérer les Objets/Controls d'une feuille d'un classeur, et en fonction de leur nature, faire des trucs.
    En effet sur un de mes classeurs dans une des feuilles, j'ai des objets Acrobat, et je voudrais les récupérer pour obtenir le chemin complet des fichiers PDF associés aux objets.

    Merci par avance pour vos réponse.

    Edit : Si j'oublie de mettre le code original, cela peut être plus dur
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Tu as la collection OleObjects.. sur une feuille excel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    For Each ctrl in  obj_File.sheets("feuil1").OLEObjects
     if ctrl.ProgID = "Forms.TextBox.1" Then
      Wscript.echo ctrl.Name
      WScript.Echo ctrl.ProgID
     next
    Attention il existe 2 sorte de contrôle sous Excel ceux issues de la "barre à outils contrôles" que tu vas retrouver dans cette collection.

    pour ceux de la barre outils formulaire faudrai peu-être voir du côté de la collection shapes.

  3. #3
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Ok merci, j'essaye cela tout à l'heure.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

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

Discussions similaires

  1. Manipulation, d'objet word dans une feuille Excel
    Par lolo-tine dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/03/2013, 16h51
  2. [XL-2003] Liste des objets dessins dans une feuille Excel
    Par benladder dans le forum Conception
    Réponses: 1
    Dernier message: 09/08/2010, 05h47
  3. Récupérer des données d'une feuille Excel
    Par dido555555 dans le forum MATLAB
    Réponses: 1
    Dernier message: 31/08/2009, 16h32
  4. Récupérer le nom d'une feuille excel avec ADO
    Par Kephuro dans le forum Bases de données
    Réponses: 1
    Dernier message: 25/01/2008, 22h11
  5. [VBA EXCEL]comment utiliser les boites a outils control sur une feuille excel
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/02/2007, 20h04

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