XL 2016 Insertion image url persistante

SimonDavid

XLDnaute Nouveau
Bonjour à tous,

j'ai fait une macro pour télécharger des images web et les insérer dans une colonne ainsi que d'autres infos utiles.
la macro créé un nouveau fichier et est enregistré sans toute la cuisine de macro.

Jusque la tous va bien.

Le soucis est que dès que l'on réouvre le fichier xlsx il recharge toutes les images, ce qui ne serait pas si problématique si il n'y avait pas autant de ligne.

Mes utilisateurs font des excel allant jausqu'a 800 lignes et autant de photos à recharger

Je n'arrive pas à trouver de solution.

Merci d'avance
 

fanch55

XLDnaute Barbatruc
Vous avez 747 images dans le classeur fourni .

J'ai 32go de mémoire ( config riche ... 😁 ), les images sont chargées en 8sd .

J'ai compressé les images du classeur et si le classeur a "maigri" en ko,
le chargement des images est quasi identique ...

J'ai bien peur qu'on ne puisse pas faire grand chose pour qu'Excel charge plus vite les images .... :oops:
Peut-être en dispatchant les images sur plusieurs feuilles dans des tableaux par catégorie par exemple
 

DaDaUP

XLDnaute Nouveau
Merci pour la réponse.
La problematique n'est vraiment le poids du document.

Elle vient plutot de la liaison internet de la photo, si je coupe internet, je n'ai plus de photo
Je me demandais si il était possible d'intégrer la photo en cassant le lien internet à l'enregistrement par exemple ou via une option excel.
Et si elle pouvait etre intégré dans une macro.
Ainsi l'utilisateur aurait la possibilité de soit garder le doc tel quel ou de le rendre complet même hors connexion.

Je pense par contre que le document serait plus lourd mais l'ouverture devrait etre plus rapide normalement car on serait plus dépendant d'une bonne liaison internet.
 

patricktoulon

XLDnaute Barbatruc
Bonjour
quand on a trop d'image on charge pas les image dans la feuille mais dans un dossier qui les recharge a partir du dossier a l'ouverture
donc ta macro web doit télécharger les image dans un dossier et les placer dans la feuille
a la réouverture test si existence dans le dossier charge ou télécharge si non existante dans le dossier

chez moi le fichier tourne en boucle a l'ouverture 32 giga de ram
pas bon du tout ton principe

La problematique n'est vraiment le poids du document.

Elle vient plutot de la liaison internet de la photo, si je coupe internet, je n'ai plus de photo
heu...non!!! les deux
 
Dernière édition:

fanch55

XLDnaute Barbatruc
Bonjour à tous,
un code pour transformer les WebImages en LocalImages .
(à placer dans le code de la feuille concernée)

Avantage :
  • pas besoin d'être en ligne pour obtenir les images
  • non dépendant de l'existence du fichier sur le net
  • rapide à charger
Inconvénient :
  • la taille du fichier peut tripler selon le nombre d'images .
  • le compress des images est fortement préconisé
VB:
Sub Img_Jpg()
Dim Img As Shape
Application.ScreenUpdating = False
Application.DisplayAlerts = False

    On Error GoTo Sub_Error
    For Each Img In Me.Shapes
        If Img.Type = msoLinkedPicture Then
            nom = Img.Name
            Img.Copy
            Img.TopLeftCell.Select
            Me.PasteSpecial Format:="Image (JPEG)"
            Selection.Left = Img.Left
            Selection.Top = Img.Top
            Img.Delete
            Selection.Name = nom
        End If
    Next
   
Sub_Error:
    If Err <> 0 Then
        MsgBox Err.Description
        Stop
        Resume Next
    End If
Application.ScreenUpdating = True
    MsgBox "Fin de la conversion"
    Application.CommandBars.ExecuteMso "PicturesCompress"
End Sub
 
Dernière édition:

SimonDavid

XLDnaute Nouveau
Merci pour les réponses !!
chez moi le fichier tourne en boucle a l'ouverture 32 giga de ram
pas bon du tout ton principe
Effectivement il faut que je revois ma copie.
Bonjour à tous,
un code pour transformer les WebImages en LocalImages .
Je vais essayer cette solution me semble la meilleur.
je ne vais pas m'y remettre avant la semaine prochaine mais je vous tiendrais au courant de l'évolution et résultat.
 

SimonDavid

XLDnaute Nouveau
Je viens de tester, ça marche super.:D
Je ne connaissais pas les mots clés et Me en l’occurrence
Mon code est dans un module ce qui complique (ou pas d'ailleurs) et je ne sais pas encore comment relier tout ça.
J'ai un bouton pour déclencher ma macro peut-être qu'en ajoutant l' Img_Jpg() va suffire.
Il faut juste que l'ordre des actions soient respectées, d'abord je télécharge et ensuite je compresse.
 

fanch55

XLDnaute Barbatruc
Si vous le mettez dans un module,
remplacez Me. par ActiveSheet. ou WorkSheets(ma_feuille).

Si vous le mettez dans la feuille, le Me est précis et concerne toujours la feuille où le code réside.
Si vous dupliquez la feuille, le code l'est aussi et ne s'appliquera qu'à la nouvelle .