Module de création de macro, erreur syntaxe

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

Merci Gerard !

Rechercher des sujets similaires à "module creation macro erreur syntaxe"