Problème sur centrage de Shapes

Le
Alex
Bonjour à tous,

Je rencontre un problème sur le centrage d'e shapes dans une cellule,
et m'en explique. Dans une boucle, en fonction du résultat obtenu dans
ma 122ème colonne de mon onglet Base, je copie le shapes de l'onglet
"Smileys" correspondant à la note, et reviens sur l'onglet Base pour
coller le shapes correspondant dans la cellule de la colonne 117,
jusque là aucun souci. Mais je n'arrive pas à centrer le shapes dans
la cellule ou j'ai coller l'image copier, voici ce que j'ai écrit :

nbligne = Range("C2").CurrentRegion.Rows.Count
For i = nbligne To 2 Step -1
If Cells(i, 122).Value < 0 Then

Sheets("Smileys").Select
Sheets("Smileys").Shapes("Image 1").Copy
Sheets("BASE").Select
'ActiveSheet.Unprotect
Sheets("BASE").Cells(i, 117).PasteSpecial

With ActiveSheet.Shapes("Image 1")
.Left = Selection.Left + (Selection.Width - .Width) / 2
.Top = Selection.Top + (Selection.Height - .Height) / 2
.Placement = xlMoveAndSize
End With
End If
Next i

Quelqu'un aurait-il solution pour résoudre ce problème.
Merci par avance de votre aide.
Cordialement.
Alex
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jex
Le #22282041
On 21 juin, 11:26, Alex
Bonjour à tous,

Je rencontre un problème sur le centrage d'e shapes dans une cellule,
et m'en explique. Dans une boucle, en fonction du résultat obtenu dans
ma 122ème colonne de mon onglet Base, je copie le shapes de l'onglet
"Smileys" correspondant à la note, et reviens sur l'onglet Base pour
coller le shapes correspondant dans la cellule de la colonne 117,
jusque là aucun souci. Mais je n'arrive pas à centrer le shapes dans
la cellule ou j'ai coller l'image copier, voici ce que j'ai écrit :

nbligne = Range("C2").CurrentRegion.Rows.Count
For i = nbligne To 2 Step -1
If Cells(i, 122).Value < 0 Then

Sheets("Smileys").Select
Sheets("Smileys").Shapes("Image 1").Copy
Sheets("BASE").Select
'ActiveSheet.Unprotect
Sheets("BASE").Cells(i, 117).PasteSpecial

With ActiveSheet.Shapes("Image 1")
     .Left = Selection.Left + (Selection.Width - .Width) / 2
     .Top = Selection.Top + (Selection.Height - .Height) / 2
     .Placement = xlMoveAndSize
    End With
 End If
 Next i

Quelqu'un aurait-il solution pour résoudre ce problème.
Merci par avance de votre aide.
Cordialement.
Alex



Bonjour Alex,

ton code fonctionne très bien à condition que ta cellule où tu copies
le shape soit sélectionnée. Ce qui n'est pas le cas ici. A la place de
selection, mets Sheets("BASE").Cells(i, 117).
Pour alléger le code tu peux mettre cette cellule dans une variable
avec la définition en début de procédure :
dim rngDest as range
et son affectation avant de PasteSpecial :
set rngDest = Sheets("BASE").Cells(i, 117)
puis son utilisation :
With ActiveSheet.Shapes("Image 1")
.Left = rngDest .Left + (rngDest .Width - .Width) / 2
.Top = rngDest .Top + (rngDest .Height - .Height) / 2
.Placement = xlMoveAndSize
End With

D'une manière générales, il faut éviter d'utiliser l'objet selectio n
et lui préférer une variable ou un nommage direct de cellule.

J'espère que ça marche.
J
Alex
Le #22282361
Bonjour Jex,

Merci pour ta réponse, je vais tester cela.
Cordialement.
Alex
Publicité
Poster une réponse
Anonyme