XL 2013 déplacer objet dessin en fonction cellule

chindou

XLDnaute Occasionnel
Bonsoir, le forum et bonne année à toutes et à tous
je veux déplacer un objet dessin d'une cellule à une autre en fonction d'une date qui n'est pas toujours sur la même cellule
j'utilise le code suivant mais sans succès. j'ai un bug au niveau de la 5eme ligne
03-01-2023 20-48-36.png

VB:
Sub deplacer()
Dim cellule As Range
    For Each cellule In Range("B3:F331")
        If cellule = Range("date_fin") Then
                        With ActiveSheet.Shapes("etiq_1" & cellule)
                            .LockAspectRatio = msoFalse
                            .Left = cellule.Left
                            .Top = cellule.Top
                            .Width = cellule.Width
                            .Height = cellule.Height
                        End With
            End If
    Next
End Sub
Merci d'avance à vos aides
Cordialement
 
Solution
Bonsoir Chindou,
Sans fichier test on ne peut que supputer.
Essayez ce code :
VB:
Sub deplacer()
Dim cellule As Range
    For Each cellule In Range("B3:F331")
        If cellule = Range("date_fin") Then
            MsgBox "etiq_1" & cellule
            With ActiveSheet.Shapes("etiq_1" & cellule)
                .LockAspectRatio = msoFalse
                .Left = cellule.Left
                .Top = cellule.Top
                .Width = cellule.Width
                .Height = cellule.Height
            End With
        End If
    Next
End Sub
Le message devrait vous indiquer le nom de la feuille que vous voulez atteindre.
Est ce la cas ? ( attention aux espaces dans les noms de feuilles, cela crée souvent des soucis car on ne le voit...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Chindou,
Sans fichier test on ne peut que supputer.
Essayez ce code :
VB:
Sub deplacer()
Dim cellule As Range
    For Each cellule In Range("B3:F331")
        If cellule = Range("date_fin") Then
            MsgBox "etiq_1" & cellule
            With ActiveSheet.Shapes("etiq_1" & cellule)
                .LockAspectRatio = msoFalse
                .Left = cellule.Left
                .Top = cellule.Top
                .Width = cellule.Width
                .Height = cellule.Height
            End With
        End If
    Next
End Sub
Le message devrait vous indiquer le nom de la feuille que vous voulez atteindre.
Est ce la cas ? ( attention aux espaces dans les noms de feuilles, cela crée souvent des soucis car on ne le voit pas, mais le VBA les trouve ... )
Ou fournissez un petit fichier, ce sera plus simple.
 

Discussions similaires

Réponses
16
Affichages
1 K

Statistiques des forums

Discussions
311 709
Messages
2 081 774
Membres
101 816
dernier inscrit
Jfrcs