Icône de la ressource

Complement Shapes Exporter Commander V2.0

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Salut,
je viens d'essayer le complément V2 sur mon Excel 2021 64 bits , j'ai cette erreur :
ErreurExportEMF.png


sur un export en EMF sur un graphique chart lignes (diagramme) . L'erreur est sur cette ligne :
VB:
               Obj.CopyPicture Format:=xlBitmap

Nullosse
 
ca y est j'ai compris en fait ca arrive quant la selection est un chart
VB:
Public Function Capture(Obj, Optional Lpath As String = "", Optional ForRibbon As Boolean = False)
    Dim ipic As IPicture, hCopy As LongPtr, tIID As GUID, PictStructure As PictDesc, x#, ret As LongPtr, Avail&, WinOrScreen&
    Call OpenClipboard(0)
  '==============================
   Application.ScreenUpdating = False
   Cells(1, 1).Select
  '============================'
 
Salut,
Le code de Capture est très fragile pour toutes les versions d'Excel. Dans les versions récentes d’Excel (Office 2019–2025), plusieurs points de ce code cessent de fonctionner correctement : gestion du presse‑papiers, API Windows, délais trop courts, et surtout la copie des graphiques Excel qui ne se comporte plus comme avant.
Nullosse
 
?????????????????
je l'ai tester sur 365 entreprise la version excel la plus chiante par définition et elle marche bien sur 2013 32 et 2016 64 aussi
les delay me semble t il passe par IsClipboardFormatAvailable
avant de capturer on vide et on attend que le clip soit bien vide return 0
VB:
 EmptyClipboard
    CloseClipboard
    ActiveWindow.VisibleRange.Cells(1).Select
    Avail = 1
    Do While Avail > 0
        Avail = IsClipboardFormatAvailable(&H2)
           DoEvents
    Loop

apres le copypicture 2 boucles d'attentes

une sur le isavailable return 1 et l'autre sur le getclipboarddata return du handle bitmap
Code:
Do While Avail = 0
        Avail = IsClipboardFormatAvailable(&H2)
           DoEvents
    Loop
    OpenClipboard 0&
    x = Timer
    Do While (hCopy = 0)
        hCopy = CopyImage(GetClipboardData(&H2), 0, 0, 0, &H4)
        If Timer - x > 1 Then Exit Do
    Loop
    CloseClipboard
d'ailleurs la 2d est inutile a partir du moment ou isavailablformate est sorti de la boucle 1
donc je vois pas ou ca peut ^tre short le delay
ces attentes contrairement a un wait xxx ne sont pas harbitraires elle s'appuie sur la presence du bitmap dans le clip
tes soucis c'est ailleurs qu'il faut chercher
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour