Remplacer automatiquement une formule par sa valeur [Fermé]

Signaler
-
Messages postés
12598
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 septembre 2020
-
Bonjour,

J'ai une macro qui permet d'archiver les lignes dont la date de retour effective (colonne "M") est renseignée et la colonne "Complet" (colonne "N") contient "X", grace à via55, tout fonctionne très bien.

Par contre dans la feuille "Sortie presse RTW", j'ai inséré une formule qui permet d'insérer le n° chronologique suivant en fonction des n° de la feuille "Sortie Presse RTW" et "Archive..."

Il faudrait que lors de l'archivage, la formule dans la colonne "N° de sortie" soit remplacée par la valeur, sinon, elle n'est pas prise en compte.

Aussi, lorsque je supprime ou insère des lignes, ça ne fonctionne plus.

Voici le fichier :

http://cjoint.com/?0Iokqwzsg7O

Merci d'avance à celles et ceux qui m'aideront.

Bien cordialement

19 réponses

Messages postés
12598
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 septembre 2020
1 991
Bonsoir

Plutôt que d'utiliser une formule se basant sur les 2 feuilles et qui plante justement lors des modifications de lignes, à ta place j'utiliserai une macro qui à chaque nouvelle entrée en colonne B incrémente de 1 une valeur conservée dans une cellule d'une autre feuille (celle de données par ex) et recopie cette valeur en colonne A. De cette manière les n°s dans les 2 feuilles seraient fixes, sans risque d'erreur ni d'attribuer 2 fois le même n°

Cdlmnt

"L'imagination est plus importante que le savoir." A. Einstein
Bonjour,

Je ne comprends pas trop ce que tu veux dire et je ne connais vraiment que des rudiments des codes macro et suis bien incapable de créer ce que tu me suggères.

Je suis un peu gênée de te demander cela, j'ai un peu l'impression d'abuser, mais te serait-il possible de me le créer ?

Bien cordialement
Messages postés
12598
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 septembre 2020
1 991
Bonjour gaguas

Suffit de demander : https://www.cjoint.com/?0IpsiDen8Xr

L'ajout d'une publication en colonne B à la suite des autres incrémente le compteur en M2 de BD et le nouveau n° est placé en colonne A

J'ai crée ainsi une ligne avec le n° 13 pour essai, lorsque tu effaceras cette ligne n'oublie pas après de remettre le compteur en M2 à 12

Cdlmnt
Bonsoir,

Tout d'abord merci.

Par contre, la macro ne prend pas en compte les n° de ma feuille archive et si je supprime la dernière ligne crée, le compteur ne redemarre pas.

J'ai une idée, mais je pense que ça va créer une référence circulaire et en plus,
j'ai des idées, mais je ne sais pas les mettre en oeuvre :-(

Si dans la macro, on lui dit de rechercher la valeur :

max(SortiePresseRTW;SortieArchivePresseRTX)

Est-ce possible ?

http://cjoint.com/?3IpsFA9pMro

Bien cordialement
Messages postés
12598
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 septembre 2020
1 991
Re,

La macro n'a pas à prendre en compte les n°s de la feuille archive

Par définition chaque ajout dans la feuille Sortie attribue un nouveau n° à cet ajout et incrémente le compteur en BD; de cette manière en aucun cas le même n° peut être attribué à 2 publications différentes

Ce n'est que lorsqu'une action est terminée qu'elle est transférée dans Archives avec son N° d'origine (pour suite éventuelle) que ce n° soit indiqué dans la colonne A de SORTIE tant que l'action n'est pas clôturée ou dans la colonne A d'ARCHIVES une fois l'action transférée n'a pas d'importance; ce la n'a aucune incidence sur le compteur qui se met à jour à chaque entrée d'action nouvelle

Les n°s dans ARCHIVES n'ont pas à être supprimés ou modifiés (ce serait dangereux !)

Par contre si suite à une erreur tu supprimes la dernière ligne dans SORTIE, par exemple celle qui porte le n° 15, le compteur reste toujours à 15 et il faut manuellement le remettre à 14 avant de poursuivre pour éviter un trou.

Mais en principe il n'y aurait aucune raison de supprimer une ligne déjà créee, soit elle est en cours et elle existe, soit elle est cloturée et on l'archive

Cdlmnt
Bonsoir,

Effectivement, du fait que dans la feuille "BD", le dernier n° créé est conservé, il n'est pas nécessaire de faire une recherche sur la feuille "Archives"

Je suppose que je ne copie pas le code au bon endroit dans mon fichier, ça ne fonctionne pas dans mon fichier d'origine

Ci-joint la copie d'écran de la macro que j'ai inséré à partir de la feuille "Sortie Presse RTW"

http://cjoint.com/?3IpuUpuxbII

Désolée, je ne suis vraiment pas douée.

Cordialement
Messages postés
12598
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 septembre 2020
1 991
Re

Apparemment tu l'as bien insérée au bon endroit

La manip c'est double clic sur Feuil8(SORTIE PRESSE) dans l'arborescence à gauche et coller la macro dans la page blanche à droite

La macro fonctionne bien dans mon fichier, il n'y a pas de raison que ça ne marche pas dans le tien

Si tu n'y arrive pas envoie moi un extrait copie de fichier d'origine (même avec toutes les lignes vides) et je regarderai

Cdlmnt
Bonjour,

C'est bon, je n'avais pas fait la bonne manip pour insérer ma macro, je l'ai copié dans une autre feuille de même structure en modifiant la cellule de référence en"BD" et ça marche aussi, super.

Par contre, si je saisi en "B", ça incrémente mon numéro chrono, mais si je me rends compte que j'ai fait une erreur de saisie, j'efface mon texte pour le ressaisir, ça passe au n° suivant, j'ai donc un gros risque de sauter des numéros.

Merci

Cordialement
Messages postés
12598
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 septembre 2020
1 991
Bonjour

Exact !

je vois pour l'instant 2 solutions :

- soit on fait afficher chaque fois une demande de confirmation de création d'un nouveau n°, lais cela peut être fastidieux à la longue
- soit on ne fait plus incrémenter le compteur au remplissage de la colonne B mais par une double-clic dans la cellule de la colonne A

Laquelle préfères-tu ?

Cdlmnt
Re,

Dans les deux cas, le n° sera figé définitivement ?

Je pense que le double clic serait pas mal.

Est ce que la cellule de référence sera toujours "M2" ?

Si ce n'est pas le cas, il faudrait que la macro prennent en compte la feuille "Archives" car si j'archive le dernier n°, je me retrouverais avec 2 fois le même n°.

mon idée de max(NumSortiePresseRTW;NumArchiveSortiePresseRTW) n'est pas réalisable ?

Un grand merci pour ton aide et ta patience

Cordialement
Messages postés
12598
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 septembre 2020
1 991
Re,

Oui le n° est figé mais non protégé (pour cela il faudrait verrouiller les cellules de la colonne A et protéger la feuille; mais il faudrait alors rajouter une ligne dans la macro qui déprotège la feuille avant d'y inscrire le n° et la reprotège ensuite)

https://www.cjoint.com/?0Iqq65biBPc

Un double-clic en colonne A incrémente le compteur en M2 et inscris le dernier n° dans la cellule en A (si pas de ligne laissée vide toujours)
Si on essaie d'inscrire en colonne B alors qu'il n'y a pas un n° en A un message rappelle de double-cliquer en A

Les n°s dans la feuille archives n'ont aucune importance puisqu'ils ont été en leur temps incrémentes dans le compteur lors de la création de la ligne dans Sortie, c'est pourquoi ton idée de max est réalisable mais ne servirait à rien, la référence étant bien M2 et pas autre chose

Par contre si tu veux supprimer la ligne du dernier n° entré dans Sortie (rectification d'une erreur) il faut penser à aller rectifier le compteur en M2 manuellement; par contre si c'est juste la rectification d'une donnée en colonne B ou suivantes, le n° n'est pas touché et il n'y a pas lieu de changer en M2 bien sûr

En fait une amélioration possible serait de créer une userform pour rentrer ou modifier les données la feuille Sortie étant protégée entièrement et ce sont des macros qui rempliraient la feuille Sortie à validation de l'userform mais cela suppose un important travail de macros...

Cdlmnt
Bonjour,

Ca marche.

Ne te lance pas dans la création d'une Userform, ce que tu as fait est déjà génial pour moi.

Par contre, ton idée de déprotéger et reprotéger la feuille, ainsi que de faire un tri du plus petit au plus grand sur la colonne "A", via la macro "archivage" , j'y avait pensé pour la feuille d'archives afin de ne pas supprimer par erreur une ligne.

Est-ce que ça te prendrait beaucoup de temps ?

Après je ne t'embête plus sur ce sujet.

Bien cordialement et encore merci.
Messages postés
12598
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 septembre 2020
1 991
Bonjour

Tu ne m'embêtes pas (sinon je ne serai pas là !)

La modification est simple pour la protection
Quant au tri doit-il se faire systématiquement lors de chaque archivage ou tu préfères le lancer toi même quand tu veux ?

Veux tu proteger la feuille simplement ou plus complétement par un mot de passe ?

Cdlmnt

"L'imagination est plus importante que le savoir." A. Einstein
Re,

Je préfèrerais que le tri se fasse automatiquement à chaque archivage.

Protection simple sans mot de passe.

Cordialement
Messages postés
12598
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 septembre 2020
1 991
Re

Voilà :

https://www.cjoint.com/?0IrmD3uHfQ5

Bonne suite

Cdlmnt
Re,

Tout fonctionne, mais la numérotation m'interroge tout de même, si malencontreusement, je clique deux fois sur une cellule (en colonne "A") contenant déjà un numéro, ça la renumérote. Ca demande une extrème vigilance, sachant que je ne serai pas la seule utillisatrice, ça me fait un peu peur.

J'ai essayé de verouiller la colonne "A" mais ça ne fonctionne plus.

On ne peut pas de façon simple lui dire en M2 d'aller chercher la valeur max de la plage "NumSortieRTW" ?

Je pensais vraiment que solutionner mon problème de numérotation allait être plus aisé que cela. Comme quoi, quand on n'y connait pas grand chose, tout paraît simple.


Cordialement
Messages postés
12598
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 septembre 2020
1 991
Bonsoir

Tu as raison il faut essayer de penser à tout et d'anticiper les mauvaises manips et c'est pas évident !
C'est pour ça qu'avec une gestion par userform c'est plus lourd au niveau macro mais il n'y a jamais d'intervention directe sur la feuille

Pour résoudre le problème j'ai verrouillé la colonne A (en ayant d'abord defusionné les cellules fusionnées qui sont une plaie pour les formules et les macros !) et activé la protection de la feuille (sinon le verrouillage n'a aucun effet)

Plus moyen d'entrer ou de modifier un n° manuellement (sauf à deprotéger d'abord la feuille)
Le double-clic doit s'effectuer maintenant en colonne B (j'ai modifié la macro en ce sens) et dans la première cellule vide en dessous de celles existantes

En espérant que cela te conviendra, mais on peut réfléchir à des améliorations encore, de toutes façons c'est en testant qu'on voit ce qui ne va pas !

https://www.cjoint.com/?0IruSQHqc10

Bons tests !

Cdlmnt
Bonjour,

Ca m'a l'air vraiment plutôt bien tout ça.

Je prends peut-être quelques jours pour tester avant de clore le sujet, qu'en penses-tu ?

Avec tous mes remerciements et toutes mes félicitations

Bien cordialement
Messages postés
12598
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 septembre 2020
1 991
Re,

Oui testes dans tous les sens !

A+

Bien cordialement