Nous sommes actuellement le 13 Juil 2026, 21:47

Le fuseau horaire est UTC-5 heures [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 13 message(s) ] 
Auteur Message
 Sujet du message: Excel VBA
MessagePublié: 03 Août 2006, 11:31 
Hors-ligne
Régulier
Régulier

Inscription : 12 Mai 2002, 12:49
Message(s) : 410
Dans un classeur excel est-il possible de désactiver l'enregistrement d'un document, car je ne veux pas que les utilisateurs enregistre le fichier excel sur le bureau ou ailleurs sur leur ordi, car j'ai un numéro séquentiel qui change à chaque ouverture, et qui doit être différent, dons il ne faut pas que tous et chacun enregistre le fichier sur leur ordi.

Le fichier Excel est accessible sur un serveur et sert de modèle.

merci

_________________
Carte ASRock 270 Pro4, CPU Intel I7 6700, 3.4Ghz, 32 Go de Ram, Windows 10 Pro (64 bits) sur SSD M2 500Go + 1DD SSD M2 de 500 Go et 2 DD de 2To + 1 DD de 1To, Carte graphique Intégré Intel et carte graphie Geforce, 3 moniteurs.


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 03 Août 2006, 11:42 
Hors-ligne
A réponse à tout!
A réponse à tout!

Inscription : 07 Jan 2002, 09:21
Message(s) : 3535
Localisation : Québec
Mettez un mot de passe aux fichiers concernés que vous pourrez attribuer à ceux que vous voudrez.

Salut :!:

_________________
"Alea jacta est [ENTER]" ;-) Pile


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 03 Août 2006, 12:46 
Hors-ligne
Régulier
Régulier

Inscription : 12 Mai 2002, 12:49
Message(s) : 410
Merci,

Pas tout à fait, un mot de passe c'est pour empêcher d'ouvrir le fichier, moi je veux qu'il soit accessible à tout le monde, sauf qu'une fois qu'il ont complété le formulaire, qu'il ne puisse pas le sauvegarder, il imprime ensuite il ferme sans sauvegarde.

_________________
Carte ASRock 270 Pro4, CPU Intel I7 6700, 3.4Ghz, 32 Go de Ram, Windows 10 Pro (64 bits) sur SSD M2 500Go + 1DD SSD M2 de 500 Go et 2 DD de 2To + 1 DD de 1To, Carte graphique Intégré Intel et carte graphie Geforce, 3 moniteurs.


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 03 Août 2006, 13:25 
Hors-ligne
Petit nouveau
Petit nouveau
Avatar de l’utilisateur

Inscription : 03 Août 2005, 20:14
Message(s) : 22
Est-ce que vous voulez empêcher vos utilisateurs de garder une copie de votre formulaire sous forme électronique ou est-ce que vous voulez que le formulaire reste intact?. Dans ce dernier cas, vous pouvez simplement utiliser un modèle.


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 03 Août 2006, 13:54 
Hors-ligne
Régulier
Régulier

Inscription : 12 Mai 2002, 12:49
Message(s) : 410
Cela ne me donne absolument rien en enregistrant commme modèle.

La situation: J'ai un formulaire avec un numéro de formulaire séquentiel(comme un numéro de facture qui est différent à chaque facture) qui augmente de 1 à chaque ouverture, donc, s'il a 100 formulaires d'imprimer ils ont tous un numéro différent.

Ce que je veux pas: Je ne veux pas que tous et chacun, après avoir ouvert le formulaire à partir du serveur, puisse enregistrer le formulaire sur leur poste de travail, ce qui ferais que: si il y a 50 utilisateurs qui ont enregistré le formulaire sur le poste de travail, on va se retrouver avec 50 formulaires avec les même numéro, ce que je veux pas.
merci

_________________
Carte ASRock 270 Pro4, CPU Intel I7 6700, 3.4Ghz, 32 Go de Ram, Windows 10 Pro (64 bits) sur SSD M2 500Go + 1DD SSD M2 de 500 Go et 2 DD de 2To + 1 DD de 1To, Carte graphique Intégré Intel et carte graphie Geforce, 3 moniteurs.


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 03 Août 2006, 14:17 
Hors-ligne
A réponse à tout!
A réponse à tout!
Avatar de l’utilisateur

Inscription : 26 Mars 2002, 10:51
Message(s) : 2546
Localisation : Ottawa, ON
Je dis ca comme ca... je sais pas si c'est possible mais est-ce que tu pourrais pas donner uniquement les droits de lectures sur ton fichier sur le serveur ? Je m'avance en disant sa tout en spécifiant que je ne sais pas si cela pourrais régler le problème.

Edit: dans la sécurité tu metterais seulement le droit en Read and Execute

_________________
Développeur Web Senior, CEPEO, Ottawa, ON


Dernière édition par TyL le 03 Août 2006, 14:18, édité 1 fois.

Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 03 Août 2006, 14:18 
Hors-ligne
Modérateur
Modérateur
Avatar de l’utilisateur

Inscription : 06 Jan 2002, 23:03
Message(s) : 1894
Localisation : Québec
Trouvé ça, mais je ne sais pas si c'est ce que vous cherchez.

http://www.excelabo.net/xl/protection.php#ctrlS


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 03 Août 2006, 15:21 
Hors-ligne
Petit nouveau
Petit nouveau
Avatar de l’utilisateur

Inscription : 03 Août 2005, 20:14
Message(s) : 22
Ou encore, si tu fais le contraire, c-a-d forcer l'enregistrement, tu pourrais faire incrémenter un compteur à chaque impression à l'aide d'un bouton pour l'impression:

Private Sub CommandButton1_Click()
nbrCopie = InputBox("Nbr de copies pour impression?")
For i = 1 To nbrCopie
ActiveSheet.PrintOut
Range("a1").Value = Range("A1").Value + 1
Next
End Sub


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 03 Août 2006, 22:57 
Hors-ligne
Modérateur
Modérateur
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 15:10
Message(s) : 3551
Localisation : Beauport, Québec
ALT-F11, dans l'objet "ThisWorkbook" rajoutez le code suivant:

Code :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
   Cancel = True
End Sub


Il ne reste qu'à trouver une façon d'empêcher les gens de modifier les macros.

EDIT: J'y pense, ce code là va emêcher l'enregistrement du fichier, vous ne pourrez donc pas enregistrer votre fichier contenant ce code. Il faudrait une condition que vous seul savez outrepasser.

_________________
Procyon,
Modérateur de la section Trouvailles


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 03 Août 2006, 23:13 
Hors-ligne
Modérateur
Modérateur
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 15:10
Message(s) : 3551
Localisation : Beauport, Québec
Bon, finalement je proposerais ceci, toujours dans le module ThisWorkbook:

Code :
Private bIsClosing As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    bIsClosing = True
    If Not ThisWorkbook.Saved Then ThisWorkbook.Save
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If Not bIsClosing Then
        Cancel = True
    End If
End Sub



Ce que ça fait, c'est que ça empêche d'enregistrer le fichier par CTRL-S ou par le menu, ça empêche autant "Save" que le "Save As".

À la fermeture du fichier, si l'usager a modifié le fichier, celui-ci s'enregistre automatiquement sans demander de confirmation. Si aucune modification n'a été faite, rien ne se passera.

_________________
Procyon,
Modérateur de la section Trouvailles


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 04 Août 2006, 15:26 
Hors-ligne
Régulier
Régulier

Inscription : 12 Mai 2002, 12:49
Message(s) : 410
Procyon a écrit:
Bon, finalement je proposerais ceci, toujours dans le module ThisWorkbook:

Code :
Private bIsClosing As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    bIsClosing = True
    If Not ThisWorkbook.Saved Then ThisWorkbook.Save
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If Not bIsClosing Then
        Cancel = True
    End If
End Sub



Ce que ça fait, c'est que ça empêche d'enregistrer le fichier par CTRL-S ou par le menu, ça empêche autant "Save" que le "Save As".

À la fermeture du fichier, si l'usager a modifié le fichier, celui-ci s'enregistre automatiquement sans demander de confirmation. Si aucune modification n'a été faite, rien ne se passera.


Sa marche bien, aucune modification possible, sauf que mon numéro séquentiel, change à l'ouverture pour qu'on soit en mesure d'ouvrir plusieurs feuilles à la fois à partir de différent point avec un numéro différent sur chaque feuille, voici le code

Private Sub Workbook_Open()
Range("AC4990").Value = Range("AC4990").Value + 1
Range("N5").Value = "W-" & Range("AC4990").Value
ActiveWorkbook.Save

J'ai regardé dans la page d'astuce que "Pierre Charbonneau" ma suggéré et je n'ai rien trouvé non plus, mais j'ai bien aimé cette page,

Merci

_________________
Carte ASRock 270 Pro4, CPU Intel I7 6700, 3.4Ghz, 32 Go de Ram, Windows 10 Pro (64 bits) sur SSD M2 500Go + 1DD SSD M2 de 500 Go et 2 DD de 2To + 1 DD de 1To, Carte graphique Intégré Intel et carte graphie Geforce, 3 moniteurs.


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 04 Août 2006, 16:31 
Hors-ligne
Occasionnel
Occasionnel

Inscription : 05 Août 2002, 16:19
Message(s) : 112
TyL a écrit:
Je dis ca comme ca... je sais pas si c'est possible mais est-ce que tu pourrais pas donner uniquement les droits de lectures sur ton fichier sur le serveur ? Je m'avance en disant sa tout en spécifiant que je ne sais pas si cela pourrais régler le problème.

Edit: dans la sécurité tu metterais seulement le droit en Read and Execute


Moi je suis d'accord avec ça...

Dans le répertoire, tu permets seulement lecture et execute...


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 05 Août 2006, 01:15 
Hors-ligne
Modérateur
Modérateur
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 15:10
Message(s) : 3551
Localisation : Beauport, Québec
Ceci peut-être?

Il faut se mettre des breakpoints et passer par dessus du code pour pouvoir enregistrer le fichier quand on veut enregistrer ce code. Si tu as besoin de plus d'aide, tu n'as qu'à me le dire.

Code :
Private bAllowSave As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ThisWorkbook.Saved = True 'Pour éviter de se faire poser la question si on veut enregistrer les modifications.
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If Not bAllowSave Then
        Cancel = True
    End If
End Sub

Private Sub Workbook_Open()
    Range("AC4990").Value = Range("AC4990").Value + 1
    Range("N5").Value = "W-" & Range("AC4990").Value
    bAllowSave = True
    ActiveWorkbook.Save
    bAllowSave = False
End Sub


_________________
Procyon,
Modérateur de la section Trouvailles


Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 13 message(s) ] 

Le fuseau horaire est UTC-5 heures [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 3 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
Propulsé par phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site