VBA exécutée à l'enregistrement du fichier

Bonjour à tous,

je souhaite exécuter une macro au moment où l'on enregistre un classeur.

Je suis aller dans VBA, sous ThisWorbook, puis j'ai sélectionné Worbook à gauche et BeforSave à droite.

Là, j'ai mis mon code :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Sub enregitrement()
    With ThisWorkbook
        .Save
    End With

    Application.Workbooks(1).SaveAs _
"http://monsitesharepoint/doc/test.xlsm"

   MsgBox "L'enregistrement a été correctement."
End Sub

A chaque fois, j'ai des erreurs et excel plante...

Je fais quoi de faux ? (je suis débutant en VBA...)

Bonjour vinzu01,

Essaye ceci :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  ThisWorkbook.Save
  Application.Workbooks(1).SaveAs "http://monsitesharepoint/doc/test.xlsm", 52
  MsgBox "L'enregistrement a été fait correctement."
End Sub

dhany

En faisant ceci, cela m'affiche 3x la MsgBox et excel dit qu'il doit redémarrer... et plante

Par contre, il l'a enregistré dans SharePoint.

Si je vais dans Sharpoint et que j'ouvre ce même fichier, là cela m'affiche aussi 3x la MsgBox mais ne plante pas

J'comprends pas pourquoi ça affiche la MsgBox 3× ; mais si t'as pas besoin du message de confirmation, alors supprime simplement l'instruction MsgBox "L'enregistrement a été fait correctement." ; il restera :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  ThisWorkbook.Save
  Application.Workbooks(1).SaveAs "http://monsitesharepoint/doc/test.xlsm", 52
End Sub

dhany

Là, cela me met :

Erreur d'exécution '1004'

Impossible d'enregistrer sous ce nom. Ce document a été ouvert en lecture seule.

En refaisant le tout, excel plante..

si le fichier sous lequel tu veux sauvegarder est en "Lecture seule" (attribut du ficher "Read only"), tu peux pas enregistrer par dessus ! tu dois d'abord enlever l'attribut lecture seule (avant son ouverture) !

dhany

ce qui est étrange est que si j'exécute la macro normalement elle fonctionne. Cela bug uniquement en l'intégrant avec la fonction enregistrer

désolé, j'peux pas t'aider plus car j'm'y connais pas en réseaux ; idem pour SharePoint (tu en parlais dans ton message de 18:47) ; donc continue de surveiller les prochaines réponses ; bonne chance !

dhany

Rechercher des sujets similaires à "vba executee enregistrement fichier"