XL 2016 VBA : Supprimer le caractère "?" qui encadre la propriété "Dimensions" d'un fichier image

  • Initiateur de la discussion Initiateur de la discussion crocrocro
  • Date de début Date de début

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 !

crocrocro

XLDnaute Impliqué
Bonjour,
dans mon code, après avoir récupéré la propriété "Dimensions d'un fichier image", je veux éliminer le caractère "?" qui encadre la propriété.
La fonction Replace ne le fait pas.
Je me suis dit que le caractère "?" que l'on visualise, en debug par exemple ne l'est pas vraiment : Apparemment si, le code ascii (63) est bien celui du point d'interrogation.
Peut-être que "?" est interprété comme le caractère joker : non, le Replace avec la valeur 'en dur' de la propriété est opérationnel.
Je dois faire une erreur quelque part, mais je ne vois pas où. Si quelqu'un a une idée ...
Merci d'avance
Quelques précisions :
Sans avoir tenté le Replace, si j'affiche la propriété "Dimensions dans une cellule, il n'y a pas les "?", ce qui me fait tout de même penser à un caractère spécial (mais contredit par le test avec la fonction Asc.
Je ne souhaite pas (le code étant utilisé pour toutes les propriétés des fichiers) faire un code spécifique à la propriété en éliminant ici le 1er et le dernier caractère par la fonction Mid.
Voir le code ci-dessous
VB:
Sub Test()
Dim ValProp As String
Dim objShell As Object
Dim objFolder As Object
Dim strFileName As Object
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.Namespace(ThisWorkbook.Path)
    Set strFileName = objFolder.Items.Item(CStr("Image1.jpeg"))  ' -> "Image1.jpeg" est un fichier sur le même répertoire que le classeur
    ValProp = objFolder.GetDetailsOf(strFileName, 31)
    ValProp = CStr(objFolder.GetDetailsOf(strFileName, 31))
    ValProp = Replace(ValProp, "?", "")
    '''ValProp = Application.Substitute(ValProp, "?", "")
   ''' ValProp = Application.WorksheetFunction.Substitute(ValProp, "?", "")
    MsgBox "ValProp : " & ValProp & " -> " & Replace(ValProp, "?", "") & vbCrLf _
            & "En dur : ?3000 x 2000?  -> " & Replace("?3000 x 2000?", "?", "") & vbCrLf _
            & "Code Ascii de 1er caractère de ValProp (" & ValProp & ") : " & Asc(Left(ValProp, 1)) & vbCrLf _
            & "Code Ascii de ? : " & Asc("?")
End Sub
 
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

Discussions similaires

Retour