bloquer enregistrement d'un feuille

Augur2454

XLDnaute Nouveau
Salut,

Mon problème est un peu dure à expliquer dans le titre :D. Voila j ai créé un fichier excel avec plusieurs feuilles (contenant plusieurs bases de données) . Ma première feuille contient une macro de recherche qui amene un lien vers la feuille qui contient la donné recherché. J aimerai si cela est possible (avec une macro ou autre) pouvoir bloquer l'enregistrement de la première page pour conserver mon module de recherche vierge apres chaque recherche.

Merci
 

Augur2454

XLDnaute Nouveau
Re : bloquer enregistrement d'un feuille

Desolé si ce n'est pas clair. Pour etre clair je veux par exemple que les modification qui ont été faites sur la feuille 1 ne s'enregistre pas quand je vais sur la feuille 2 de mon fichier excel
 

ledzepfred

XLDnaute Impliqué
Re : bloquer enregistrement d'un feuille

Bonsoir,

en clair si j'ai modifié les données de la feuille 1, pas d'enregistrement.

La solution serait d'associer une procédure évenementielle dans la feuille 1 de type Worksheet_Change() dans laquelle on aurait un drapeau (variable de type bolléenne) qui prendrait la valeur True dans cette macro, et une autre macro évenementielle de type Workbook_BeforeSave qui dirait si drapeau égal True alors Activeworkbook.Save False (bien sur cette variable Drapeau doit être déclarée en dehors de toute procédure pour qu'elle soit "Publique"

Mais bon faire attention à ce genre de méthode parce que si tu bosses 1 seconde dans la feuille 1 et trois heures dans la feuille 2 ben pas d'enregistrement

A+
 

ledzepfred

XLDnaute Impliqué
Re : bloquer enregistrement d'un feuille

re...

hum!!! De la théorie à la pratique c'est pas si simple :D, et puis comme je le disais il faut faire attention avec ce genre de procédure, peut-être une autre solution qui nous arrache moins de cheveux :
Pourquoi ne pas mettre un mot de passe dans Outils/ Options/ Sécurité/ Modification /Paramètres de partage de ce fichier et une coche sur lecture seule recommandée.

Seuls ceux habilités à modifier le fichier (ceux qui ont le mot de passe) pourrait le faire, les autres seraient en lecture seule

A+
 

Augur2454

XLDnaute Nouveau
Re : bloquer enregistrement d'un feuille

Pour te dire la vérité j ai déjà tester la solution mot de passe et elle n'empeche pas l'enregistrement (même si c'est temporaire) des modification de la feuille1.

Pour t'expliquer le pourquoi de cette "formule", je dois diffusé sur l'intranet de mon entreprise (en utilisant IE) en lecture direct le fichier excel avec le mode recherche (feuille1). Un lien ce cree vers la feuille 2 lorsque je fais une recherche mais lorsque je clique sur le lien une fenetre apparait avec :

ce document a été modifié. Voulez-vous enregistrer les modifications ?
oui : enregistre vos modifications
non : Ignore vos modifications
annuler : garde le document ouvert

et je ne comprend pas pourquoi cette fenêtre apparait et surtout comment l'enlever.
Si tu peux m aider dans la conception de ce code ou si tu as une idée pour résoudre ce problème, ça serait cool.

Merci
 

ledzepfred

XLDnaute Impliqué
Re : bloquer enregistrement d'un feuille

RE...

mets le fichier anonymisé et allégé des données superflues dans ton prochain post, on pourra peut-être t'aider au mieux

Le message
ce document a été modifié. Voulez-vous enregistrer les modifications ?
oui : enregistre vos modifications
non : Ignore vos modifications
annuler : garde le document ouvert
c'est IE qui le met?

A+
 
Dernière édition:

ledzepfred

XLDnaute Impliqué
Re : bloquer enregistrement d'un feuille

regardes ce fichier joint,

tu peux faire ce que tu veux dans le feuillet 2, l'enregistrement va fonctionner
Par contre dès que je modifie quelque chose dans feuil1, la valeur Vrai est renvoyée en A1 de feuil2. Du coup si on demande l'enregistrement ou la fermeture du classeur, celui-ci n'est pas enregistré (ça marche pas avec une variable booleenne publique, bizarre).

A adapter à ton fichier sachant que en A1 de feuil2 de ton fichier, tu as de la donnée (et du coup quand je recherche a il me renvoie deux résultats (a et vrai), il faudrait renvoyer dans une autre cellule un caractère non présent dans ta plage de recherche (genre un caractère particulier comme £).

A+
 

Pièces jointes

  • Classeur1.xls
    23.5 KB · Affichages: 68
  • Classeur1.xls
    23.5 KB · Affichages: 74
  • Classeur1.xls
    23.5 KB · Affichages: 61

ledzepfred

XLDnaute Impliqué
Re : bloquer enregistrement d'un feuille

merci job75,

suis-je bête : j'avais tenté mais avec une erreur de syntaxe.

Augur, ci-joint ton fichier essai modifié

bonne nuit
 

Pièces jointes

  • ESSAI.zip
    18.3 KB · Affichages: 47
  • ESSAI.zip
    18.3 KB · Affichages: 46
  • ESSAI.zip
    18.3 KB · Affichages: 50
Dernière édition:

Augur2454

XLDnaute Nouveau
Re : bloquer enregistrement d'un feuille

Salut

Merci beaucoup pour votre aide et la création du macro, mais hélas lorsque j'ouvre le fichier essai avec Internet explorer mon probleme persisite. j ai toujours la fenetre :

ce document a été modifié. Voulez-vous enregistrer les modifications ?
oui : enregistre vos modifications
non : Ignore vos modifications
annuler : garde le document ouvert

Encore merci et si vous avez une solution à mon probleme
 

job75

XLDnaute Barbatruc
Re : bloquer enregistrement d'un feuille

Bonjour le fil, le forum,

Quelque chose ne va pas dans le dernier fichier envoyé par ledzepfred.

En effet quand on fait une recherche, la feuille recherche est modifiée, la macro Worksheet_Change s'exécute et la variable drapeau prend la valeur True : on ne peut plus enregistrer le fichier.

Il faut donc désactiver l'action des évènements, et enregistrer le fichier après la recherche :

Code:
Private Sub CommandButton1_Click()
[COLOR="Red"]If drapeau Then Exit Sub[/COLOR]
reponse = InputBox("mot a chercher")
If reponse = "" Then
 MsgBox ("Vous devez saisir au moins un mot !!!")
 Exit Sub
End If
Range("A8:A70" & Range("A65536").End(xlUp).Row).ClearContents
[COLOR="Red"]Application.EnableEvents = False 'désactive l'action des évènements[/COLOR]
Call recherche(reponse)
[COLOR="Red"]ThisWorkbook.Save 'enregistre le fichier
Application.EnableEvents = True[/COLOR]
End Sub

L'enregistrement devrait permettre d'éviter le message gênant.

Edit : si l'on modifie la feuille recherche (hors procédure de recherche), la recherche n'est plus possible, il faut fermer le fichier et le rouvrir.

A+
 

Pièces jointes

  • ESSAI (1).zip
    14.6 KB · Affichages: 46
Dernière édition:

Discussions similaires

Réponses
2
Affichages
508

Statistiques des forums

Discussions
312 203
Messages
2 086 193
Membres
103 153
dernier inscrit
SamirN