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

VBA Access Discussion :

Manipulation d'un Objet OLE Excel ? [À faire]


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 15
    Points : 14
    Points
    14
    Par défaut Manipulation d'un Objet OLE Excel ?
    Bonjour a tous,

    je cherche à insérer dans mon formulaire un objet de type 'Tableau'. L'objet OLE 'Microsoft Office Spreadsheet 10.0' me parait plutot interessant, me je n'arrive pas bien à le piloter. J'ai essayé de définir des objets excel, style 'Range', dans lesquels je place ce qui me semble convenir mais Access ne reconnait pas le type.
    Par exemple, si mon objet se nomme 'xlFeuille' :

    Dim xlPlage as Excel.Range
    Set xlPlage = Me![xlFeuille].Range("A1")
    Ceci génère une icompatibilité de type, comme les objets excel les plus courants.

    Par contre,

    Me![xlFeuille].Range("A1").Value = "test"
    marche, tout comme

    Me![xlFeuille].Worksheets(2).Range("A1").Value = "test"
    J'arrive a utiliser certaines méthodes des objets, mais impossible par exemple d'utiliser un
    With Font

    J'ai cherché dans les FAQs et sur le forum, pt etre mal, avez vous des pistes ou des pages quelconques pour m'aider ?

    Merci d'avance

    Nico

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 34
    Points : 27
    Points
    27
    Par défaut
    regarde dans le post-it code source y'a tout un module concernant excel se n'est peut être pas ce que tu cherche mais ca peut peut-être t'aider ............
    ;-)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    En fait, le problème, c'est que contrairement aux controls habituels ou à une application excel, cette objet possède un menu particulier, et dans sa forme et dans son contenu, afin de régler certaines options.

    Sont-elles manipulables par le code, aussi efficacement que peut l'etre une application excel ? Ou y-a-t-il un autre moyen d'insérer un tableau dans un formulaire et de le controler ?

  4. #4
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Désolé, je ne vais pas répondre à ta question mais je voulais juste dire que la réponse m'intéresse aussi...

  5. #5
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Citation Envoyé par NiKro75
    En fait, le problème, c'est que contrairement aux controls habituels ou à une application excel, cette objet possède un menu particulier, et dans sa forme et dans son contenu, afin de régler certaines options.
    Je viens de jeter un coup d'oeil sur ce contrôle ('Microsoft Office Spreadsheet 10.0)... Il dispose d'une aide spécifique en français et dans la rubrique "Informations de programmation", tous les objets, leurs propriétés et méthodes sont référencés...

    J'ai par exemple pû trouver la propriété Font de l'Objet Range


    Citation Envoyé par NiKro75
    ]Ou y-a-t-il un autre moyen d'insérer un tableau dans un formulaire et de le controler ?
    ça j'en suis quasiement sûr, après tout dépend de tes besoins précis. En tout cas l'objet Office Spreadsheet 10.0 a l'air pas mal du tout...

  6. #6
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut Re: Manipulation d'un Objet OLE Excel ?
    Citation Envoyé par NiKro75
    Dim xlPlage as Excel.Range
    Set xlPlage = Me![xlFeuille].Range("A1")
    Ceci génère une icompatibilité de type, comme les objets excel les plus courants.
    si tu regardes bien, il semblerait que les objets doivent être déclarés comme étant de type Variant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim xlPlage
    Set xlPlage = Me![xlFeuille].Range("A1")
    Pour afficher l'aide : mode création > clic sur le logo Office à gauche (au cas où la barre d'outils serait grisée) > clic sur [?] à droite de la barre d'outils > dans l'onglet Format, clic sur le bouton [?] des commandes générales > c'est bon !

  7. #7
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut Re: Manipulation d'un Objet OLE Excel ?
    Citation Envoyé par FRED.G
    Citation Envoyé par NiKro75
    Dim xlPlage as Excel.Range
    Set xlPlage = Me![xlFeuille].Range("A1")
    Ceci génère une icompatibilité de type, comme les objets excel les plus courants.
    si tu regardes bien, il semblerait que les objets doivent être déclarés comme étant de type Variant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim xlPlage
    Set xlPlage = Me![xlFeuille].Range("A1")
    Tous les objets concernant la Microsoft Office Spreadsheet 10.0 sont référencés dans la bibliothèque OWC10.
    Donc en fait, tu peux naturellement accéder à tous les objets via l'explorateur d'objet et surtout tu peux/dois les déclarer avec leur type exact. Donc pour l'exemple d'un objet Range, le meilleur code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim xlPlage as OWC10.Range
    Set xlPlage = Me![xlFeuille].Range("A1")

  8. #8
    Membre éclairé
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Points : 719
    Points
    719
    Par défaut
    je n'ai peut être pas bien compris le sujet ou la question !!
    tu veux ouvrir une feuille Excel et la manipuler ou tu veux insérer un tableau dans ton formulaire ?

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    FRED.G
    dans la rubrique "Informations de programmation", tous les objets, leurs propriétés et méthodes sont référencés...
    en effet, ca a l'air de bien aider, j'aurais peut etre du chercher un peu mieux (ou plus...)
    Merci en tout cas !


    pour Morsi : c'etait d'inserer un tableau dans le formulaire a l'aide du control "Office Spreadsheet". La question se posait de savoir comment le manipuler par le code, il possede des caractéristiques différentes des applications Excel.

    Ce post m'a l'air [Résolu], mais avant de le marquer comme tel, pensez vous que cet objet soit bien adapté à l'insertion de tableau, ou y-t-il un autre objet/moyen de le faire efficacement ?
    (PS : je ne suis pas sur qu'inserer un sous formulaire en 'Feuille de Donnée' soit une bonne solution)

  10. #10
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Citation Envoyé par NiKro75
    pensez vous que cet objet soit bien adapté à l'insertion de tableau, ou y-t-il un autre objet/moyen de le faire efficacement ?
    (PS : je ne suis pas sur qu'inserer un sous formulaire en 'Feuille de Donnée' soit une bonne solution)
    si tu veux afficher des enregistrements liés à un enregitrement principal alors utilises un sous form.
    Par ex. dans un formulaire "commandes", où chaque enregistrement correspond à une commande, tu peux utiliser un sous-form pour afficher le détails de la commande actuellement affichée (enregistrement en cours du form "Commandes").
    Avec cette méthode tu pouras effectuer des calculs mais ceux-ci devront être placés directement dans la requête source de sous-form... Ainsi les calculs sont les mêmes pour chque ligne (= chaque enregistrement du sous form).
    Par ailleurs, les possibilité de mise en forme des champs(ou cellules) sont limitées (voir: mise en forme conditionnelle).

    Si tu veux effectuer n'importe quels calculs ou appliquer n'importe quelles mise en forme sur n'importe quelle cellules (ou champ) quelle que soit la ligne du tableau, tu dois utiliser une feuille de calcul...
    Laquelle ?
    > si tu as excel, tu peux lier ou incoporer dans ton form, une feuille de calcul excel OU tu peux piloter excel directement grâce à Automation.
    > si tu n'as pas excel, tu dois utiliser un objet Microsoft Office Spreadsheet.
    > Si tu as les deux, ton choix peut être déterminé :
    - par le type de fonctions et objets dont tu as besoin (Spreadsheet est bien mais excel est plus complet)...
    - par le type de sources des données de ta feuille de calcul...

    Enfin si tu veux simplement afficher des données présentées sous la forme d'un tablaux mais qui n'en est pas un, tu peux toujours aligner des TextBox ou autre contrôles en les disposant comme les cellules d'un tableau... A toi de définir ensuite individuellement le contenu de chaque cellule comme tu le souhaites. Idem pour la mise en forme...

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Merci FRED.G, tout ceci est maintenant bien clair !

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

Discussions similaires

  1. VB Manipulation sur l'affichage d'un objet OLE Excel
    Par pabisiakm dans le forum VBA Access
    Réponses: 0
    Dernier message: 05/10/2012, 15h32
  2. [AC-2007] Manipulation objet OLE Excel
    Par Sparfell dans le forum IHM
    Réponses: 8
    Dernier message: 25/07/2012, 10h14
  3. Manipulation d'objet OLE (excel)
    Par koluche dans le forum Access
    Réponses: 0
    Dernier message: 07/04/2011, 09h29
  4. Objet OLE Excel dans Access
    Par tajjorf dans le forum IHM
    Réponses: 0
    Dernier message: 08/06/2010, 14h45
  5. Ecrire des valeurs dans un objet OLE Excel
    Par NewbiePower dans le forum Access
    Réponses: 4
    Dernier message: 08/02/2007, 08h59

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