Comment protéger une feuille et autoriser une macro à y insérer des lignes ?
Bonjour,
Soit une feuille Excel
Les utilisateurs peuvent choisir dans un menu déroulant (valider données) un
lieu
Qui vient d'une liste (plage de cellules).
Ce lieu choisi est réutilisé dans une autre feuille (=page0!i7)
Il peuvent ajouter un lieu :
une macro va à la fin de la plage où se trouve la liste,
insère une ligne, et colle le nouveau nom de lieu,
après avoir vérifié (recherchev masqué) que le lieu n'existe pas déjà.
Je veux protéger les cellules de la feuille autre que celles prévues pour la
saisie.
Mais du coup, ma macro d'insertion d'un nouveau lieu ne peut plus insérer de
lignes
Or, pour pouvoir faire une liste déroulante avec validation de donnée, la
plage où se trouve les données valides doit être sur la même feuille !
Donc je dois choisir de laisser toute ma feuille non protégée,
ou laisser tomber la validation de données !
Toute idée de solutions est la bienvenue,
Merci à tous ceux qui m'auront lu jusque là
Philippe
Comment protéger une feuille et autoriser une macro à y insérer des lignes ?
Bonjour,
Soit une feuille Excel
Les utilisateurs peuvent choisir dans un menu déroulant (valider données) un
lieu
Qui vient d'une liste (plage de cellules).
Ce lieu choisi est réutilisé dans une autre feuille (=page0!i7)
Il peuvent ajouter un lieu :
une macro va à la fin de la plage où se trouve la liste,
insère une ligne, et colle le nouveau nom de lieu,
après avoir vérifié (recherchev masqué) que le lieu n'existe pas déjà.
Je veux protéger les cellules de la feuille autre que celles prévues pour la
saisie.
Mais du coup, ma macro d'insertion d'un nouveau lieu ne peut plus insérer de
lignes
Or, pour pouvoir faire une liste déroulante avec validation de donnée, la
plage où se trouve les données valides doit être sur la même feuille !
Donc je dois choisir de laisser toute ma feuille non protégée,
ou laisser tomber la validation de données !
Toute idée de solutions est la bienvenue,
Merci à tous ceux qui m'auront lu jusque là
Philippe
Comment protéger une feuille et autoriser une macro à y insérer des lignes ?
Bonjour,
Soit une feuille Excel
Les utilisateurs peuvent choisir dans un menu déroulant (valider données) un
lieu
Qui vient d'une liste (plage de cellules).
Ce lieu choisi est réutilisé dans une autre feuille (=page0!i7)
Il peuvent ajouter un lieu :
une macro va à la fin de la plage où se trouve la liste,
insère une ligne, et colle le nouveau nom de lieu,
après avoir vérifié (recherchev masqué) que le lieu n'existe pas déjà.
Je veux protéger les cellules de la feuille autre que celles prévues pour la
saisie.
Mais du coup, ma macro d'insertion d'un nouveau lieu ne peut plus insérer de
lignes
Or, pour pouvoir faire une liste déroulante avec validation de donnée, la
plage où se trouve les données valides doit être sur la même feuille !
Donc je dois choisir de laisser toute ma feuille non protégée,
ou laisser tomber la validation de données !
Toute idée de solutions est la bienvenue,
Merci à tous ceux qui m'auront lu jusque là
Philippe
Bonjour Philippe,
Regarde au menu, Insertion, Nom, Définir, pour nommer la plage
tu pourras te servir de ce nom dans Données, Validation, Liste,
Référence : =toto. Ta liste de validation se trouve sur alors sur une
autre feuille que ta page active.
Dans ta macro, tu désactives la protection de la feuille où se trouve ta
liste (sheets("tata").unprotect) avant d'écrire la nouvelle ligne, et tu
la reprotège en fin de macro (sheets("tata").protect).
....Tout ça, si j'ai bien compris le problème :-)))Comment protéger une feuille et autoriser une macro à y insérer des lignes ?
Bonjour,
Soit une feuille Excel
Les utilisateurs peuvent choisir dans un menu déroulant (valider données) un
lieu
Qui vient d'une liste (plage de cellules).
Ce lieu choisi est réutilisé dans une autre feuille (=page0!i7)
Il peuvent ajouter un lieu :
une macro va à la fin de la plage où se trouve la liste,
insère une ligne, et colle le nouveau nom de lieu,
après avoir vérifié (recherchev masqué) que le lieu n'existe pas déjà.
Je veux protéger les cellules de la feuille autre que celles prévues pour la
saisie.
Mais du coup, ma macro d'insertion d'un nouveau lieu ne peut plus insérer de
lignes
Or, pour pouvoir faire une liste déroulante avec validation de donnée, la
plage où se trouve les données valides doit être sur la même feuille !
Donc je dois choisir de laisser toute ma feuille non protégée,
ou laisser tomber la validation de données !
Toute idée de solutions est la bienvenue,
Merci à tous ceux qui m'auront lu jusque là
Philippe
--
@+ thierryp
Bonjour Philippe,
Regarde au menu, Insertion, Nom, Définir, pour nommer la plage
tu pourras te servir de ce nom dans Données, Validation, Liste,
Référence : =toto. Ta liste de validation se trouve sur alors sur une
autre feuille que ta page active.
Dans ta macro, tu désactives la protection de la feuille où se trouve ta
liste (sheets("tata").unprotect) avant d'écrire la nouvelle ligne, et tu
la reprotège en fin de macro (sheets("tata").protect).
....Tout ça, si j'ai bien compris le problème :-)))
Comment protéger une feuille et autoriser une macro à y insérer des lignes ?
Bonjour,
Soit une feuille Excel
Les utilisateurs peuvent choisir dans un menu déroulant (valider données) un
lieu
Qui vient d'une liste (plage de cellules).
Ce lieu choisi est réutilisé dans une autre feuille (=page0!i7)
Il peuvent ajouter un lieu :
une macro va à la fin de la plage où se trouve la liste,
insère une ligne, et colle le nouveau nom de lieu,
après avoir vérifié (recherchev masqué) que le lieu n'existe pas déjà.
Je veux protéger les cellules de la feuille autre que celles prévues pour la
saisie.
Mais du coup, ma macro d'insertion d'un nouveau lieu ne peut plus insérer de
lignes
Or, pour pouvoir faire une liste déroulante avec validation de donnée, la
plage où se trouve les données valides doit être sur la même feuille !
Donc je dois choisir de laisser toute ma feuille non protégée,
ou laisser tomber la validation de données !
Toute idée de solutions est la bienvenue,
Merci à tous ceux qui m'auront lu jusque là
Philippe
--
@+ thierryp
Bonjour Philippe,
Regarde au menu, Insertion, Nom, Définir, pour nommer la plage
tu pourras te servir de ce nom dans Données, Validation, Liste,
Référence : =toto. Ta liste de validation se trouve sur alors sur une
autre feuille que ta page active.
Dans ta macro, tu désactives la protection de la feuille où se trouve ta
liste (sheets("tata").unprotect) avant d'écrire la nouvelle ligne, et tu
la reprotège en fin de macro (sheets("tata").protect).
....Tout ça, si j'ai bien compris le problème :-)))Comment protéger une feuille et autoriser une macro à y insérer des lignes ?
Bonjour,
Soit une feuille Excel
Les utilisateurs peuvent choisir dans un menu déroulant (valider données) un
lieu
Qui vient d'une liste (plage de cellules).
Ce lieu choisi est réutilisé dans une autre feuille (=page0!i7)
Il peuvent ajouter un lieu :
une macro va à la fin de la plage où se trouve la liste,
insère une ligne, et colle le nouveau nom de lieu,
après avoir vérifié (recherchev masqué) que le lieu n'existe pas déjà.
Je veux protéger les cellules de la feuille autre que celles prévues pour la
saisie.
Mais du coup, ma macro d'insertion d'un nouveau lieu ne peut plus insérer de
lignes
Or, pour pouvoir faire une liste déroulante avec validation de donnée, la
plage où se trouve les données valides doit être sur la même feuille !
Donc je dois choisir de laisser toute ma feuille non protégée,
ou laisser tomber la validation de données !
Toute idée de solutions est la bienvenue,
Merci à tous ceux qui m'auront lu jusque là
Philippe
--
@+ thierryp
Bonjour,
en 1er lieu, si tu veux que ta feuille soit protégée mais qu'une
macro puisse y écrire quelque chose, il suffit dans la protecttion
d'écrire le paramètre UserInterfaceonly à True
ex: sheets("toto").Protect "motdepasse", , , , True
en second lieu, il est tout à fait possible de référencer une liste
de validation avec des données se situant sur une autre feuille voire
sur un autre classeur. Voici ci-dessous le mode opératoire
'*********************************************************************************
'Comment faire référence à une liste dans une autre feuille par
Données Validation
'Ecrire la liste sur la feuille 2 p.e (mettons toto, titi, tata que les
cellules
'de A1 à A3. Donner un nom à cette liste , mettons listenoms.
'Aller sur la feuille 1, prendre 1 cellule et faire
Données/validation/Autoriser/Liste
'Dans Source, écrire =listenoms.
'*********************************************************************************
'Comment faire référence à une liste dans un autre classeur par
Données Validation
'Ecrire la liste sur le classeur1 dans la feuille 1 p.e (mettons toto,
titi, tata
'sur les cellules de A1 à A3. Donner un nom à cette liste , mettons
lnoms.
'Aller sur le classeur2 et faire Insertion/définir un nom. Taper p.e
le nom Noms1
'et écrire en toute lettres dans la fenêtre RefEdit =Classeur1!lnoms.
'Puis aller dans la cellule devant recevoir la validation et faire
Données/validation/Autoriser/Liste
'Dans Source, écrire =Noms1.
'Attention: pour que ca puisse marcher, il faut que le fichier Classeur
1 soit ouvert.
A+
Bonjour,
en 1er lieu, si tu veux que ta feuille soit protégée mais qu'une
macro puisse y écrire quelque chose, il suffit dans la protecttion
d'écrire le paramètre UserInterfaceonly à True
ex: sheets("toto").Protect "motdepasse", , , , True
en second lieu, il est tout à fait possible de référencer une liste
de validation avec des données se situant sur une autre feuille voire
sur un autre classeur. Voici ci-dessous le mode opératoire
'*********************************************************************************
'Comment faire référence à une liste dans une autre feuille par
Données Validation
'Ecrire la liste sur la feuille 2 p.e (mettons toto, titi, tata que les
cellules
'de A1 à A3. Donner un nom à cette liste , mettons listenoms.
'Aller sur la feuille 1, prendre 1 cellule et faire
Données/validation/Autoriser/Liste
'Dans Source, écrire =listenoms.
'*********************************************************************************
'Comment faire référence à une liste dans un autre classeur par
Données Validation
'Ecrire la liste sur le classeur1 dans la feuille 1 p.e (mettons toto,
titi, tata
'sur les cellules de A1 à A3. Donner un nom à cette liste , mettons
lnoms.
'Aller sur le classeur2 et faire Insertion/définir un nom. Taper p.e
le nom Noms1
'et écrire en toute lettres dans la fenêtre RefEdit =Classeur1!lnoms.
'Puis aller dans la cellule devant recevoir la validation et faire
Données/validation/Autoriser/Liste
'Dans Source, écrire =Noms1.
'Attention: pour que ca puisse marcher, il faut que le fichier Classeur
1 soit ouvert.
A+
Bonjour,
en 1er lieu, si tu veux que ta feuille soit protégée mais qu'une
macro puisse y écrire quelque chose, il suffit dans la protecttion
d'écrire le paramètre UserInterfaceonly à True
ex: sheets("toto").Protect "motdepasse", , , , True
en second lieu, il est tout à fait possible de référencer une liste
de validation avec des données se situant sur une autre feuille voire
sur un autre classeur. Voici ci-dessous le mode opératoire
'*********************************************************************************
'Comment faire référence à une liste dans une autre feuille par
Données Validation
'Ecrire la liste sur la feuille 2 p.e (mettons toto, titi, tata que les
cellules
'de A1 à A3. Donner un nom à cette liste , mettons listenoms.
'Aller sur la feuille 1, prendre 1 cellule et faire
Données/validation/Autoriser/Liste
'Dans Source, écrire =listenoms.
'*********************************************************************************
'Comment faire référence à une liste dans un autre classeur par
Données Validation
'Ecrire la liste sur le classeur1 dans la feuille 1 p.e (mettons toto,
titi, tata
'sur les cellules de A1 à A3. Donner un nom à cette liste , mettons
lnoms.
'Aller sur le classeur2 et faire Insertion/définir un nom. Taper p.e
le nom Noms1
'et écrire en toute lettres dans la fenêtre RefEdit =Classeur1!lnoms.
'Puis aller dans la cellule devant recevoir la validation et faire
Données/validation/Autoriser/Liste
'Dans Source, écrire =Noms1.
'Attention: pour que ca puisse marcher, il faut que le fichier Classeur
1 soit ouvert.
A+
Je vais re-essayé, en effet j'ai déjà essayé ces solutions mais :
avec protège, agit, déprotège, j'ai déjà eu des plantage que je ne me suis
pas expliqué (c'était pour utiliser un filtre élaboré sur une liste que je
voulais protéger)
avec la liste de validation utilisée via une plage nommée,
je crois me souvenir que :
- insérer une ligne au milieu de la plage, laisse la plage se redimensionner
- mais l'insérer avec une macro (en tous cas la mienne) posait problèmeBonjour Philippe,
Regarde au menu, Insertion, Nom, Définir, pour nommer la plage
tu pourras te servir de ce nom dans Données, Validation, Liste,
Référence : =toto. Ta liste de validation se trouve sur alors sur une
autre feuille que ta page active.
Dans ta macro, tu désactives la protection de la feuille où se trouve ta
liste (sheets("tata").unprotect) avant d'écrire la nouvelle ligne, et tu
la reprotège en fin de macro (sheets("tata").protect).
....Tout ça, si j'ai bien compris le problème :-)))Comment protéger une feuille et autoriser une macro à y insérer des lignes ?
Bonjour,
Soit une feuille Excel
Les utilisateurs peuvent choisir dans un menu déroulant (valider données) un
lieu
Qui vient d'une liste (plage de cellules).
Ce lieu choisi est réutilisé dans une autre feuille (=page0!i7)
Il peuvent ajouter un lieu :
une macro va à la fin de la plage où se trouve la liste,
insère une ligne, et colle le nouveau nom de lieu,
après avoir vérifié (recherchev masqué) que le lieu n'existe pas déjà.
Je veux protéger les cellules de la feuille autre que celles prévues pour la
saisie.
Mais du coup, ma macro d'insertion d'un nouveau lieu ne peut plus insérer de
lignes
Or, pour pouvoir faire une liste déroulante avec validation de donnée, la
plage où se trouve les données valides doit être sur la même feuille !
Donc je dois choisir de laisser toute ma feuille non protégée,
ou laisser tomber la validation de données !
Toute idée de solutions est la bienvenue,
Merci à tous ceux qui m'auront lu jusque là
Philippe
--
@+ thierryp
Je vais re-essayé, en effet j'ai déjà essayé ces solutions mais :
avec protège, agit, déprotège, j'ai déjà eu des plantage que je ne me suis
pas expliqué (c'était pour utiliser un filtre élaboré sur une liste que je
voulais protéger)
avec la liste de validation utilisée via une plage nommée,
je crois me souvenir que :
- insérer une ligne au milieu de la plage, laisse la plage se redimensionner
- mais l'insérer avec une macro (en tous cas la mienne) posait problème
Bonjour Philippe,
Regarde au menu, Insertion, Nom, Définir, pour nommer la plage
tu pourras te servir de ce nom dans Données, Validation, Liste,
Référence : =toto. Ta liste de validation se trouve sur alors sur une
autre feuille que ta page active.
Dans ta macro, tu désactives la protection de la feuille où se trouve ta
liste (sheets("tata").unprotect) avant d'écrire la nouvelle ligne, et tu
la reprotège en fin de macro (sheets("tata").protect).
....Tout ça, si j'ai bien compris le problème :-)))
Comment protéger une feuille et autoriser une macro à y insérer des lignes ?
Bonjour,
Soit une feuille Excel
Les utilisateurs peuvent choisir dans un menu déroulant (valider données) un
lieu
Qui vient d'une liste (plage de cellules).
Ce lieu choisi est réutilisé dans une autre feuille (=page0!i7)
Il peuvent ajouter un lieu :
une macro va à la fin de la plage où se trouve la liste,
insère une ligne, et colle le nouveau nom de lieu,
après avoir vérifié (recherchev masqué) que le lieu n'existe pas déjà.
Je veux protéger les cellules de la feuille autre que celles prévues pour la
saisie.
Mais du coup, ma macro d'insertion d'un nouveau lieu ne peut plus insérer de
lignes
Or, pour pouvoir faire une liste déroulante avec validation de donnée, la
plage où se trouve les données valides doit être sur la même feuille !
Donc je dois choisir de laisser toute ma feuille non protégée,
ou laisser tomber la validation de données !
Toute idée de solutions est la bienvenue,
Merci à tous ceux qui m'auront lu jusque là
Philippe
--
@+ thierryp
Je vais re-essayé, en effet j'ai déjà essayé ces solutions mais :
avec protège, agit, déprotège, j'ai déjà eu des plantage que je ne me suis
pas expliqué (c'était pour utiliser un filtre élaboré sur une liste que je
voulais protéger)
avec la liste de validation utilisée via une plage nommée,
je crois me souvenir que :
- insérer une ligne au milieu de la plage, laisse la plage se redimensionner
- mais l'insérer avec une macro (en tous cas la mienne) posait problèmeBonjour Philippe,
Regarde au menu, Insertion, Nom, Définir, pour nommer la plage
tu pourras te servir de ce nom dans Données, Validation, Liste,
Référence : =toto. Ta liste de validation se trouve sur alors sur une
autre feuille que ta page active.
Dans ta macro, tu désactives la protection de la feuille où se trouve ta
liste (sheets("tata").unprotect) avant d'écrire la nouvelle ligne, et tu
la reprotège en fin de macro (sheets("tata").protect).
....Tout ça, si j'ai bien compris le problème :-)))Comment protéger une feuille et autoriser une macro à y insérer des lignes ?
Bonjour,
Soit une feuille Excel
Les utilisateurs peuvent choisir dans un menu déroulant (valider données) un
lieu
Qui vient d'une liste (plage de cellules).
Ce lieu choisi est réutilisé dans une autre feuille (=page0!i7)
Il peuvent ajouter un lieu :
une macro va à la fin de la plage où se trouve la liste,
insère une ligne, et colle le nouveau nom de lieu,
après avoir vérifié (recherchev masqué) que le lieu n'existe pas déjà.
Je veux protéger les cellules de la feuille autre que celles prévues pour la
saisie.
Mais du coup, ma macro d'insertion d'un nouveau lieu ne peut plus insérer de
lignes
Or, pour pouvoir faire une liste déroulante avec validation de donnée, la
plage où se trouve les données valides doit être sur la même feuille !
Donc je dois choisir de laisser toute ma feuille non protégée,
ou laisser tomber la validation de données !
Toute idée de solutions est la bienvenue,
Merci à tous ceux qui m'auront lu jusque là
Philippe
--
@+ thierryp