Bonjour a tous
J'essaie de mettre au point une macro qui me permet d'enregsitrer un fichier à chaque fermeture de celui-ci.
Jusque là, pas de problème.
Seulement, je souhaite que la sauvegarde se fasse sous certaines condition
un bout de code valant mieux qu'un long discours...
Dans la dernière partie du code, celle qui gère l'enregistrement, on peux voir que je demande la chose suivante:
Si Hierarchie est FAUX OU que modif est VRAI OU que le fichier n'est pas en lecture seul, enregistre le fichier
Mes problèmes:
1. La partie "VERIFICATION DE MODIFICATION" avec la vérification
ne semble pas fonctionner : je ne connaissais pas cette fonction, aussi s'agit il d'un essai! la doc m'a la'air cohérente avec ce que je veux faire, a savoir passer un booléen a VRAI si le fichier est enregistré.
2. Si je vérifie seulement 1 critère (nom d'utilisateur ou fichier en lecture seul), l'enregistrement fonctionne
Si je mets 2 ou 3 critères, ça ne fonctionne pas.
3. Je n'arrive pas à mettre plusieurs nom d'utilisateurs différents
Par exemple
Pouvez-vous me donner quelques pistes?
Je n'ai rien trouvé de tel sur le forum, après une rapide recherche, et mon ami google ne m'en a pas dit beaucoup plus (je ne lui ai peut-être pas demandé correctement ^^)
Merci a tous pour vos idées, eclaircissement, etc....
NOTA: le password et le nom d'utilisateur ont été modifié pour la publication sur le forum
J'essaie de mettre au point une macro qui me permet d'enregsitrer un fichier à chaque fermeture de celui-ci.
Jusque là, pas de problème.
Seulement, je souhaite que la sauvegarde se fasse sous certaines condition
un bout de code valant mieux qu'un long discours...
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Désactive l 'affichage des messages d'alerte genre "voulez-vous sauvegarder"
Application.DisplayAlerts = False
'DEMARRAGE DE LA MACRO
'Initialisation des variables "nom", "UserName" comme string, "Hierarchie" et "Modif" comme booléen
Dim nom As String, UserName As String, hierachie As Boolean, Modif As Boolean
'VERIFICATION DE MODIFICATION
'Si le fichier a été sauvegardé, passe modif a true
Modif = False
If ThisWorkbook.Saved = False Then Modif = True
'VERIFICATION DU NOM DE L'UTILISATEUR
'Définit le nom d'utilisateur dans la variable UserName
UserName = Application.UserName
'Vérifie suivant le UserName si la variable hierachie est vrai ou fausse
If UserName = "Chef1" Then Hierarchie = True
'CREATION DU NOM DU FICHIER
'donne une valeur à "nom" suivant le nom du fichier, l'heure et la date (DMY)
nom = "modifié par " & UserName & " " & ThisWorkbook.Name & "__" & Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "--" & Hour(Time) & "'" & Minute(Time) & "'" & Second(Time) & ".XLS"
'ENREGISTREMENT DU FICHIER
'Si le fichier n'est pas en lecture seule ou si hierachie= faux et modif = faux alors enregistre
If Hierarchie = False Or Modif = True Or ThisWorkbook.ReadOnly = True Then ThisWorkbook.SaveAs Filename:="D:\Test\" & nom, Password:="XXX", CreateBackup:=False, ReadOnlyRecommended:=True
'FIN DE LA MACRO
'Active l'affichage des messages d'alertes
Application.DisplayAlerts = True
End Sub
Dans la dernière partie du code, celle qui gère l'enregistrement, on peux voir que je demande la chose suivante:
Si Hierarchie est FAUX OU que modif est VRAI OU que le fichier n'est pas en lecture seul, enregistre le fichier
Mes problèmes:
1. La partie "VERIFICATION DE MODIFICATION" avec la vérification
Code:
If ThisWorkbook.Saved = False Then Modif = True
2. Si je vérifie seulement 1 critère (nom d'utilisateur ou fichier en lecture seul), l'enregistrement fonctionne
Si je mets 2 ou 3 critères, ça ne fonctionne pas.
3. Je n'arrive pas à mettre plusieurs nom d'utilisateurs différents
Code:
If UserName = "Chef1" Or "Chef2" Or " Chef3" Then Hierarchie = True
Pouvez-vous me donner quelques pistes?
Je n'ai rien trouvé de tel sur le forum, après une rapide recherche, et mon ami google ne m'en a pas dit beaucoup plus (je ne lui ai peut-être pas demandé correctement ^^)
Merci a tous pour vos idées, eclaircissement, etc....
NOTA: le password et le nom d'utilisateur ont été modifié pour la publication sur le forum
Dernière édition: