copier coller un objet VBA

awa123

XLDnaute Occasionnel
Bonjour,

J'ai réussi à copier coller l'objet (bouton) sur la nouvel feuille qui apparait dès que j'execute le code (en copiant collant des ranges), par contre étant donnée que c'est un objet c'est peux etre plus propre d'utiliser autre chose que des "range" pour copier coller ce bouton,

pourriez vous donc me dire que faut il utiliser à la place d'un range svp

Voici mon code actuel
Code:
    Sub Recup()

        Dim plage As Range
        Dim NomFeuille As String
        Dim feuilleinitiale As String
        Dim plage_a_copier As Range
        Dim objet_a_copier As Range

        feuilleinitiale = CStr(Val(ActiveSheet.Name))

        With Worksheets("mensuel")
       
            NomFeuille = CStr(Val(ActiveSheet.Name) + 1)

            Set objet_a_copier = ActiveSheet.Range("Q9:T14")
           
            Sheets.Add Before:=Sheets("mensuel")    'créer un nouvel onglet qui se placera juste avant l'onglet "mensuel"
           ActiveSheet.Name = NomFeuille

            With Worksheets(NomFeuille)
                objet_a_copier.Copy ActiveSheet.Range("Q9")
            End With


        End With
       
    End Sub

je vous joints mon fichier excel dont le code fonctionne bien mais avec des "range"

merci
 

Pièces jointes

  • test frm.xlsm
    33.2 KB · Affichages: 57

job75

XLDnaute Barbatruc
Re : copier coller un objet VBA

Bonsoir awa123,

Pour copier un objet dont on connait le nom vers la cellule A1 :

Code:
With ActiveSheet
  .Shapes("Bouton 1").Copy 'objet Formulaire
  '.Shapes("CommandButton1").Copy 'objet ActiveX
  .[A1].Select
  .Paste
  .[A1].Select
End With
A+
 

MichD

XLDnaute Impliqué
Re : copier coller un objet VBA

Bonjour,

VB:
Sub test()
Dim F As String
F = ActiveSheet.Name
Application.ScreenUpdating = False

'
Worksheets("1").Shapes("Bouton 4").Copy

With Worksheets("Mensuel")
    .Select
    .Range("G10").Select
    .Paste
    .Range("A1").Select
End With
Application.CutCopyMode = False
Worksheets(F).Select
Application.ScreenUpdating = True
End Sub
 

awa123

XLDnaute Occasionnel
Re : copier coller un objet VBA

merci pour vos réponses

dernière question : est il possible d'affecter l'objet à une variable du genre

Code:
    Dim objet As Object


        objet = ActiveSheet.Shapes("Bouton 4")

car je voudrais recoller cette objet plus tard (après plusieurs autre lignes de code) , ça n'a pas marché quand j'ai tenté...
 

awa123

XLDnaute Occasionnel
Re : copier coller un objet VBA

merci mais j'ai l'erreur "argument ou appel de procédure incorrect"

Code:
Sub Recup()

    Dim plage As Range
    Dim NomFeuille As String
    Dim feuilleinitiale As String
    Dim plage_a_copier As Range
    Dim objet As Object
    
    
    

    feuilleinitiale = CStr(Val(ActiveSheet.Name))

    With Worksheets("mensuel")
    
        NomFeuille = CStr(Val(ActiveSheet.Name) + 1)

        Set objet = ActiveSheet.Shapes("Bouton 4")
        
        
        
        
        Sheets.Add Before:=Sheets("mensuel")    'créer un nouvel onglet qui se placera juste avant l'onglet "mensuel"
        ActiveSheet.Name = NomFeuille

        With Worksheets(NomFeuille)
        
            objet.Copy ActiveSheet.Range("Q9")
            
        End With


    End With
    
End Sub

si pouvez jeter un œil

merci
 

awa123

XLDnaute Occasionnel
Re : copier coller un objet VBA

dsl oui en effet il fallait que j'utilise votre code comme suit pour que ça fonctionne


Code:
        objet.Copy
        ActiveSheet.[Q9].Select
        ActiveSheet.Paste

oupps je pensais que la ligne suivante objet.Copy ActiveSheet.Range("Q9") permettait de copier "objet" et de le recoller à cette endroit là "ActiveSheet.Range("Q9")"

merci
 

Discussions similaires

Statistiques des forums

Discussions
312 389
Messages
2 087 893
Membres
103 673
dernier inscrit
FmZoner