Macro qui confirme le remplacement du fichier à l'enregistrement

Bonjour à tous,

j'utilise une macro actuellement pour enregistrer mon fichier à 2 emplacements distinct. Une fois sur un disque réseau et une autre sur un serveur sharepoint. Là, aucun souci, j'ai mis ceci :

Sub enregitrement_double()
'
Application.Workbooks(1).SaveAs _
 "http://serveursharpoint/nomdemonfichier.xlsm"

Dim nf$
    With ThisWorkbook
        .Save
        nf = .Name
        .SaveAs "C:\dossier\nomdemonfichier.xlsm"
    End With
   End Sub

Maintenant, à chaque fois, cela me demande de confirmer le remplacement du fichier par le nouveau...par sur le serveur sharepoint mais sur le disque dur. Y a t'il une méthode pour éviter cela ?

Et enfin, si je peux l'éviter, puis-je mettre un message de confirmation avec uniquement un OK. Message du style : l'enregistrement a été fait avec succès

Merci pour votre précieuse aide

Bonjour,

Je ne comprends pas pourquoi tu utilises SaveAs ? Cela correspond à un premier enregistrement sous un nom donné et un emplacement donné, pour les enregistrements suivants, on utilise Save !

Quoi qu'il en soit, la commande pour inhiber les messages d'alerte :

    Application.DisplayAlerts = False

Elle pourra toujours te servir...

Cordialement.

edit : Tu peux aussi utiliser SaveCopyAs pour le second enregistrement dans un autre dossier que le dossier courant (sans que ça le modifie, et sans message d'alerte).

Mais je ne comprends pas le rôle de ta variable nf non utilisée ?

Je viens de tester quelque chose qui fonctionne bien :

Sub enregitrement_double()
'
Application.Workbooks(1).SaveAs _
 "http://serveursharpoint/nomdemonfichier.xlsm"

    Application.DisplayAlerts = False 'désactive les alertes Excel

 Dim nf$
    With ThisWorkbook
        .Save
        nf = .Name
        .SaveAs "C:\dossier\nomdemonfichier.xlsm"
    End With

Application.DisplayAlerts = True  'active les alertes Excel

MsgBox "L'enregistrement a été correctement effectué."

End Sub

Je venais justement de mettre un complément à ma réponse...

Inutile de remettre DisplayAlerts à True, Excel le fait automatiquement !

Mais ce qui me chiffonne dans ton code :

  • la distinction Workbooks(1) et ThisWorkbook qui n'est justifiée que s'il s'agit de 2 classeurs distincts (ce n'est pas très clair)
  • tu initialises une variable nf que tu n'utilises pas ?

Donc si j'ai bien compris, mon code devrait plutôt être :

Sub enregitrement_double()
'
Application.SaveAs _
 "http://serveursharpoint/nomdemonfichier.xlsm"

    Application.DisplayAlerts = False 'désactive les alertes Excel

Application.SaveAs _
 "C:\dossier\nomdemonfichier.xlsm"

MsgBox "L'enregistrement a été correctement effectué."

End Sub

J'aurais plutôt dit dans la mesure où tu ne confirmes pas l'existence d'un second fichier :

Sub enregitrement_double()
    With ThisWorkbook
        .Save
        .SaveCopyAs "C:\dossier\nomdemonfichier.xlsm"
    End With
    MsgBox "L'enregistrement a été correctement effectué."
End Sub

Cordialement.

C’est à dire que j’en veux l’enregistrer aussi dans sharepoint, donc à deux endroits distincts

Il vient bien de quelque part ? ! Si c'est d'un 3e emplacement, cela fait 3 enregistrements. Et alors avec un Save et 2 SaveCopyAs (dans n'importe quel ordre) on répond à la question.

Par contre (s'il n'y a qu'un seul fichier bien sûr, puisque tu ne confirmes pas l'existence d'un second), avec ton premier SaveAs et ton Save qui suit tu l'enregistres 2 fois dans ton dossier réseau...

Je parle bien d'un seul et unique fichier que j'enregistre une fois simplement où il se trouve et je veux qu'en parallèle, il se mette dans un dossier SharePoint.

Sub enregitrement_double()
    With ThisWorkbook
        .Save
    End With

    Application.Workbooks(1).SaveAs _
"http://serveursharpoint/nomdemonfichier.xlsm"

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

Avec ce code épuré je suis bon ?

Que vient faire ce Workbooks(1) ?

S'il n'y a qu'un classeur, c'est toujours le même, et s'il y en avait plusieurs, tu ne saurais pas lequel !

Et SaveCopyAs est plus indiqué pour faire une copie...

Sub enregitrement_double()
    With ThisWorkbook
        .Save
        Application.DisplayAlerts = False
        .SaveCopyAs "http://serveursharpoint/nomdemonfichier.xlsm"
    End With
    MsgBox "L'enregistrement a été correctement effectué."
End Sub

Cordialement.

Rechercher des sujets similaires à "macro qui confirme remplacement fichier enregistrement"