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 :

Impression objet EXTRA. [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Duddy
    Homme Profil pro
    Agent de maitrise
    Inscrit en
    Novembre 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations professionnelles :
    Activité : Agent de maitrise
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 257
    Par défaut Impression objet EXTRA.
    Bonjour à tous,

    Je reviens vers vous une nouvelle fois, afin de trouver une aide à une action que je n'arrive pas à solutionner.

    Je vous trace le contexte.

    Je travaille en VBA, en pilotant un objet EXTRA, et je souhaite, pour des raisons de sauvegarde de données, imprimer un écran de l'objet avant modification puis après.

    J'ai ouvert un document WORD afin de recevoir cette image à coller.

    J'ai essayé avec : object.copy mais cela ne fonctionne pas.

    J'ai essayé de trouver comment réaliser un "IMPR ECRAN" afin de contourner mais je n'y suis pas arrivé non plus.

    Savez vous comment avoir une image de mon object afin de le coller dans mon doc.

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    je ne sais pas ce qu'est un objet Extra, mais ton pb peut se rapprocher de celui-ci ? Qui s'applique à un onglet de USF, mais en fait traite la forme active de l'écran au moment de la procédure cf Tuto

    http://www.developpez.net/forums/d81...page-userform/

    cordialement,

    Didier

  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
    Par défaut
    Ainsi que le dit Ormonth, comme tu ne précises pas ce qu'est l'objet nous ne pouvons que supposer...
    pour ma part j'ai supposé un objet placé sur une feuille de calculs (shapes)
    la syntaxe pour un graphe, un dessin, une image ou un contrôle...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Worksheets("Feuil1").Shapes(1).CopyPicture xlScreen, xlBitmap
    A toi d'identifier l'index de la "forme"
    Pour une plage de cellules.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Worksheets("Feuil1").Range("E6:I27").CopyPicture xlScreen, xlBitmap
    Copie la plage de cellules en tant qu'image bitmap
    Bonne journée

  4. #4
    Membre éclairé Avatar de Duddy
    Homme Profil pro
    Agent de maitrise
    Inscrit en
    Novembre 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations professionnelles :
    Activité : Agent de maitrise
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 257
    Par défaut
    Bonjour,

    Merci à vous deux.

    Pour moi, l'objet EXTRA est issu de l'émulateur EXTRA qui est un session déclarée et que l'on "pilote" depuis VBA.

    Voici quelques temps j'avais posé des questions au sujet de l'émulateur EXTRA et vous (le forum) m'aviez bien aidé.

    Je veux juste pour copier l'écran en cours, attention pas le texte, mais la fenêtre entière un peu comme une image.

    Je vais me pencher sur le tuto que Didier a donné, parce que je cherche, sur un autre dossier, comment copier l'image d'un formulaire sur une feuille pour en garder une archive.

    La proposition de Didier me copie, en pas à pas, mon éditeur VBA dans une feuille.

    Je n'arrive pas à copier l'image de l'écran retourné par l'émulateur EXTRA.

    Cet objet est déclaré comme suit:

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
         Set System = CreateObject("EXTRA.System")   ' Gets the system object
         Nbsessions = System.Sessions.Count
     
         If Nbsessions = 0 Then
           Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 3)
     
          'RepSession = "c:\program files\appext\sessions\icones\" & vEDP
           'chemin extra vista
     
           RepSession = "C:\Users\Public\applications\sessions\Icones\" & vEDP
     
            If Dir(RepSession) = "" Then Stop:
     
            Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 3)
           'ReturnValue = Shell("c:\program files\e!pc\extra.exe " + RepSession, 0)
           'chemin extra vista
           ReturnValue = Shell("C:\Program Files\Attachmate\EXTRA!\extra.exe " + RepSession, 0)
           Set Sess0 = Nothing
           Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 3)
        '            Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 3)
        '            Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 3)
     
         End If
     
           Set System = CreateObject("EXTRA.System")   ' Gets the system object
                   If (System Is Nothing) Then
                       MsgBox "Could not create the EXTRA System object.  Stopping macro playback."
                       Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 3)
                   End If
     
            Set Sessions = System.Sessions
                   If (Sessions Is Nothing) Then
                       MsgBox "Could not create the Sessions collection object.  Stopping macro playback."
                       Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 3)
                   End If
         '--------------------------------------------------------------------------------
     
         ' Set the default wait timeout value
         g_HostSettleTime = 200    ' milliseconds
     
         OldSystemTimeout& = System.TimeoutValue
                   If (g_HostSettleTime > OldSystemTimeout) Then
                       System.TimeoutValue = g_HostSettleTime
                   End If
     
         ' Get the necessary Session Object
         Set Sess0 = System.ActiveSession
     
         If (Sess0 Is Nothing) Then
             MsgBox "Could not create the Session object.  Stopping macro playback."
             Stop
         End If
     
         If Not Sess0.Visible Then Sess0.Visible = True
    Comme dans l'éditeur VBA, aucune propriétés de l'objet ne s'affiche automatiquement et que je ne sais pas où aller les chercher, je piétines un peu.

    Pour la proposition, de Ouksl'nor, une erreur 438 m'est renvoyée, la propriété n'est pas connue de l'objet.

    Merci d'avance

  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
    Par défaut
    Pour la copie d'écran je n'ai pas de solution. Ce que je sais est que Sendkeys ne fonctionne pas avec la touche Impr écran.
    As-tu essayé manuellement de faire ce que tu veux faire ? Parce que si ça marche et selon ce que tu veux faire de l'image tu aurais peut-être une solution.
    Pour ça il faudrait que l'instance soit visible. Déjà, teste ça et dis ce qu'il en est.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
         Set System = CreateObject("EXTRA.System")   ' Gets the system object
         System.visible = true
    A+

  6. #6
    Membre éclairé Avatar de Duddy
    Homme Profil pro
    Agent de maitrise
    Inscrit en
    Novembre 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations professionnelles :
    Activité : Agent de maitrise
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 257
    Par défaut
    Bonsoir Ouskel'nor,

    Je me sers, en général, de la combinaison des touches "ALT+IMP ECRAN" qui permet de copier manuellement, l'écran actif.

    De plus, j'utilise un utilitaire qui se nomme "Printkey 2000" qui permet, sous l'action des 2 touches pré-citées de réaliser, après ouverture de l'utilitaire, une copie de l'objet actif ou des modifications de cette image.

    Cet après-midi, en pas à pas, j'ai testé diverses méthodes pour activer le session EXTRA afin quelle prenne le FOCUS (là je ne sais pas si le terme est adéquat) mais avec vos méthodes, je ne copie que l'éditeur VBA.

    Peux-être devrais-je tester en direct?

    Merci tout de même des tes réponses, mais c'est vrai que cela me rendrait fort service de trouver une solution afin de me permettre de conserver la mémoire d'une correction avec la photo "AVANT" puis celle "APRES".

    J'avais pensé, voici quelque temps, à réaliser une copie d'un formulaire d'une de mes applis afin d'éviter d'imprimer et pour en garder la mémoire dans le fichier de données issu de mon traitement, mais devant mon échec j'ai laissé tombé. La solution de Didier va me permettre de pouvoir, en testant, la réaliser.

    A mon avis, il ne faudra pas réaliser de test en pas à pas mais en live.

    Aurais-tu un lien qui me permette de connaître et de comprendre toutes les propriétés d'EXCEL. Je sais elles sont dans l'éditeur VBA, mais il n'y a pas beaucoup d'explications, je recherche surtout l'explication de texte.

    Merci d'avance.

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

Discussions similaires

  1. Impression objet TBarCode
    Par NoobyQ dans le forum Access
    Réponses: 3
    Dernier message: 24/04/2013, 09h56
  2. Impression objet VB / VBA
    Par neoboy dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 15/04/2010, 22h28
  3. superposition d'objet et impression
    Par chris45 dans le forum Access
    Réponses: 4
    Dernier message: 05/03/2007, 21h13
  4. Réponses: 1
    Dernier message: 28/09/2006, 17h35
  5. [VB6] Impression du contenu de l'objet WebBrowser
    Par Tyrael62 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 19/05/2006, 12h10

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