Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
XL 2016VBA - Récupérer le Caption d'un "Embbeded Object"
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 !
Pas trouvé de solution sur Internet. Dans ce classeur je voudrais récupérer le texte "Bonjour.txt" qui est le Caption (je suppose) de l' "Embbeded Object". Merci par avance.
Sub testb()
Dim x As Date
OpenClipboard 0&: EmptyClipboard: CloseClipboard
On Error Resume Next
ActiveSheet.OLEObjects(1).Copy
On Error GoTo 0
dossier = Environ("userprofile") & "\AppData\Local\Temp"
x = 0
DoEvents
fic = Dir(dossier & "\*.txt")
Do While fic <> ""
y = FileDateTime(dossier & "\" & fic)
If CDate(y) > x Then x = CDate(y): f = fic
'Debug.Print x
fic = Dir
Loop
MsgBox dossier & "\" & f
End Sub
j'ai bien une autre idée pour faire ca il faudra que je la teste
a savoir mettre carrément ton exe dans le zip
et a l'ouvertir du fichier
savecopyas blablabla.zip
sortir le exe sur le bureau
s'en servir
a la fermeture kill fichier
Ton code ne donne rien chez moi car dans mon répertoire C:\Users\Utilisateur\AppData\Local\Temp je n'ai aucun fichier texte.
Le fichier temporaire issu du OLEObject.Copy est dans C:\Users\Utilisateur\AppData\Local\Temp\{74E4ACF7-A21C-4C60-BCEB-C3697F8B799F}\{BC602ABA-472E-400B-A940-30848BA0D292}\Bonjour.txt
Et merci Everything sans lequel je ne pourrais même pas envisager de faire la moindre chose.
A noter que le sous-répertoire change donc il faut absolument le trouver par le Clipboard ou alors parcourir tous les sous-répertoires de C:\Users\Utilisateur\AppData\Local\Temp. Bof !
ok donc de ma version a ta version ca ne va pas au même endroit
chez moi la racine c'est directement "Temp"
donc on a déjà un soucis avec ça pour ton concept
vraiment bizarre ton truc
regarde chez moi
des fois oui des fois non
ce qui est etonnant c'est que ta version a des ratés a l'ouverture du fichier
et ma version c'est les lancement suivant la premiere apres l'ouverture
bien trop bancale tout ça
cela dit on apprend des choses
j'ai bien une autre idée pour faire ca il faudra que je la teste
a savoir mettre carrément ton exe dans le zip
et a l'ouvertir du fichier
savecopyas blablabla.zip
sortir le exe sur le bureau
s'en servir
a la fermeture kill fichier
Tu peux faire ça mais pour moi ce n'est pas l'objectif d'avoir un classeur qui fait la conversion PDF to Text.
D'ailleurs avec un classeur on peut très bien conserver le pdftotext.exe dans un Embbeded Object sans passer par un ZIP.
Le classeur qu'on fournit n'est que "l'enveloppe" de démonstration d'une fonction (GETPDFText) qui fait la conversion. Cette fonction doit pouvoir être utilisée dans n'importe quel projet VBA et donc être auto-suffisante. D'où l'idée qu'elle ait le path du pdftotext.exe en paramètre conditionnel.
Le classeur "enveloppe" de démonstration peut utiliser un Embbeded Object pour le pdftotext.exe.
Et il doit contenir les consignes au cas où l'utilisateur voudrait utiliser pdftotext.exe pour la conversion en copiant l'Embbeded Object quelque part (on peut même fournir une petite macro pour ça) et lui indiquer de passer le path en argument à la fonction (GETPDFText).
La fonction restant opérationnelle sans ce path puisqu'utilisant un Web Browser par défaut.
Oui alors ça c'est incompréhensible.
J'ai fait une boucle de 1 à 2 pour récupérer la 1ère fois. Rien de déterministe.
Ça ne suffit visiblement pas chez toi.
Essaie d'augmenter le nombre de boucles.
Le classeur "enveloppe" de démonstration peut utiliser un Embbeded Object pour le pdftotext.exe.
Et il doit contenir les consignes au cas où l'utilisateur voudrait utiliser pdftotext.exe pour la conversion en copiant l'Embbeded Object quelque part (on peut même fournir une petite macro pour ça) et lui indiquer de passer le path en argument à la fonction (GETPDFText).
ben c'est bien là le problème
c'est bancale avec nos windows+excel d'aujourd'hui on le constate depuis tout à l'heure
en tout cas en 32 ya trop de raté
Oui alors ça c'est incompréhensible.
J'ai fait une boucle de 1 à 2 pour récupérer la 1ère fois.
Ça ne suffit visiblement pas chez toi.
Essaie d'augmenter le nombre de boucles.
ben non justement chez moi la premiere lancement après l'ouverture du classeur marche à chaque fois
si je relance j'ai bien un KFUFGT1FG6BLABLABLAVLT5G6V1.TMP qui ce crée mais plus le bonjour.txt
alors que chez toi c'est l'inverses
Bonjour,
Alors comme d'hab je ne sais pas comment tu fais, quel fichier tu utilises ou ce qu'il y a de spécial chez toi car sur un autre forum j'ai demandé un test aux possesseurs de Windows 32 bits et ils ont des résultats positifs avec le fichier ci-joint.
Peu importe, ce n'est pas grave car j'ai revu mes ambitions à la baisse pour ne pas tout mélanger.
J'ai créé un autre utilitaire de conversion qui propose l'installation de pdftotext.exe directement depuis Excel.
Une fois installé, la fonction GetPDFText autonome permet la conversion du PDF en Texte (soit en fichier soit en variable String) en utilisant le pdftotext.exe installé.
Le fichier fait 1105 Ko à cause des Embbeded Objects et ne peut donc être placé ici. Vraiment trop faible cette limite de 1000 Ko ! Il est téléchargeable ici -> https://www.cjoint.com/c/MKDkVDKiTx5
Je vais en faire une ressource distincte.
re
comment je fait quoi?
je n'ai pas windows32 bits j'ai win 64 et office 32
c'est pas la même chose
de toute facon tu l'a vu dans la capture animée je racconte pas de sautises
après quelque recherche il semblerait que vous travaillez avec des versions office click and run tandis que moi une version MSI c'est a dire que j'ai le cdrom d'instalation
elle ne fonctionnent pas tout à fait pareil
d'autant plus que si vous êtes sur 365 il y a de forte chance que vous ayez activé le multi clipboard
J'avais 5 méthodes différentes pour attendre la fin d'un processus lancé par Excel mais finalement, pour un processus court, le plus simple c'est de faire ça:
VB:
Private Declare PtrSafe Function GetForegroundWindow Lib "user32" () As LongPtr
Shell Processus etc...
'Wait until the process is up and running
Do While 1
If Not GetForegroundWindow = Application.hwnd Then Exit Do
DoEvents
Loop
'Wait until Excel is back
Do While 1
If GetForegroundWindow = Application.hwnd Then Exit Do
DoEvents
Loop
avant de conclure que c'est bon
et pourtant dieu sait que j'aimerais te dire OK c'est bon
je souhaiterais que tu regarde ce que te raporte ta methode chrome ou autre navigateur et ta methode pdftoexe
je t'en donne la capture
ici a gauche ma méthode fullclipboard a droite ta methode pdftotext
les tests ont été réalisés avec ton fichier usermanual de samsumg de 62 mega
pour de la faire courte il manque a peu près 3000 lignes de text par rapport a nos version avec le navigateur
pour info avec ma version fullclip
j'ai 19260 lignes
avec ta version pdftotext.exe j'ai 15222 lignes
après examen des résultats
il manque beaucoup plus de ligne en fait car dans ton résultat il y a beaucoup de lignes vides
et de saut de ligne que je n'ai pas dans mes résultats
je suis désolé d'être ton détracteur dans tes essais mais en même temps ravi si j'apporte un peu ma pierre à l'edifice
sache que depuis aussi longtemps que je me souvienne le pdf a toujours été problèmatique avec excel en terme de recupération
à l'exeption de solutions payantes bien sur
et encore pour en avoir testé quelque une à l'epoque y compris les solutions de kiki69 aucune à ce jour n'a rendu un résultat correcte à 100%
mais plus de 3000 lignes manquantes je pense pas que ce soit un résultat acceptable
cela dit le transport de l'exe est une idée pas nouvelle mais interessante car tu la mené a bien
reste a savoir si tu a la bonne version de pdftotext.exe car il y en eu plusieurs @Kiki69 avait un lien qui nous proposait le pack peu être se rapporocher de lui pour confirmation
et eventuellement le lien vers la version optimale
- 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