[VBA] Membre de méthode ou de données introuvable

Ruket

XLDnaute Nouveau
Bonjour à tous,

Je suis quelque peu gêné de soumettre un poste avec cet intitulé, car c'est un problème qui a été rencontré par des milliers de personnes avant moi. Seulement, chaque réponse à ce problème est très spécifique, et malgré une recherche approfondie, je n'ai pas trouvé de quoi me débloquer.

Mon problème :
J'ai un module qui appelle un UserForm (nommé "Selection"). En fonction du résultat de ce USF, je rentre (ou non) dans un If, qui a pour but de copier 2 parties du classeur, et de les coller en tant qu'image sur une autre feuille en les redimensionnant légèrement.

Ce code fonctionnait a merveille (il fonctionne d'ailleurs toujours sur une ancienne version de mon doc, mais j'ai beaucoup avancé depuis). Seulement, j'ai eu à renommer mes modules et mes USF's. Une fois renommés, sans aucune autre modification, Excel m'affiche un message d'erreur lors de l’exécution de ce module.

Message : Membre de méthode ou de données introuvable
Élément surligné : Selection.ShapeRange.ScaleWidth 0.9613633076, msoFalse, msoScaleFromTopLeft
Note : si je mets en commentaire cette ligne, la macro s’exécute très bien (sans redimensionnement de l'image bien entendu).

Voici le code:

Code:
Sub Calculs()

Sheets("xxxxxxx").Activate
Application.ScreenUpdating = False
Selection.Show

If Sheets("DataUF2lots").Range("Z2") = "NC" Then
    Sheets("Resultats").Range("A161:I179").Select
    Selection.Copy
    Sheets("Rapport NC").Select
    Range("C7").Select
    ActiveSheet.Pictures.Paste.Select
    ActiveSheet.Shapes.Range(Array("Picture 2")).Select
    Selection.ShapeRange.ScaleWidth 0.9613633076, msoFalse, msoScaleFromTopLeft
 
    Sheets("Gamme SEM46 SYBR").Activate
    Sheets("Gamme SEM46 SYBR").Range("A1:Q33").Select
    Selection.Copy
    Sheets("Rapport NC").Select
    Range("C28").Select
    ActiveSheet.Pictures.Paste.Select
    ActiveSheet.Shapes.Range(Array("Picture 3")).Select
    Selection.ShapeRange.ScaleHeight 0.7581287252, msoFalse, msoScaleFromTopLeft

Else
    NCvisuelles.Show
    MenuResultats.Show
End If

Application.ScreenUpdating = True
End Sub

En espérant n'exaspérer personne avec une question qu'il aurait déjà vu 1000 fois.
Je remercie par avance, quiconque essaiera de m'aider sur ce problème.

Ruket.
 

mromain

XLDnaute Barbatruc
Re : [VBA] Membre de méthode ou de données introuvable

Bonjour Ruket et bienvenue sur le forum !
Bonjour le forum :)

Ci-dessous un essai pour la première image (à dupliquer et adapter pour la seconde) :
VB:
Dim zoneCopy As Range, zonePaste As Range, shapeResult As Shape

    'définir la zone de copie et où on va coller l'image
     Set zoneCopy = ThisWorkbook.Sheets("Resultats").Range("A161:I179")
    Set zonePaste = ThisWorkbook.Sheets("Rapport NC").Range("C7")
    
    'copier / coller l'image
     zoneCopy.CopyPicture
    zonePaste.PasteSpecial
    
    'récupérer l'image
     Set shapeResult = zonePaste.Parent.Shapes(zonePaste.Parent.Shapes.Count)
    
    'redimentionner l'image
     shapeResult.ScaleHeight 0.9613633076, msoFalse, msoScaleFromTopLeft

A+
Miki
 

Ruket

XLDnaute Nouveau
Re : [VBA] Membre de méthode ou de données introuvable

Désolé pour le retard.

Merci pour ton accueil et ta réponse Miki.

J'ai testé ton code. Il fonctionne très bien et est bien plus "clair" que mon code créé via l'enregistrement d'une macro.

Mon problème réapparaissait finalement dans d'autres bout de mon code. Je n'ai pas trouvé réellement la cause de ce dysfonctionnement. De peur de me jeter par la fenêtre, j'ai repris mon travail à partir d'une sauvegarde.

Mais j'y ai intégré ton bout de code.

Merci encore.
 

Discussions similaires

Statistiques des forums

Discussions
313 240
Messages
2 096 475
Membres
106 637
dernier inscrit
jpdupont