Bonjour à tous.
Je suis un noob autodidacte en VBA Excel. J'apprends beaucoup grâce à vos questions et réponses sur ce forum. D'abord merci à vous pour cela !
Chers Experts, donc, c'est à mon tour de vous solliciter car là franchement je coince et je n'arrive pas à me débrouiller seul
Le script de macro que je vous présente ci-dessous (désolé s'il est digne d'un super débutant lol) marche à merveille, sauf au moment où les images - que je réussi pourtant à sélectionner - ne se suppriment pas dans le fichier Excel de destination.
J'ai essayé différents bouts de scripts, différentes méthodes, mais au final, soit cela ne change rien, soit ça bogue.
Mon souci est précisément le suivant :
- Je veux exporter la feuille en cours dans un nouveau fichier (ça c'est good sauf que les images et leur lien restent). Les macros ne s'enregistrent pas dans le fichier de destination, mais comme les liens sont "intelligents", ils lancent quand même les macros en ouvrant le fichier source lol
- Sur le nouveau fichier (donc de destination), les images doivent disparaitre, ou, au pire, rester présentes, mais SANS aucun lien/hyperlien (vers des macros, d'autres feuilles du classeur d'origine, etc.)
- Pour conclure : l'utilisateur de la feuille exportée en un classeur à part ne doit pouvoir utiliser ni lien ni macro via les liens des images du fichier d'origine.
J'espère que c'est clair, car pas évident à expliquer
Si je fais mal les choses, soyez indulgents, merci
Mon code :
1000 fois merci par avance pour votre précieuse aide !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 Sub EnregistrementExcel() Dim DateTab As String, RepDest As String, RefAgent As String, VerifExist As String, CodeTab As String, NomTableau As String DateTab = Format(Date, "yyyymmdd") RepDest = "C:\DESTINATION\MACHINTRUC\" RefAgent = Application.UserName CodeTab = ActiveSheet.Name NomTableau = ActiveSheet.Cells(5, 7).Value & " - " & DateTab & " - " & CodeTab & " - " & RefAgent & ".xlsx" ActiveSheet.PageSetup.PrintArea = "" With ActiveSheet.PageSetup .LeftFooter = "ETABLISSEMENT / Service / " & Sheets("ACCUEIL").Range("C8") End With If IsEmpty(Cells(2, 1)) = True Then MsgBox ("Veuillez renseigner la référence du correspondant avant enregistrement au format Excel") Range("A2").Select Exit Sub End If If IsEmpty(Cells(5, 1)) = True Then MsgBox ("Veuillez renseigner le type d'anomalie avant enregistrement au format Excel") Range("A5").Select Exit Sub End If If MsgBox("Confirmez-vous l'enregistrement de ce fichier au format Excel ?", vbOKCancel) = vbOK Then VerifExist = Dir(RepDest & NomTableau) If VerifExist = "" Then Application.DisplayAlerts = False ThisWorkbook.ActiveSheet.Copy ActiveWorkbook.SaveAs Filename:=RepDest & NomTableau '-------------- C'EST LA QUE CA COINCE --------------------------------------------------------------------------------------------------- ActiveSheet.Shapes.Range(Array("Picture 6", "Picture 5", "Picture 4", "Picture 3", "Picture 2", "Picture 1")).Select Selection.Delete '------------------------------------------------------------------------------------------------------------------------------------------------ ActiveWorkbook.Close MsgBox ("votre fichier a bien été enregistré sous : " & RepDest & NomTableau) Application.DisplayAlerts = True Else If MsgBox("Le fichier que vous voulez enregistrer existe déjà. Souhaitez-vous le remplacer ?", vbYesNo) = vbYes Then Application.DisplayAlerts = False ThisWorkbook.ActiveSheet.Copy ActiveWorkbook.SaveAs Filename:=RepDest & NomTableau '-------------- C'EST LA QUE CA COINCE --------------------------------------------------------------------------------------------------- ActiveSheet.Shapes.Range(Array("Picture 6", "Picture 5", "Picture 4", "Picture 3", "Picture 2", "Picture 1")).Select Selection.Delete '------------------------------------------------------------------------------------------------------------------------------------------------ ActiveWorkbook.Close MsgBox ("votre fichier a bien été enregistré sous : " & RepDest & NomTableau) Application.DisplayAlerts = True Else MsgBox ("Fichier non enregistré au format Excel") End If End If End If End Sub








Répondre avec citation





Partager