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 :

Résultat copie d'image dans une mauvaise cellule [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 291
    Par défaut Résultat copie d'image dans une mauvaise cellule
    Bonjour,

    dans ma macro suivante :
    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
    39
    40
     
    Sub Macro2()
     
    Dim Delta As Integer
    Dim i As Integer
    Dim s As Variant
    Dim t As Variant
    Application.ScreenUpdating = False
    Delta = 6
    Set catalogue = Workbooks("ES-Catalogue.xlsm").Sheets("Param Services")    ' Feuille du Catalogue contenant les images
     
    For i = 2 To 2
     
    Range("B" & Delta) = catalogue.Range("A" & i).Value
    Range("M" & Delta + 1) = catalogue.Range("B" & i).Value
    Range("Q" & Delta + 2) = catalogue.Range("E" & i).Value
     
    Workbooks("ES-Catalogue.xlsm").Activate
    Sheets("Param Services").Range("D" & i).Select
         For Each shp In ActiveSheet.Shapes
            If shp.Top = Workbooks("ES-Catalogue.xlsm").Sheets("Param Services").Range("D" & i).Top Then
            Selection.Copy
     
    Workbooks("ES-Edition du Catalogue des Services.xlsm").Activate
    Sheets("Edition Services").Range("B" & Delta + 2).Select
    ' Suppression de l'image résiduelle
             For Each s In ActiveSheet.Shapes
                 If Not Intersect(s.TopLeftCell, ActiveCell) Is Nothing Then s.Delete
             Next s
    ' Copie de la nouvelle image à la bonne taille
    ActiveSheet.Paste
    'Selection.ShapeRange.ScaleHeight 0.4693333333, msoFalse, msoScaleFromTopLeft
            End If
         Next
     
    Delta = Delta + 5
    Next i
     
    Application.ScreenUpdating = True
    End Sub
    l'image sélectionnée en ligne 19 ("D" & i) se trouve visible en ("A" & Delta) au lieu attendue en ("B" & Delta) (lignes 25 et 31)

    Avez-vous une explication ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Bonjour,

    Essaye de remplacer activesheet.paste par Sheets("Edition Services").Range("B" & Delta + 2).paste
    edit:
    C'est du bricolage, mais tu pourrais aussi insérer une cellule vide en ("A" & delta) avec décalage a droite, pour la remettre en B

  3. #3
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,
    Juste une question, dans les 2 lignes suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            If shp.Top = Workbooks("ES-Catalogue.xlsm").Sheets("Param Services").Range("D" & i).Top Then
            Selection.Copy
    Qu'est-ce qui est sélectionné?

    Pour ma part j'aurais écris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                If shp.Top = Workbooks("ES-Catalogue.xlsm").Sheets("Param Services").Range("D" & i).Top Then
                    ActiveSheet.Shapes(shp.Name).Copy
    mais peut-être que je me trompe.
    Cordialement

  4. #4
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 291
    Par défaut
    Bonjour,

    oui tu as raison avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ActiveSheet.Shapes(shp.Name).Copy
    l'image est ensuite copiée au bon endroit

    merci

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

Discussions similaires

  1. [XL-2007] Copie d'image dans une cellule vers une cellule d'une autre feuille
    Par natsamfa dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/02/2017, 21h27
  2. GridView plusieurs image dans une même cellules
    Par ElSpopo dans le forum ASP.NET
    Réponses: 1
    Dernier message: 03/10/2013, 11h41
  3. [XL-2007] afficher une image dans une cellule en fonction d'un résultat
    Par elsabio dans le forum Excel
    Réponses: 3
    Dernier message: 19/04/2010, 22h07
  4. pbl image dans une cellule
    Par UNi[FR] dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 04/08/2006, 12h54
  5. Comment insérer une image dans une cellule d'un TDrawGrid ?
    Par kanux dans le forum Composants VCL
    Réponses: 4
    Dernier message: 15/01/2005, 18h58

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