IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Images importées avec Macro ne s'affichent pas dans Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2023
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 24
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2023
    Messages : 1
    Par défaut Images importées avec Macro ne s'affichent pas dans Excel
    bonjour a tous

    en premier lieu je tiens a m'excuser car je suis complètement novice en macro
    et votre mission si vous l'acceptez ne sera pas de trouver une solution a mon problème, pour vous du gâteau mais de réussir a me la faire appliquer

    il s'agit donc d'une macro pour insérer des images via un chemin d’accès (faite par quelqu'un d'autre que moi ) et cela fonctionne bien
    mais lorsque j'envoie le fichier a une tierce personne, l'image est remplacée par une croix rouge

    j'ai lu que l'on pouvait fixer une image

    vu sur un forum" il faut définir le paramètre linktofile sur msofalse et le paramètre savewithdocument sur msotrue pour que l'image reste liée au fichier (et donc devienne indépendante de son chemin d'accès)."

    sauf que je ne sais pas comment faire

    Sub LinkToImage()

    Range("I7").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    ' les lignes du haut selectionnent les cellules contenant la concatenation (1)

    Range("J7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    'colle en tant que valeur les resultats de la formule concatennee (2)

    Range("J7").Select
    ' selectionne les cellules collees (2) en tant que valeur

    Range(Selection, Selection.End(xlDown)).Select


    For Each cel In Selection
    cel.Offset(0, -9).Select
    cel.Offset(0, -9).RowHeight = 100
    cel.Offset(0, -9).ColumnWidth = 40
    'ajuste la taille des cellules ou seront collees les photos



    Set image = ActiveSheet.Pictures.Insert(cel.Value)

    With image
    .ShapeRange.LockAspectRatio = msoTrue
    .Width = cel.Offset(0, -9).Width
    .Height = cel.Offset(0, -9).Height
    .Left = cel.Offset(0, -9).Left
    .Top = cel.Offset(0, -9).Top
    '-9 correspond au decalage de l'image ( ici en colonne 1)par rapport au chemin d acces ici en colonne 10 (ramene a 9)


    End With

    Next cel

    End Sub


    merci d'avance a l’âme charitable qui prendra le temps de me répondre

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 446
    Par défaut
    Bonjour,


    Pour disposer de la propriété LinkToFile, il faut utiliser l'instruction Shapes.AddPicture() plutôt que l'instruction Pictures.Insert(). Sans doute quelque chose de ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Option Explicit
     
    Sub LinkToImage()
        Dim cel As Range
        Range("I7").Select
        Range(Selection, Selection.End(xlDown)).Copy
        ' les lignes du haut selectionnent les cellules contenant la concatenation (1)
        Range("J7").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        'colle en tant que valeur les resultats de la formule concatennee (2)
        Range("J7").Select
        ' selectionne les cellules collees (2) en tant que valeur
        Range(Selection, Selection.End(xlDown)).Select
        For Each cel In Selection
            cel.Offset(0, -9).Select
            cel.Offset(0, -9).RowHeight = 100
            cel.Offset(0, -9).ColumnWidth = 40
            'ajuste la taille des cellules ou seront collees les photos
            ActiveSheet.Shapes.AddPicture _
                Filename:=cel.Value, _
                LinkToFile:=msoFalse, _
                SaveWithDocument:=msoTrue, _
                Width:=cel.Offset(0, -9).Width, _
                Height:=cel.Offset(0, -9).Height, _
                Left:=cel.Offset(0, -9).Left, _
                Top:=cel.Offset(0, -9).Top
                '-9 correspond au decalage de l'image (ici en colonne 1)par rapport au chemin d acces ici en colonne 10 (ramene a 9)
            ActiveSheet.Shapes(ActiveSheet.Shapes.Count).LockAspectRatio = msoTrue
        Next cel
    End Sub
    Cordialement.

Discussions similaires

  1. L'image de ma map ne s'affiche pas dans WordPress
    Par jncoffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/10/2014, 15h20
  2. Réponses: 4
    Dernier message: 11/01/2010, 15h46
  3. L'image d'arrière-plan ne s'affiche pas dans IE7
    Par zonob dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 15/06/2007, 10h05
  4. Les images ne s'affichent pas dans mes JSP
    Par casho dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 16/09/2006, 21h01
  5. aperçu d image avec input type file marche pas dans ffx
    Par siddh dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/11/2005, 10h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo