j'ai un classeur dont une feuille sert de "gabarit" pour le traitement
de données importées d'après une autre application. Elle contient entre
autres des listes de validation.
Cette feuille est sécurisée par procédure Workbook_SheetChange et
Workbook_SheetSelection contre toute modification et on ne peut que la
dupliquer (automatiquement) pour travailler sur copie qui, elle, est
libre pour l'utilisateur.
Par contre, je ne trouve pas la stratégie comment protéger cette feuille
gabarit contre un effacement malencontreux de l'utilisateur.
Une (petite) recherche sur le oueb ne m'a pas ouvert de piste.
Auriez-vous une solution ?
Autre question : comment remplacer le principe de la liste de validation
en feuille par une proc VBA, parce que là aussi, je crains que
l'utilisateur, en effaçant des lignes entières sur sa feuille de
travail, efface aussi tout ou partie des listes de validation.
Comme tu travailles à partir d'une version antérieure, je te propose ceci pour le plaisir :
Tu peux supprimer la commande "Supprimer..."
Comme ça ne marchait pas mais sans aucun message d'erreur, j'ai inséré un point d'arrêt pour pouvoir faire du pas à pas et là j'ai trouvé une petite coquille à l'appel d'une procédure :
RemettreLaFonctionSupprimerCommeAvant et Sub RemettreLaFonctionSupprimerCommeAvante() ^^^^^
mais pour autant, aucun signe d'interception d'événement d'activation désactivation de feuille avec
Private Sub Worksheet_Activate() et Private Sub Worksheet_Deactivate()
comme d'autre part j'utilise Private Sub Workbook_SheetActivate(ByVal Sh As Object) pour d'autres actions et que je sais mon Excel98 Mac des plus tatillons, j'ai tenté
Private Sub Workbook_Activate() et Private Sub Workbook_Deactivate()
pour ton code et ça c'est mis à fonctionner à la perfection.
Donc un grand merci pour tout.
-- J. B.
Rebonsoir MichDenis
michdenis <michdenis@hotmail.com> wrote:
Comme tu travailles à partir d'une version antérieure, je te
propose ceci pour le plaisir :
Tu peux supprimer la commande "Supprimer..."
Comme ça ne marchait pas mais sans aucun message d'erreur, j'ai inséré
un point d'arrêt pour pouvoir faire du pas à pas et là j'ai trouvé une
petite coquille à l'appel d'une procédure :
RemettreLaFonctionSupprimerCommeAvant
et
Sub RemettreLaFonctionSupprimerCommeAvante()
^^^^^
mais pour autant, aucun signe d'interception d'événement d'activation
désactivation de feuille avec
Private Sub Worksheet_Activate()
et
Private Sub Worksheet_Deactivate()
comme d'autre part j'utilise
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
pour d'autres actions
et que je sais mon Excel98 Mac des plus tatillons, j'ai tenté
Private Sub Workbook_Activate()
et
Private Sub Workbook_Deactivate()
pour ton code et ça c'est mis à fonctionner à la perfection.
Comme tu travailles à partir d'une version antérieure, je te propose ceci pour le plaisir :
Tu peux supprimer la commande "Supprimer..."
Comme ça ne marchait pas mais sans aucun message d'erreur, j'ai inséré un point d'arrêt pour pouvoir faire du pas à pas et là j'ai trouvé une petite coquille à l'appel d'une procédure :
RemettreLaFonctionSupprimerCommeAvant et Sub RemettreLaFonctionSupprimerCommeAvante() ^^^^^
mais pour autant, aucun signe d'interception d'événement d'activation désactivation de feuille avec
Private Sub Worksheet_Activate() et Private Sub Worksheet_Deactivate()
comme d'autre part j'utilise Private Sub Workbook_SheetActivate(ByVal Sh As Object) pour d'autres actions et que je sais mon Excel98 Mac des plus tatillons, j'ai tenté
Private Sub Workbook_Activate() et Private Sub Workbook_Deactivate()
pour ton code et ça c'est mis à fonctionner à la perfection.
Donc un grand merci pour tout.
-- J. B.
michdenis
| Private Sub Workbook_Activate()
Cette procédure événementielle est déclenchée à l'ouverture du fichier et par la suite, tu dois avoir au moins 2 classeurs ouverts dans la même instance de l'application Excel. Lorsqu'un autre classeur est actif, si tu reviens au classeur source, alors la procédure va s'exécuter.
Je te ferais remarquer que ce type de procédure n'a besoin que d'une exécution lorsque le classeur devient actif pour désactiver la commandes des barres de menu. Par la suite, peu importe le temps passé dans ce classeur, les barres de menu demeureront les mêmes.
Désolé pour le "e" en trop dans la déclaration de la procédure !
"Joseph B." a écrit dans le message de groupe de discussion : 1j5yfln.1p20auxv3gu2oN% Rebonsoir MichDenis
michdenis wrote:
Comme tu travailles à partir d'une version antérieure, je te propose ceci pour le plaisir :
Tu peux supprimer la commande "Supprimer..."
Comme ça ne marchait pas mais sans aucun message d'erreur, j'ai inséré un point d'arrêt pour pouvoir faire du pas à pas et là j'ai trouvé une petite coquille à l'appel d'une procédure :
RemettreLaFonctionSupprimerCommeAvant et Sub RemettreLaFonctionSupprimerCommeAvante() ^^^^^
mais pour autant, aucun signe d'interception d'événement d'activation désactivation de feuille avec
Private Sub Worksheet_Activate() et Private Sub Worksheet_Deactivate()
comme d'autre part j'utilise Private Sub Workbook_SheetActivate(ByVal Sh As Object) pour d'autres actions et que je sais mon Excel98 Mac des plus tatillons, j'ai tenté
Private Sub Workbook_Activate() et Private Sub Workbook_Deactivate()
pour ton code et ça c'est mis à fonctionner à la perfection.
Donc un grand merci pour tout.
-- J. B.
| Private Sub Workbook_Activate()
Cette procédure événementielle est déclenchée à l'ouverture du fichier
et par la suite, tu dois avoir au moins 2 classeurs ouverts dans la même
instance de l'application Excel. Lorsqu'un autre classeur est actif, si tu
reviens au classeur source, alors la procédure va s'exécuter.
Je te ferais remarquer que ce type de procédure n'a besoin que d'une
exécution lorsque le classeur devient actif pour désactiver la commandes
des barres de menu. Par la suite, peu importe le temps passé dans ce
classeur, les barres de menu demeureront les mêmes.
Désolé pour le "e" en trop dans la déclaration de la procédure !
"Joseph B." <josephb@nullepart.invalid> a écrit dans le message de groupe de discussion :
1j5yfln.1p20auxv3gu2oN%josephb@nullepart.invalid...
Rebonsoir MichDenis
michdenis <michdenis@hotmail.com> wrote:
Comme tu travailles à partir d'une version antérieure, je te
propose ceci pour le plaisir :
Tu peux supprimer la commande "Supprimer..."
Comme ça ne marchait pas mais sans aucun message d'erreur, j'ai inséré
un point d'arrêt pour pouvoir faire du pas à pas et là j'ai trouvé une
petite coquille à l'appel d'une procédure :
RemettreLaFonctionSupprimerCommeAvant
et
Sub RemettreLaFonctionSupprimerCommeAvante()
^^^^^
mais pour autant, aucun signe d'interception d'événement d'activation
désactivation de feuille avec
Private Sub Worksheet_Activate()
et
Private Sub Worksheet_Deactivate()
comme d'autre part j'utilise
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
pour d'autres actions
et que je sais mon Excel98 Mac des plus tatillons, j'ai tenté
Private Sub Workbook_Activate()
et
Private Sub Workbook_Deactivate()
pour ton code et ça c'est mis à fonctionner à la perfection.
Cette procédure événementielle est déclenchée à l'ouverture du fichier et par la suite, tu dois avoir au moins 2 classeurs ouverts dans la même instance de l'application Excel. Lorsqu'un autre classeur est actif, si tu reviens au classeur source, alors la procédure va s'exécuter.
Je te ferais remarquer que ce type de procédure n'a besoin que d'une exécution lorsque le classeur devient actif pour désactiver la commandes des barres de menu. Par la suite, peu importe le temps passé dans ce classeur, les barres de menu demeureront les mêmes.
Désolé pour le "e" en trop dans la déclaration de la procédure !
"Joseph B." a écrit dans le message de groupe de discussion : 1j5yfln.1p20auxv3gu2oN% Rebonsoir MichDenis
michdenis wrote:
Comme tu travailles à partir d'une version antérieure, je te propose ceci pour le plaisir :
Tu peux supprimer la commande "Supprimer..."
Comme ça ne marchait pas mais sans aucun message d'erreur, j'ai inséré un point d'arrêt pour pouvoir faire du pas à pas et là j'ai trouvé une petite coquille à l'appel d'une procédure :
RemettreLaFonctionSupprimerCommeAvant et Sub RemettreLaFonctionSupprimerCommeAvante() ^^^^^
mais pour autant, aucun signe d'interception d'événement d'activation désactivation de feuille avec
Private Sub Worksheet_Activate() et Private Sub Worksheet_Deactivate()
comme d'autre part j'utilise Private Sub Workbook_SheetActivate(ByVal Sh As Object) pour d'autres actions et que je sais mon Excel98 Mac des plus tatillons, j'ai tenté
Private Sub Workbook_Activate() et Private Sub Workbook_Deactivate()
pour ton code et ça c'est mis à fonctionner à la perfection.
Donc un grand merci pour tout.
-- J. B.
josephb
michdenis wrote:
Cette procédure événementielle est déclenchée à l'ouverture du fichier
Oui, et tout fonctionne, comme tu le décris, et convenablement :-) Maintenant je vais réfléchir à exploiter le "OnAction" sans tomber dans l'usine à gaz non plus !
Désolé pour le "e" en trop dans la déclaration de la procédure !
Pas de quoi, vraiment, d'ailleurs qui peut se vanter de faire des omelettes sans caser des "e" ;-))
Cordialement, -- J. B.
michdenis <michdenis@hotmail.com> wrote:
Cette procédure événementielle est déclenchée à l'ouverture du fichier
Oui, et tout fonctionne, comme tu le décris, et convenablement :-)
Maintenant je vais réfléchir à exploiter le "OnAction" sans tomber dans
l'usine à gaz non plus !
Désolé pour le "e" en trop dans la déclaration de la procédure !
Pas de quoi, vraiment, d'ailleurs qui peut se vanter de faire des
omelettes sans caser des "e" ;-))
Cette procédure événementielle est déclenchée à l'ouverture du fichier
Oui, et tout fonctionne, comme tu le décris, et convenablement :-) Maintenant je vais réfléchir à exploiter le "OnAction" sans tomber dans l'usine à gaz non plus !
Désolé pour le "e" en trop dans la déclaration de la procédure !
Pas de quoi, vraiment, d'ailleurs qui peut se vanter de faire des omelettes sans caser des "e" ;-))