Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Bouton copier objets vba

kay

XLDnaute Nouveau
Bonjour

Je cherche à créer un bouton permettant de copier des éléments comprenant des objets de type liste déroulante, zone de texte et case à cocher ainsi que des titres, ça se présente comme ceci :



Merci
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

kay
Une image, c'est joli mais c'est tout
Un classeur joint c'est pas forcément joli, mais c'est mieux qu'une image parce qu'on peut y faire des tests

Et ce que tu veux copier, tu le colles où?
Sur une feuille?
Sur une feuille mais dans un autre classeur
dans un userform ?
etc...
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Si j'étais moi, j'essaierai de me convaincre d'utiliser un Userform (en lieu et place de la feuille nommée Formulaire)
Et pour ce faire, je me serai convaincu de faire la chose suivante
ALT+F11
ALT+I
ALT+U
(ou pour le plaisir de caresser sa souris ALT+F11 puis Insertion/Userform)

Maintenant reste à savoir ce que tu penses de la suggestion du gars qui se pense être moi
 

kay

XLDnaute Nouveau
Je ne connaissais pas mais why not si tu penses que c'est plus adapté. Est-ce que j'aurais la possibilité de créer ce fameux bouton qui permet de répéter les deux lignes que j'ai mentionné avant ?
 

job75

XLDnaute Barbatruc
Bonjour kay, salut JM,

Je comprends que vous voulez modifier la macro du bouton :
VB:
Sub Bouton189_Cliquer()
Application.CopyObjectsWithCells = True
With ActiveSheet
    .DrawingObjects.Placement = 2
    If .Name <> "Definitions" And .Name <> "fx" And .Name <> "Needs" Then _
        .DrawingObjects("Zone combinée 160").TopLeftCell.Copy .[E10]
End With
End Sub
A+
 

Staple1600

XLDnaute Barbatruc
Re

Pour le moment, je n'ai compris ce que tu veux faire sur ta feuille Formulaire
et ta macro plante sur mon PC.

Et si j'utilise l'enregistreur de macros pour copier la zone combinée (juste pour faire un test)
j'obtiens ce type de syntaxe
VB:
Sub Macro1()
' Macro enregistrée le 22/07/2019 par inadvertance
ActiveSheet.Shapes("Drop Down 160").Copy
ActiveSheet.Paste
End Sub
Tu peux ajouter quelques explications supplémentaires, stp?

EDITION: Bonsoir job75
Pas vu ta réponse avant de poster.
 

kay

XLDnaute Nouveau
Oui alors l'objectif c'est de permettre aux personnes de formuler plusieurs demandes. Les 2 lignes (cf. capture premier message) correspondent à une demande, mais je veux permettre aux personnes de formuler autant de demande qu'ils le souhaitent.
 

kay

XLDnaute Nouveau
Salut job75

Merci pour ton aide, c'était pas tout à fait cet objet là mais ces 2 lignes :



j'essaye de modifier ton code pour l'adapter peut-être que ça marchera
 

kay

XLDnaute Nouveau
Le contenu que je souhaite copier correspond aux lignes 5 jusqu'à 9, l'idée c'est de coller à la suite donc de la ligne 10 à 14 sans changer de colonnes (donc toujours de la colonne D à M).
 

job75

XLDnaute Barbatruc
Bonjour kay, JM, le forum,

Il est facile de copier-coller les contrôles de formulaire, pour les contrôles ActiveX il faut les dupliquer :
VB:
Sub Bouton189_Cliquer()
Dim P As Range, decal&, o As OLEObject, c As Range
Application.CopyObjectsWithCells = True
With ActiveSheet
    If .Name = "Definitions" Or .Name = "fx" Or .Name = "Needs" Then Exit Sub
    Set P = .[D5:M9] 'plage à adapter
    decal = 5 'décalage à adapter
    Application.ScreenUpdating = False
    .DrawingObjects.Placement = 2
    P.Copy P.Offset(decal) 'copie les cellules et les contrôles de formulaire
    For Each o In .OLEObjects 'boucle pour copier les contrôles ActiveX
        Set c = o.TopLeftCell
        If Not Intersect(P, c) Is Nothing Then
            With o.Duplicate 'duplication
                .Left = o.Left
                .Top = c.Offset(decal).Top + o.Top - c.Top
            End With
        End If
    Next
End With
End Sub
Bonne journée.
 

Pièces jointes

  • Formulaire JDD(1).xlsm
    70.3 KB · Affichages: 3
Dernière édition:

job75

XLDnaute Barbatruc
Avec le fichier précédent les copies de CheckBox3 et CheckBox4 ne se voient pas pas car elles sont cachées par les TextBoxes.

Dans ce fichier (2) j'ai un peu modifié les positions pour qu'elles apparaissent.
 

Pièces jointes

  • Formulaire JDD(2).xlsm
    69.5 KB · Affichages: 5

kay

XLDnaute Nouveau
Avec le fichier précédent les copies de CheckBox3 et CheckBox4 ne se voient pas pas car elles sont cachées par les TextBoxes.

Dans ce fichier (2) j'ai un peu modifié les positions pour qu'elles apparaissent.

Bonjour job75, JM,

C'est exactement ce que je recherchais, merci beaucoup à vous deux pour votre aide précieuse !

Bonne journée
 

Discussions similaires

Réponses
10
Affichages
367
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…