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 :

erreur avec img.copy [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2023
    Messages : 2
    Par défaut erreur avec img.copy
    Bonjour, j'ai inséré une image dans mon excel à la case V333. Mon objectif est de faire un programme qui prend cette image et la copie en M333. De plus, le programme doit vérifier si il n'y a pas d'image dans cette case et si c'est le cas, la supprimer. Le soucis c'est que j'ai l'impression que mon excel ne prend pas certaines consignes je ne sais pas pourquoi, j'ai essayé de diférentes manière et j'ai toujours le même message d'erreur : "Erreur d'exécution 91 :Variable objet ou variable de bloc with non définie"
    a la ligne img.copy
    de même si j'esssaie autrement avec cut.

    Comment je peux faire ?

    Voici mon programme :

    Sub DeplacerImage()
    Dim ws As Worksheet
    Dim img As Shape
    Dim foundImage As Boolean

    ' Spécifiez la feuille de calcul
    Set ws = ThisWorkbook.Sheets("Graph")

    ' Recherchez l'image en V333
    foundImage = False
    For Each img In ws.Shapes
    If img.TopLeftCell.Address = "$V$333" Then
    foundImage = True
    Exit For
    End If
    Next img

    ' Supprimez l'image en M333 si elle existe
    For Each img In ws.Shapes
    If img.TopLeftCell.Address = "$M$333" Then
    img.Delete
    Exit For
    End If
    Next img

    ' Si une image est trouvée en V333, copiez et collez-la en M333
    If foundImage Then
    img.Copy
    ws.Paste Destination:=ws.Range("M333")
    ' Effacez l'image temporaire du presse-papiers
    Application.CutCopyMode = False
    End If
    End Sub


    Merci à tous !

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonjour, c'est parce que après la sortie de la boucle de test de M333, img est à nothing. Il faut donc ajouter une variable pour conserver la valeur de V333 comme ceci:

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Sub DeplacerImage()
        Dim ws As Worksheet
        Dim img As Shape
        Dim img2 As Shape
        Dim foundImage As Boolean
        Dim i As Integer
     
        ' Spécifiez la feuille de calcul
        Set ws = ThisWorkbook.Sheets("Graph")
     
        ' Réinitialisez la variable img
        Set img = Nothing
     
        ' Recherchez l'image en V333
        foundImage = False
        For i = 1 To ws.Shapes.Count
            If Not ws.Shapes(i) Is Nothing And ws.Shapes(i).TopLeftCell.Address = "$V$333" Then
                foundImage = True
                Set img2 = ws.Shapes(i)
                Exit For
            End If
        Next i
     
        ' Supprimez l'image en M333 si elle existe
        For Each img In ws.Shapes
            If Not img Is Nothing And img.TopLeftCell.Address = "$M$333" Then
                img.Delete
                Exit For
            End If
        Next img
     
        ' Si une image est trouvée en V333, dupliquez-la en M333
        If foundImage Then
            img2.Copy
            ws.Range("M333").Select
            ws.Paste
        End If
    End Sub

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2023
    Messages : 2
    Par défaut
    Merci beaucoup cela fonctionne !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/09/2018, 17h20
  2. Message d'erreur avec copy
    Par cre3000 dans le forum Langage
    Réponses: 6
    Dernier message: 24/05/2008, 16h33
  3. Erreur avec la commande copy
    Par Bba_M dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 14/01/2008, 16h25
  4. Réponses: 4
    Dernier message: 04/12/2003, 08h12
  5. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33

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