Désactiver une macro bien précise

Bobby -  
 Bobby -
Bonjour,

Je me suis mis au macro pour les besoins du boulot, donc j'apprends un peu sur le tas.

J'ai écrit (copier coller) une macro qui permet d'effacer, à chaque ouverture d'un fichier partagé, certaine données rentrées par les utilisateurs précédents.
Le fichier excel en question, a vocation a être sauvegarder en copie perso par les utilisateurs qui le souhaitent.
J'aimerai savoir si il était possible d'écrire une macro qui permette de désactiver la macro "efface" une fois la sauvegarde perso effectuée ET uniquement dans le nouveau fichier sauvegarder de manière à ce que l'utilisateur conserve ses données. (j'espère être clair...)

Merci par avance de vos réponse

Ci dessous, la macro qui efface

Private Sub Workbook_Open()
Worksheets("Fiche").Select
Range("F23:F30").ClearContents
Worksheets("Log In").Select
Range("E14").ClearContents
Range("E11").Select

End Sub

et ci dessous, la macro qui permet à l'utilisateur de se voir proposer de sauvegarder

Sub Enregistrer()

Copie
ActiveWorkbook.Save
Worksheets("Log In").Select
Application.Dialogs(xlDialogSaveAs).Show Range("E11").Value & ".xls"

End Sub
A voir également:

8 réponses

lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Bonjour,

Tu pourrais déjà mettre un "Drapeau" de vidage sur une cellule ?
Private Sub Workbook_Open() 
Worksheets("Fiche").Select 
if cells(1,200)="" then
cells(1,200)="Ne changer pas cette cellule"
Range("F23:F30").ClearContents 
Worksheets("Log In").Select 
Range("E14").ClearContents 
Range("E11").Select 
end if
End Sub 


Et ta macro copier.. Elle fonctionne ????
A+
0
Bobby
 
Bonjour lermite222,

Désolé de répondre aussi tard, mais je viens de me rendre compte que la ré^ponse que j'avais posté hier ne s'était pas correctement enregistrée.

Je ne suis pas sur que la méthode que tu proposes permette d'arriver au résultat désiré.
J'ai changé de stratégie, en posant une condition sur le nom du fichier... mais je crois que ma condition est mal écrite.

Si quelqu'un peut m'éclairer sur l'utilisation du "FileName" dans les macros, je lui en serait très reconnaissant.

Ci dessous la macro modifiée

Private Sub Workbook_Open()
Application.ScreenUpdating = False

Worksheets("Log In").Select
If ActiveWorkbook.Filename = "Tarifs 2009 travail EPLE" Then

Worksheets("Fiche").Select
Range("F23:F30").ClearContents
Worksheets("Log In").Select
Range("E14").ClearContents
Range("E11").Select
Else
Worksheets("Log In").Select
Range("E11").Select
End If
Application.ScreenUpdating = True
End Sub
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
"Tarifs 2009 travail EPLE.XLS"

0
Bobby
 
Salut

j'ai rajouté le .xls mais ça n'a pas l'air de lui faire ni chaud ni froid...la macro plante toujours au niveau de la condition.
est ce que la ligne de code ActiveWorkbook.FileName = ... veut bien dire quelques chose?

merci en tout cas de ton assistance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
essaye avec ThisWoorkbook.name
ou ActiveWorkbook.name
Remarque: si le classeur n'a pas encore été sauve (n'existe pas sur le DD) faut pas mettre XLS sinon.. Faut le mettre

Tu peu aussi tester si c'est dans le même réperetoire avec ActiveWorkbook.Fullname
Uniquement le chemin avec ActiveWorkbook.Path

EDIT:
Je ne suis pas sur que la méthode que tu proposes permette d'arriver au résultat désiré.
Ce qui veut dire que tu ne l'a même pas tester mais que la solution est pas bonne....
Et behhh.. Je vois pas pourquoi faudrait te donner des solutions ?

0
Bobby
 
Merci beaucoup, ça marche !

Pour la deuxième partie de ta réponse, effectivement, ce n'est pas ce qu'il y a de plus correct, mais en lisant le code, je ne vois pas en quoi la perspective d'écrire "ne changer pas cette cellule" dans les cellules vides considérées aurait empêcher la suppression des données des cellules F23:F30 et de la cellule E14.



Merci encore de ton aide
Bonne journée
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Si tu avait tester tu aurrais compris....
Ce n'est pas parce qu'ont a pas compris que ça marche pas.
0
Bobby
 
Je m'incline,

je ne comprends toujours pas le mécanisme, mais tu avais parfaitement raison... Ca me servira de leçon.

Et bien une dernière fois merci

bonne fin de journée et bon week end
0