Débutant sous VBA, besoin d'aide SVP
Hors ligneSteven12 Le 24/05/2011 à 12:56 Profil de Steven12 Configuration de Steven12

Bonjour à tous!

Je débute sous VBA et j'aurais besoin de votre aide.

J'aimerais créer sur un fichier Excel un bouton sauvagarder.

Il fonctionnerait ainsi:

- En cliquant dessus, une copie de mon fichier serait effectué et sera enregistrer dans un répertoire avec un nom définie. (le fichier original n'est pas modifier)

Jusque là tout va bien, voici mon code:

 

Private Sub CommandButtun1_Click ()

ThisWorkbook.SaveCopyAs Filename:="C:\Users\......" & "xls".

End Sub

 

Là ça ce complique:

- Lorsque la copie est enregistrée, un message de confirmation apparaîtrais du genre "votre travail a bien été enregistré"

- La copie doit être enregistré en lecture seule et si possible que toutes les macros de la copie soit désactivé.

- Et pour finir, que sur le fichier original, on ne puisse sauvagarder que par le bouton "sauvagarder" et non  en passant par: fichier-enregistrer sous, ect.

(Certaine cellule de ce fichier doit être rempli par des utilisateurs donc je ne peux pas verrouiller tout le classeur)

 

Quelqu'un peut me donner un coup demain? ;-)

Merci d'avance!

Hors ligneWilder Le 05/06/2011 à 18:51 Profil de Wilder Configuration de Wilder

Viconaute Modérateur

Bonjour Steven12

Voici un exemple de code que tu peux utiliser.

Est-ce que cela te convient?

 

******   CODE *******

Dim myDefault As Integer, wb As Workbook, ws As Worksheet
myDefault = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 1
Set ws = ActiveSheet
Set wb = Workbooks.Add
wb.SaveAs Replace(ThisWorkbook.FullName, ThisWorkbook.Name, "Nom du fichier".xls")
Application.SheetsInNewWorkbook = myDefault
ws.Cells.Copy
wb.Sheets(1).PasteSpecial
ActiveSheet.Name = "Nom du fichier "
'change the codename for Sheet1 to Mudface

Application.CutCopyMode = False

MsgBox "sauvagarder"

--


Hors ligneSteven12 Le 06/06/2011 à 23:02 Profil de Steven12 Configuration de Steven12

Merci Wilder d'avoir répondu, c'est sympa! ;-)

Dit moi, je dois rajouter ton code à celui que j'ai créé n'est-ce pas?

Si c'est la cas je viens d'essayer mais j'ai des erreurs de syntaxe donc je ne peux savoir si ton code fonctionne  :-(

voici les lignes ou se trouve les erreurs:

wb.SaveAs Replace(ThisWorkbook.FullName, ThisWorkbook.Name, "Nom du fichier".xls")

et

'change the codename for Sheet1 to Mudface

Dans les paranthèses ou il est inscrit "Nom du fichier".xls") je dois mettre mon répertoire "C:\Users\......" & "xls".
n'est ce pas?

cordialement, Steven

Hors ligneWilder Le 14/06/2011 à 00:36 Profil de Wilder Configuration de Wilder

Viconaute Modérateur

Bonjour Steven12

 

Exactement, tu dois inscrire aussi que le nom du fichier. Pas le long répertoire.

--


Hors ligneSteven12 Le 14/06/2011 à 18:09 Profil de Steven12 Configuration de Steven12

Salut Wilder,

Je viens de réessayer ton code, voilà ce qu'il se passe:

Lorsque je clique sur le bouton sauvagarder,

- j'ai bien un nouveau fichier qui est créer avec le nom que j'ai donné -> OK.

- Les macros sont bien désactivées sur la copie -> OK.

- J'ai bien un message de confirmation comme quoi j'ai bien sauvegarder -> OK

- Par contre la copie n'est pas en lecture seule :-(

- Le contenu du document n'est pas réelement sauvegarder :-(

j'explique:

Si je ne sauvegarde pas à nouveau la copie que je viens de créer en passant pas excel, le contenu n'est pas sauvagardé. C'est à dire que si je ne  sauvegarde pas à nouveau la copie, je me retrouve avec un document portant le nom désiré mais avec un contenu vierge.

J'espère que je me suis bien fait comprendre,

Tu peux encore m'aider? ;-)

cordialement,

Steven

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels