Sauvegarder la formule d'une cellule lorsqu'elle est écrasée
11 réponses
Franck
Bonjour,
je cherche =E0 effectuer le traitement suivant :
Soit une cellule contenant une formule
Mon User entre dans la cellule et =E9crase la formule en tapant une
valeur.
Comment sauvegarder la formule avant que le user ne l'=E9crase ?
(la stocker dans une worksheet masqu=E9e sur quatre colonnes : Row,
Column, Formula, DateSuppression)
Afin de pouvoir faire un drawback plus tard.
s'il est necessaire de conserver plusieurs formules, voire un nombre à prioiri inconnu, le plus simple est surement de mettre la formule au format texte dans une feuille cachée. SI par contre ,l'usage n'est qu'unique et qu'on doit revenir sur l'action précédente immédiate, alors une variable de type static ou déclarée dans le module (dans la section déclarations ) de feuille peut suffire pour conserver l'ancienne formule.
Exemple dans le module de feuille écrire pour récupérer à chaque nouvelle sélection de cellule la formule. Attention, cet exemple ne marche pas (et même plante) en cas de sélection de plus d'une cellule.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox Target.Formula ' ici tu vois que tu peux récupérer la formule et bien sur tout ce qui touche aux propriétés de Target. A toi ensuite de savoir ce que tu veux en faire, c.a.d la stocker
End if
Enfin, il faudra aussi gérer le fait que lorsque tu actives ta feuille pour laquelle il existe l'évenement Worksheet_SelectionChange, celui-ci ne se déclenchera pas et la cellule active pourra alors être écrasée sans sauvegarde de la formule qu'il contient.
A+
Bonjour, je cherche à effectuer le traitement suivant :
Soit une cellule contenant une formule Mon User entre dans la cellule et écrase la formule en tapant une valeur.
Comment sauvegarder la formule avant que le user ne l'écrase ? (la stocker dans une worksheet masquée sur quatre colonnes : Row, Column, Formula, DateSuppression) Afin de pouvoir faire un drawback plus tard.
Merci de votre aide.
bonjour,
s'il est necessaire de conserver plusieurs formules, voire un nombre à
prioiri inconnu, le plus simple est surement de mettre la formule au format
texte dans une feuille cachée.
SI par contre ,l'usage n'est qu'unique et qu'on doit revenir sur l'action
précédente immédiate, alors une variable de type static ou déclarée dans le
module (dans la section déclarations ) de feuille peut suffire pour conserver
l'ancienne formule.
Exemple dans le module de feuille écrire pour récupérer à chaque nouvelle
sélection de cellule la formule. Attention, cet exemple ne marche pas (et
même plante) en cas de sélection de plus d'une cellule.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox Target.Formula ' ici tu vois que tu peux récupérer la formule et bien
sur tout ce qui touche aux propriétés de Target. A toi ensuite de savoir ce
que tu veux en faire, c.a.d la stocker
End if
Enfin, il faudra aussi gérer le fait que lorsque tu actives ta feuille pour
laquelle il existe l'évenement Worksheet_SelectionChange, celui-ci ne se
déclenchera pas et la cellule active pourra alors être écrasée sans
sauvegarde de la formule qu'il contient.
A+
Bonjour,
je cherche à effectuer le traitement suivant :
Soit une cellule contenant une formule
Mon User entre dans la cellule et écrase la formule en tapant une
valeur.
Comment sauvegarder la formule avant que le user ne l'écrase ?
(la stocker dans une worksheet masquée sur quatre colonnes : Row,
Column, Formula, DateSuppression)
Afin de pouvoir faire un drawback plus tard.
s'il est necessaire de conserver plusieurs formules, voire un nombre à prioiri inconnu, le plus simple est surement de mettre la formule au format texte dans une feuille cachée. SI par contre ,l'usage n'est qu'unique et qu'on doit revenir sur l'action précédente immédiate, alors une variable de type static ou déclarée dans le module (dans la section déclarations ) de feuille peut suffire pour conserver l'ancienne formule.
Exemple dans le module de feuille écrire pour récupérer à chaque nouvelle sélection de cellule la formule. Attention, cet exemple ne marche pas (et même plante) en cas de sélection de plus d'une cellule.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox Target.Formula ' ici tu vois que tu peux récupérer la formule et bien sur tout ce qui touche aux propriétés de Target. A toi ensuite de savoir ce que tu veux en faire, c.a.d la stocker
End if
Enfin, il faudra aussi gérer le fait que lorsque tu actives ta feuille pour laquelle il existe l'évenement Worksheet_SelectionChange, celui-ci ne se déclenchera pas et la cellule active pourra alors être écrasée sans sauvegarde de la formule qu'il contient.
A+
Bonjour, je cherche à effectuer le traitement suivant :
Soit une cellule contenant une formule Mon User entre dans la cellule et écrase la formule en tapant une valeur.
Comment sauvegarder la formule avant que le user ne l'écrase ? (la stocker dans une worksheet masquée sur quatre colonnes : Row, Column, Formula, DateSuppression) Afin de pouvoir faire un drawback plus tard.
Merci de votre aide.
Franck
En fait, c'est pour tout un panel de cellules que je souhaite conserver les formules... J'ai juste un peu de mal à formaliser la chose entre l'evenement "SelectionChange" et "Change".
En gros, le user peut écraser la formule de A1, puis C1, puis D2 et souhaiter ensuite récupérer les formules de C1 et A1...
Voila le truc... maintenant, c'est comment récuperer la formule avant qu'elle ne soit écrasée.
En fait, c'est pour tout un panel de cellules que je souhaite conserver
les formules... J'ai juste un peu de mal à formaliser la chose entre
l'evenement "SelectionChange" et "Change".
En gros, le user peut écraser la formule de A1, puis C1, puis D2 et
souhaiter ensuite récupérer les formules de C1 et A1...
Voila le truc... maintenant, c'est comment récuperer la formule avant
qu'elle ne soit écrasée.
En fait, c'est pour tout un panel de cellules que je souhaite conserver les formules... J'ai juste un peu de mal à formaliser la chose entre l'evenement "SelectionChange" et "Change".
En gros, le user peut écraser la formule de A1, puis C1, puis D2 et souhaiter ensuite récupérer les formules de C1 et A1...
Voila le truc... maintenant, c'est comment récuperer la formule avant qu'elle ne soit écrasée.
anonymousA
ben , faut récupérer l'ensemble des formules de la plage en utlisant for each c in selection msgbox c.formula next et il vaut meirx utiliser l'venement selection_Change que Change car Change te permet de récupérer le seul target de la cellule que tu changes ( et qui du coup du fait des fromules en fait chnager d'autres) alors que selection_Change te permettra de récupérer dans Target, l'intégralité de la plage sélectionnée et donc des propriétés des cellules qui la compose.
Ensuite s'il veut récupérer les formules en question, il faudra le gérer par une autre procédure.
A+
En fait, c'est pour tout un panel de cellules que je souhaite conserver les formules... J'ai juste un peu de mal à formaliser la chose entre l'evenement "SelectionChange" et "Change".
En gros, le user peut écraser la formule de A1, puis C1, puis D2 et souhaiter ensuite récupérer les formules de C1 et A1...
Voila le truc... maintenant, c'est comment récuperer la formule avant qu'elle ne soit écrasée.
ben , faut récupérer l'ensemble des formules de la plage en utlisant
for each c in selection
msgbox c.formula
next
et il vaut meirx utiliser l'venement selection_Change que Change car Change
te permet de récupérer le seul target de la cellule que tu changes ( et qui
du coup du fait des fromules en fait chnager d'autres) alors que
selection_Change te permettra de récupérer dans Target, l'intégralité de la
plage sélectionnée et donc des propriétés des cellules qui la compose.
Ensuite s'il veut récupérer les formules en question, il faudra le gérer par
une autre procédure.
A+
En fait, c'est pour tout un panel de cellules que je souhaite conserver
les formules... J'ai juste un peu de mal à formaliser la chose entre
l'evenement "SelectionChange" et "Change".
En gros, le user peut écraser la formule de A1, puis C1, puis D2 et
souhaiter ensuite récupérer les formules de C1 et A1...
Voila le truc... maintenant, c'est comment récuperer la formule avant
qu'elle ne soit écrasée.
ben , faut récupérer l'ensemble des formules de la plage en utlisant for each c in selection msgbox c.formula next et il vaut meirx utiliser l'venement selection_Change que Change car Change te permet de récupérer le seul target de la cellule que tu changes ( et qui du coup du fait des fromules en fait chnager d'autres) alors que selection_Change te permettra de récupérer dans Target, l'intégralité de la plage sélectionnée et donc des propriétés des cellules qui la compose.
Ensuite s'il veut récupérer les formules en question, il faudra le gérer par une autre procédure.
A+
En fait, c'est pour tout un panel de cellules que je souhaite conserver les formules... J'ai juste un peu de mal à formaliser la chose entre l'evenement "SelectionChange" et "Change".
En gros, le user peut écraser la formule de A1, puis C1, puis D2 et souhaiter ensuite récupérer les formules de C1 et A1...
Voila le truc... maintenant, c'est comment récuperer la formule avant qu'elle ne soit écrasée.
Amiral Nimitz
Bonsour® Franck , ce que tu cherche a faire s'appelle : "PROTECTION" il suffit de dévérouiller les cellules dans lesquelles "Ton User"" peut effectuer des saisies puis de protéger la feuille, par ce priocédé les formules sont non modifiables !!! @+ wrote:
Bonjour, je cherche à effectuer le traitement suivant :
Soit une cellule contenant une formule Mon User entre dans la cellule et écrase la formule en tapant une valeur.
Comment sauvegarder la formule avant que le user ne l'écrase ? (la stocker dans une worksheet masquée sur quatre colonnes : Row, Column, Formula, DateSuppression) Afin de pouvoir faire un drawback plus tard.
Merci de votre aide.
Bonsour® Franck ,
ce que tu cherche a faire s'appelle : "PROTECTION"
il suffit de dévérouiller les cellules dans lesquelles "Ton User"" peut
effectuer des saisies
puis de protéger la feuille,
par ce priocédé les formules sont non modifiables !!!
@+
wrote:
Bonjour,
je cherche à effectuer le traitement suivant :
Soit une cellule contenant une formule
Mon User entre dans la cellule et écrase la formule en tapant une
valeur.
Comment sauvegarder la formule avant que le user ne l'écrase ?
(la stocker dans une worksheet masquée sur quatre colonnes : Row,
Column, Formula, DateSuppression)
Afin de pouvoir faire un drawback plus tard.
Bonsour® Franck , ce que tu cherche a faire s'appelle : "PROTECTION" il suffit de dévérouiller les cellules dans lesquelles "Ton User"" peut effectuer des saisies puis de protéger la feuille, par ce priocédé les formules sont non modifiables !!! @+ wrote:
Bonjour, je cherche à effectuer le traitement suivant :
Soit une cellule contenant une formule Mon User entre dans la cellule et écrase la formule en tapant une valeur.
Comment sauvegarder la formule avant que le user ne l'écrase ? (la stocker dans une worksheet masquée sur quatre colonnes : Row, Column, Formula, DateSuppression) Afin de pouvoir faire un drawback plus tard.
Merci de votre aide.
Franck
Le truc, c'est de saisir des valeurs dans des cellules remplies avec des formules Ton truc de protection, ce n'est pas bon. Je ne veux pas empecher le user de modifier une cellule remplie avec une formule Je veux que le user puisse annuler sa saisie n'importe quand et rapatrier la formule adequate...
Le truc, c'est de saisir des valeurs dans des cellules remplies avec
des formules
Ton truc de protection, ce n'est pas bon.
Je ne veux pas empecher le user de modifier une cellule remplie avec
une formule
Je veux que le user puisse annuler sa saisie n'importe quand et
rapatrier la formule adequate...
Le truc, c'est de saisir des valeurs dans des cellules remplies avec des formules Ton truc de protection, ce n'est pas bon. Je ne veux pas empecher le user de modifier une cellule remplie avec une formule Je veux que le user puisse annuler sa saisie n'importe quand et rapatrier la formule adequate...
Clément Marcotte
T'a pas à écrire utilisateur à l'école ?
"Franck" a écrit dans le message de news:
Le truc, c'est de saisir des valeurs dans des cellules remplies avec des formules Ton truc de protection, ce n'est pas bon. Je ne veux pas empecher le user de modifier une cellule remplie avec une formule Je veux que le user puisse annuler sa saisie n'importe quand et rapatrier la formule adequate...
T'a pas à écrire utilisateur à l'école ?
"Franck" <wesley.saris@gmail.com> a écrit dans le message de
news:1109256640.291158.159190@f14g2000cwb.googlegroups.com...
Le truc, c'est de saisir des valeurs dans des cellules remplies avec
des formules
Ton truc de protection, ce n'est pas bon.
Je ne veux pas empecher le user de modifier une cellule remplie avec
une formule
Je veux que le user puisse annuler sa saisie n'importe quand et
rapatrier la formule adequate...
Le truc, c'est de saisir des valeurs dans des cellules remplies avec des formules Ton truc de protection, ce n'est pas bon. Je ne veux pas empecher le user de modifier une cellule remplie avec une formule Je veux que le user puisse annuler sa saisie n'importe quand et rapatrier la formule adequate...
Clément Marcotte
Avec ton ?%$"*(*?%$&?& de user, tu commence à user la patience du monde.
fr = français pas franglais.
"Franck" a écrit dans le message de news:
Le truc, c'est de saisir des valeurs dans des cellules remplies avec des formules Ton truc de protection, ce n'est pas bon. Je ne veux pas empecher le user de modifier une cellule remplie avec une formule Je veux que le user puisse annuler sa saisie n'importe quand et rapatrier la formule adequate...
Avec ton ?%$"*(*?%$&?& de user, tu commence à user la patience du
monde.
fr = français pas franglais.
"Franck" <wesley.saris@gmail.com> a écrit dans le message de
news:1109256640.291158.159190@f14g2000cwb.googlegroups.com...
Le truc, c'est de saisir des valeurs dans des cellules remplies avec
des formules
Ton truc de protection, ce n'est pas bon.
Je ne veux pas empecher le user de modifier une cellule remplie avec
une formule
Je veux que le user puisse annuler sa saisie n'importe quand et
rapatrier la formule adequate...
Avec ton ?%$"*(*?%$&?& de user, tu commence à user la patience du monde.
fr = français pas franglais.
"Franck" a écrit dans le message de news:
Le truc, c'est de saisir des valeurs dans des cellules remplies avec des formules Ton truc de protection, ce n'est pas bon. Je ne veux pas empecher le user de modifier une cellule remplie avec une formule Je veux que le user puisse annuler sa saisie n'importe quand et rapatrier la formule adequate...
Clément Marcotte
T'a pas appris... "Clément Marcotte" a écrit dans le message de news:
T'a pas à écrire utilisateur à l'école ?
"Franck" a écrit dans le message de news:
Le truc, c'est de saisir des valeurs dans des cellules remplies avec
des formules Ton truc de protection, ce n'est pas bon. Je ne veux pas empecher le user de modifier une cellule remplie avec
une formule Je veux que le user puisse annuler sa saisie n'importe quand et rapatrier la formule adequate...
T'a pas appris...
"Clément Marcotte" <clement.marcotte@sympatico.ca> a écrit dans le
message de news:uU5oK9oGFHA.2744@tk2msftngp13.phx.gbl...
T'a pas à écrire utilisateur à l'école ?
"Franck" <wesley.saris@gmail.com> a écrit dans le message de
news:1109256640.291158.159190@f14g2000cwb.googlegroups.com...
Le truc, c'est de saisir des valeurs dans des cellules remplies
avec
des formules
Ton truc de protection, ce n'est pas bon.
Je ne veux pas empecher le user de modifier une cellule remplie
avec
une formule
Je veux que le user puisse annuler sa saisie n'importe quand et
rapatrier la formule adequate...
T'a pas appris... "Clément Marcotte" a écrit dans le message de news:
T'a pas à écrire utilisateur à l'école ?
"Franck" a écrit dans le message de news:
Le truc, c'est de saisir des valeurs dans des cellules remplies avec
des formules Ton truc de protection, ce n'est pas bon. Je ne veux pas empecher le user de modifier une cellule remplie avec
une formule Je veux que le user puisse annuler sa saisie n'importe quand et rapatrier la formule adequate...
Alain Prost
Bonsour® Franck, en fait tu veux que "Ton User" puisse faire n'importe quoi... mais tu "VEUX" que nous on te fasse un miracle pour savoir quelle formule il a modifié à regret et que les autres formules qu'il peut également avoir modifié mais sans regret , elles , soient effectivement validées.... cela tiens de la divination !!!! il n'a qu'a mémoriser ce qu'il modifie ... une autre solution serait de mettre le classeur en lecture seule ! @+
Ton truc de protection, ce n'est pas bon. Je ne veux pas empecher le user de modifier une cellule remplie avec une formule Je veux que le user puisse annuler sa saisie n'importe quand et rapatrier la formule adequate...
Bonsour® Franck,
en fait tu veux que "Ton User" puisse faire n'importe quoi...
mais tu "VEUX" que nous on te fasse un miracle pour savoir quelle formule il
a modifié à regret
et que les autres formules qu'il peut également avoir modifié mais sans
regret , elles , soient effectivement validées....
cela tiens de la divination !!!!
il n'a qu'a mémoriser ce qu'il modifie ...
une autre solution serait de mettre le classeur en lecture seule !
@+
Ton truc de protection, ce n'est pas bon.
Je ne veux pas empecher le user de modifier une cellule remplie avec
une formule
Je veux que le user puisse annuler sa saisie n'importe quand et
rapatrier la formule adequate...
Bonsour® Franck, en fait tu veux que "Ton User" puisse faire n'importe quoi... mais tu "VEUX" que nous on te fasse un miracle pour savoir quelle formule il a modifié à regret et que les autres formules qu'il peut également avoir modifié mais sans regret , elles , soient effectivement validées.... cela tiens de la divination !!!! il n'a qu'a mémoriser ce qu'il modifie ... une autre solution serait de mettre le classeur en lecture seule ! @+
Ton truc de protection, ce n'est pas bon. Je ne veux pas empecher le user de modifier une cellule remplie avec une formule Je veux que le user puisse annuler sa saisie n'importe quand et rapatrier la formule adequate...
Starwing
Salut Franck
Ce que tu demandes est impossible. Une solution envisageable serais d'utiliser une copie de ta feuille originale pour tes utilisateurs...
Sheets("Sheet1").Copy After:=Sheets(1)
-- Au plaisir de vous revoir ... Visitez >> http://www.excelabo.net Le merveilleux site de Misange Starwing
--
Salut Franck
Ce que tu demandes est impossible. Une solution envisageable serais
d'utiliser une copie de ta feuille originale pour tes utilisateurs...
Sheets("Sheet1").Copy After:=Sheets(1)
--
Au plaisir de vous revoir ...
Visitez >> http://www.excelabo.net
Le merveilleux site de Misange
Starwing
brault-lavoieNOSPAM@sympatico.ca
--