Icône de la ressource

Complement Shapes Exporter Commander 5.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
 
Donc on a essayé en long ,en longPtr rien y fait
Chez moi ca fonctionne sur 2013 32 bit 2016 64 et je l'ai testé au travail sur 2021
Conclusion c'est vraiment chez toi que ça divague

Et là je ne peux plus rien pour toi,désolé
Salut,
finalement, j'avais la même de El Chorizo du post #10 , et pourtant je suis en Excel 2021 64 bits windows 11. Si tu n'as pas d'erreur à ton boulot avec un Excel 2021 patricktoulon, je soupçonne qu'il soit en 32 bits. Le problème vient de cette ligne :
VB:
    ' Convertir le GUID IPicture depuis la chaîne
    ret = IIDFromString(StrConv(IPictureIID, vbUnicode), tIID)
ret est défini en Long et IIDFromString :
Code:
Declare PtrSafe Function IIDFromString Lib "ole32" (ByVal lpsz As String, ByRef lpiid As GUID) As LongPtr
avec du 32 bits ça passe mais pas avec du 64 bits (pas apparemment avec ton excel 2016 64 bits). On mettant :
Code:
Dim ret As LongPtr
je n'ai plus d'erreur et le complément fonctionne.
L'erreur que j'avais signalée dans mes messages précédents était bien dû au fait que j'avais sélectionné le chart avant d'utiliser le complément.
Nullosse
 
a ben oui bien sur pourquoi je n'y ai pas pensé, je l'avais corrigé déjà dans une autre mais pas dans la insquare
Bravo pour ta perspicacité
ravi aussi que çà fonctionne
je vais changer ça de suite
Merci @nullosse
au fait pour deselecter le chart met plutot ceci ca evite le scroll automatique si tu n'es pas en top 0 pour la ligne 1
ActiveWindow.VisibleRange.Cells(1).Select
ça sélectionne la première cellule a gauche de la grille visible
 
Dernière édition:
- 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