Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sauvegarder la formule d'une cellule lorsqu'elle est écrasée

11 réponses
Avatar
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.

Merci de votre aide.

10 réponses

1 2
Avatar
anonymousA
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.

Merci de votre aide.




Avatar
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.
Avatar
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.




Avatar
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.


Avatar
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...
Avatar
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...



Avatar
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...



Avatar
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...






Avatar
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...


Avatar
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

--
1 2