Insérer une forme via un code VBA

gerard55

XLDnaute Occasionnel
Bonjour à tous,
Je souhaite insérer diifférent type de forme que j'ai créé dans une feuille OUITILS. Je ne parviens pas à les intégrer via le code VBA qui est en cours. Il copie bien la valeur de la cellule mais pas la Forme contenue dans la celluile. voir le fichier joint.
Merci d'avance pour votre aide
Gérard
a+
 

Pièces jointes

  • Matrice Planning download.xlsm
    41.2 KB · Affichages: 80

job75

XLDnaute Barbatruc
Re : Insérer une forme via un code VBA

Bonjour gerard55,

Pas compris vous voulez copier mais bon...

Si pour l'objet on a choisi "Déplacer et dimmensionner avec les cellules", pas de problème :

Code:
Sub essaigg()
Dim c As Range
For Each c In Sheets("planning").[D5:D28]
  Sheets("Outils").[A2].Copy c
Next
End Sub
En copiant la cellule A2 on copie aussi l'objet.

A+
 

Theze

XLDnaute Occasionnel
Re : Insérer une forme via un code VBA

Bonjour,

Teste et adapte :
Code:
Sub essaigg()

    Dim FePlanning As Worksheet
    Dim FeOutils As Worksheet
    Dim I As Long 'pas de type Double
    
    Set FePlanning = Worksheets("planning")
    Set FeOutils = Worksheets("outils")
    
    'copie l'image. Il serait préférable de leurs donner un
    'nom de façon à les identifier facilement (dans la zone de nom,
    'saisir un nom et appuis sur Entrée)
    FeOutils.Shapes("AutoShape 3").Copy
    
    'colle les copies de la flêche vers le bas(AutoShape 3) en
    'colonne D de la ligne 5 à la ligne 22
    For I = 5 To 22
    
        FePlanning.Paste
        
        With Worksheets("planning").Shapes("AutoShape 3")
            
            'nomme les flêches, les dimensionne à la cellule
            'et les positionne
            .Name = "FlecheBas_" & I
            .Width = FePlanning.Cells(I, 4).Width '<--virer si doit pas être redimensionné
            .Height = FePlanning.Cells(I, 4).Height '<--virer si doit pas être redimensionné
            .Top = FePlanning.Cells(I, 4).Top
            .Left = FePlanning.Cells(I, 4).Left
            
        End With
    
    Next I
    
End Sub

Sub Supprimer()

    Dim Sh As Shape
    
    'supprime tous les Shapes de la feuille
    For Each Sh In Worksheets("planning").Shapes
    
        Sh.Delete
        
    Next Sh
    
End Sub

Hervé.
 

gerard55

XLDnaute Occasionnel
Re : Insérer une forme via un code VBA

Merci pour vos réponse.
Cependant, je dois mettre une forme que lorsque le nom correspond à celui que je cherche; Là je cherche à mettre une forme d'abord dans la première cellule à droite de GGG. Chacune des colonnes (c d e f g) correspond au 5 jours de la semaine. Chacune des formes indiquent une absence.
J'aurai une ligne de code par jour d'absence concerné
La forme doit être insérée en face le nom cocerné d'ou la boucle et la recherche du nom
Sub essaigg()

Sheets("planning").Select

Dim NomG As Byte

Sheets("Listes").Select
Range("B22").Select = NomG
Dim i As Double
For i = 1 To 22

Case Is = NomG
'je veux coller la forme contenue dans la feuille "Outils" cellule a2
Cells(i, 3).Offset(0, 2) = 'Shapes.Array ("AutoShape 152")
End Select
Next i
End Sub
a+
Gérard
 

Discussions similaires

Réponses
4
Affichages
107

Membres actuellement en ligne

Statistiques des forums

Discussions
312 196
Messages
2 086 084
Membres
103 116
dernier inscrit
kutobi87