Ne pas copier le bouton d'activation de la macro

Fermé
Aimy67 - 7 août 2018 à 11:58
Aimy67 Messages postés 1 Date d'inscription mardi 7 août 2018 Statut Membre Dernière intervention 7 août 2018 - 7 août 2018 à 15:37
Bonjour,

Je débute avec les macros aussi je vous remercie par avance de votre indulgence et de votre aide.

J'ai un fichier Excel contenant plusieurs onglet dont un qui me permet de faire un reporting via des TCD et un graphique.

J'ai mis en place une macro me permettant de copier l'onglet de reporting dans un nouveau fichier Excel, de sélectionner les données et de les copier en tant que valeur, puis d'enregistrer mon fichier à l'emplacement souhaité.
Jusque la tout va bien.

J'ai créé un bouton me permettant de réaliser cette action. Le problème est que quand je lance ma macro cela copie également le bouton et je n'arrive pas à le supprimer autrement que manuellement.

Ci-dessous le code que j'ai fait :

Sheets("Synthèse service").Select
Sheets("Synthèse service").Copy
Range("A1:E25").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("F15").Select
Application.CutCopyMode = False
ActiveSheet.Shapes("Button1").Delete
ActiveWorkbook.SaveAs Filename:="\\srvdata\utilisateurs\egrossm\Documents\Test macro\Export service\Test 2 " & Range("B3").Value & ".xlsx" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWindow.Close
End Sub

Je vous remercie par avance pour votre aide.
A voir également:

1 réponse

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
7 août 2018 à 13:58
Bonjour,

Pour répondre, il serait plus simple de disposer de ton fichier,
débarrassé des informations confidentielles s'il y lieu.

Déposes le fichier avec des commentaires explicatifs sur
https://mon-partage.fr/
et mets le lien obtenu dans ton prochain message.

Avec VBA, il faut absolument éviter d'utiliser .Select et Selection, et si possible éviter d'utiliser le presse-papier (.
.PasteSpecial).
Par exemple :
Option Explicit
Sub Test()
Dim wbk As Workbook
Dim wsh As Worksheet
  Worksheets("Synthèse service").Copy
  Set wbk = ActiveWorkbook
  Set wsh = wbk.Worksheets("Synthèse service")
  wsh.Range("A1:E25").Value = wsh.Range("A1:E25").Value
  'et ici : wsh.Shapes("Button1").Delete  mais sans le fichier ???
  wbk.SaveAs Filename:="\\srvdata\utilisateurs\egrossm\Documents\Test macro\Export service\Test 2 " & _
                       wsh.Range("B3").Value & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
  wbk.Close
End Sub


0
Bonjour,

Merci pour ces premiers éléments de réponses.

Ci-dessous le lien avec un fichier dont j'ai modifié les données par des données fictives.
https://mon-partage.fr/f/TXhRDLqY/

J'ai fait ma macro avec l'enregistreur automatique car je débute sur ce type de sujet.

Merci d'avance.
0
Aimy67 Messages postés 1 Date d'inscription mardi 7 août 2018 Statut Membre Dernière intervention 7 août 2018
7 août 2018 à 15:37
J'ai oubliée de vous donner une précision sans doute importante.

Dans mon véritable fichier de travail les éléments copiés sont des TCD.

Aussi quand j'essaie d'appliquer le code que vous m'avez gentiment retravaillé, j'obtiens le message d'erreur ci-dessous concernant la ligne :
wsh.Range("A1:E25").Value = wsh.Range("A1:E25").Value
0