Module de création de macro, erreur syntaxe
n
Bonjour j'ai une function qui import des images, le problèmes c'est quelle se recalcul automatiquement tous le temps, et je ne peux pas passer en calcul manuel car mon fichier a besoin d'être automatique pour qu'il soit utiliser.
ducoup 'javais pensé à utiliser un moyen de supprimer la function et de la réintégré que quand j'en ai besoin et de la re-supprimer.
le problème c'est que dans mon code , j'ai une incompatibilité de type 13 pour des erreur de syntaxe, sur :
.InsertLines X + 3, "If IsMissing(rep) Then rep = ThisWorkbook.Path & " \ ""
si quelqu'un à une idée?
Bien cordialement, naubin
Sub creationModule()
'Nécéssite d'activer la référence
'"Visual basic For Application Extensibility 5.3"
'
Dim Wb As Workbook
Dim VBComp As VBComponent
Dim X As Integer
'Définit le classeur cible
Set Wb = Workbooks("PlacementsABC s262019.xlsm")
'Ajoute un module standard dans le classeur
Set VBComp = Wb.VBProject.VBComponents.Add(1)
'Renomme le module
VBComp.Name = "FonctionAfficheImage"
'Ajoute une macro dans le module
With VBComp.CodeModule
X = .CountOfLines
.InsertLines X + 1, "Function AfficheImage(NomImage, Optional rep As String)"
.InsertLines X + 2, "rep = ""H:\TREMOIS\TREMOIS_Production_2018\2019\Placements hebdo - Pointages\Photos personnel\"""
.InsertLines X + 3, "If IsMissing(rep) Then rep = ThisWorkbook.Path & " \ ""
.InsertLines X + 4, "Set f = Sheets(Application.Caller.Parent.Name)"
.InsertLines X + 5, "Set adr = Application.Caller"
.InsertLines X + 6, "Set adr2 = Range(adr.Address).MergeArea"
.InsertLines X + 7, "temp = NomImage & ""_"" & adr.Address"
.InsertLines X + 8, "Existe = False"
.InsertLines X + 9, "For Each s In adr.Worksheet.Shapes"
.InsertLines X + 10, "If s.Name = temp Then Existe = True"
.InsertLines X + 11, "Next s"
.InsertLines X + 12, "If Not Existe Then"
.InsertLines X + 13, "For Each k In adr.Worksheet.Shapes"
.InsertLines X + 14, "If Mid(k.Name, InStr(k.Name, ""_"") + 1) = adr.Address Then k.Delete"
.InsertLines X + 15, "Next k"
.InsertLines X + 16, "f.Shapes.AddPicture(rep & NomImage, True, True, adr.Left, adr.top, adr2.Width, adr2.Height).Name = NomImage & ""_"" & adr.Address"
.InsertLines X + 17, "End If"
.InsertLines X + 18, "End Function"
End With
End Sub
Bonjour Naubin,
Je te propose de remplacer la ligne en erreur par :
.InsertLines X + 3, "If IsMissing(rep) Then rep = ThisWorkbook.Path & ""\"""
Bien à toi,
Gérard