Garder la valeur d'une cellule même si suppression ou ajout ligne

Bonjour à tous !

J’espère que vous allez bien !

Noël approche et le plus beau cadeau que je puisse avoir c’est que vous m’aidiez concernant mes petits bug sur mon fichier :sweat_smile:

Alors j’ai actuellement un fichier que j’ai élaboré en m’appuyant sur des tutos, des aides diverses et en essayant. Bon il n’est pas parfait mais fonctionnel. J’ai par ailleurs quelques bugs que je souhaite résoudre mais en ayant essayé j’ai pété le code ^^ donc je préfère redemander de l’aide, s’il vous plait.

1 - Dans ma feuille « 1 » lorsque l’on double clique sur n’importe qu’elle ligne à partir de la A15, il y a une « TextBox » qui apparait afin de choisir ensuite la donnée que l’on souhaite à partir de la bibliothèque. Je souhaite pouvoir double clique QUE sur la colonne A à partir de A14 jusqu’à A52

2 - Dans ma feuille « 1 », je souhaite figé les lignes 53, 54, 55, plus précisément les formules qui sont dans les cellules de telle sorte que s’il y a suppression ou ajout de ligne, le calcul puisse malgré tout garder la cellule. En effet dans mon onglet « Feuille_Vente_Base » , colonne E, ligne 18,19,20,21,22 reprenne le résultat qui se trouve dans ma feuille « 1 » justement dans ma ligne 53, col F,H,J,L,N. C’est à dire que si on ajoute des lignes ou supprime des lignes, ça fait foiré ensuite ma formule sur mon onglet « feuille vente base ».

Je ne sais pas si j’ai été assez clair…mais en tout cas je vous remercie par avance pour votre réponse ! :smiley:

Bonne journée !
Feuille_de_Vente_2022 - V3.xlsm (386,5 Ko)

Bonjour

Ton fichier adapté

Pour le point 2 il faut impérativement que les formule colonne E ligne 18 à 22 de l’onglet « Feuille_Vente_Base » soit ciblées sur des cellules de l’onglet « 1 » qui ne bougent pas

Je les ai ciblé sur la colonne X ligne 2 à 6 de l’onglet « 1 »

Ce sont ces dernières cellules qui pointent sur la lignes appropriées « Montant global calculé » de telle sorte que tout ajout ou suppression de ligne dans ce même onglet modifiera en conséquence les formules des cellules colonne X pour qu’elles ciblent toujours la bonne ligne « Montant global calculé » en fonction de cette mouvance
Les cellules de l’onglet « Feuille_Vente_Base » colonne E ligne 18 à 22 par voie de conséquence seront toujours en relation avec les cellules appropriées de la ligne « Montant global calculé » onglet « 1 »
Seul impératif aucun ajout de ligne onglet « 1 » avant la ligne n°7 pour que les cellules X2 à X6 restent à leur place
Essaies et dis moi

Feuille_de_Vente_2022 - V3.xlsm (383,1 Ko)

1 J'aime

Bonjour FFO !

J’espère que tu vas bien !

Encore merci pour ton aide !

Pour la partie 2 , je n’avais absolument pas pensé à cette solution ! C’est compris ! Merci !

Par ailleurs, pour le point 1 , dans ton fichier quand je double - clique sur la ligne A14 je n’ai pas ma « Textbox » qui s’affiche. Voir ci-dessous :

Et pareil quand je double clique sur la colonne A53, A54, A55, cela apparait mais je ne souhaite pas que ça apparaisse. Je ne sais pas si c’est possible de restreindre…

Encore mercii !

Je n’ai traité que la partie colonne je n’avais pas remarqué que la plage des lignes n’était pas correcte
C’est corrigé dans ce fichier ci-joint

Testes et dis moi

Feuille_de_Vente_2022 - V3.xlsm (380,1 Ko)

1 J'aime

Top merci beaucoup FFO ! C’est niquel !!

J’ai une dernière question qui ne fait pas partie de la demande mais du coup si tu as une solution je suis preneuse sinon tant pis, ce n’est pas bien grave !

En gros sur l’onglet D-E Sec lorsque je rempli les lignes de la col C, une feuille se crée donc si je rempli A2, un onglet « 2 » et un onglet « SD2 » (qui apparait que lorsque l’on clique sur l’onglet 2) seront crées et ainsi de suite si je rempli A3, A4, A5 de mon onglet « D-E Sec ». Le « problème » c’est qu’à chaque fois que je rempli une désignation travaux, il me crée la feuille et me met automatiquement sur cette feuille donc je suis obligée a chaque fois de retourner sur mon onglet D-E Sec pour continuer si j’ai d’autre Désignation de Prix.
Ce que je voulais savoir c’est :

  • Si c’était possible de rester sur la feuille active (donc la D-E Sec) lorsque je rempli une désignation de travaux et donc lorsque le document se crée.
  • Si c’était possible d’accélérer le traitement également car c’est assez long à la création…

Désolée du coup pour les questions , si je suis chiante ^^’.

Encore merci beaucoup !

Testes ce fichier et dis moi

Feuille_de_Vente_2022 - V3.xlsm (383,3 Ko)

1 J'aime

Bonjour FFO,

Merci beaucoup ! C’est top !

Je vais regarder le code pour pouvoir refaire la prochaine fois.
Encore merci !

Bonnes fêtes :smiley:

Merci pour ta réponse
À ta disposition pour toute explication
Bonne fête à toi aussi
Au plaisir de te retrouver

1 J'aime

Bonjour FFO,

Je te souhaite une excellente année 2022 avec tout le positif qui va avec :slight_smile:

Pour bien commencer l’année, j’ai un problème sur mon fichier ^^’.

Lorsque je double clique en dessous de la colonne « Désignation » sur ma ligne dans la feuille 1 , un tableau apparait qui fait le lien avec ma feuille bibliothèque et lorsque je sélectionne un « thème », j’ai cette erreur qui apparait… elle n’apparaissait avant.


Feuille_de_Vente_2022 Maj.xlsm (386,6 Ko)

Peux-tu m’aider une dernière fois la vie s’il te plait…?
2022 je vais essayer de demande moins d’aide ^^’

Merci par avance !

Bonjour

Tu as un soucis avec les définitions de tes listes et leur nom utilisé dans les procédures

tes listes ce trouve ici (Formules/Gestionnaire de noms) :

Si je prend par exemple le choix MATERIELS INTERNES ici :

Je bug sur cette ligne :

La variable TABLE_MaterielsInternes pointe sur le nom TableMaterielsInternes qui n’existe dans la liste que je t’ai montré en tout début :

Ce n’est pas visiblement le nom TableMaterielsInternes qu’il y a dans cette liste mais TableMaterielsInternes13

As tu modifié ces listes en ce qui concerne leur nom ?

Il faut harmoniser ces noms avec ceux utilisé dans la procédure de formulaire

Ces noms sont définis pour cette procédure ici module Define :

Et plus particulièrement pour cette variable TableMaterielsInternes sur cette ligne de code :

Si tu rajoutes comme défini dans les listes :

au lieu de TableMaterielsInternes ceci TableMaterielsInternes13 comme ceci sur cette ligne de code :

Et de relancer ce traitement MATERIELS INTERNES :

Le miracle se produit :

adieu le bug !!!

Donc tu dois harmoniser l’appellation de ces listes soit dans la définition de ces listes proprement dite (Formules/Gestionnaire de noms) soit dans le module Define

A toi de voir mais le Pb est à ce niveau

1 J'aime

Bonjour FFO.

J’espère que tu vas bien.

Incroyable merci ! J’en apprends tous les jours.

J’ai changé les noms directement dans le Gestionnaire de Nom du coup (j’ai donc laissé le nom d’origine dans les macros).

Petite question du coup s’il te plait. Comment ça se fait qu’il s’est passé ça ? Comment ne plus reproduire l’erreur ?

En te remerciant une nouvelle fois !

Bonjour
Je ne peux te répondre sur les causes possibles qui ont engendrées cette situation
Elles peuvent être multiples
Tu devrais conserver un original qui fonctionne pour éventuellement dans ce genre de déconvenue l utiliser en roue de secours
L essentiel est que tout soit rentré dans l ordre
Au plaisir de t aider à nouveau

1 J'aime

Bonjour FFO,

J’espère que tu vas bien.
Bon décidemment je ne peux pas me passer de ton aide…

Dans mon onglet « Feuille_Vente_Base », mes celulles E18, E19, E20, E21, E21, E22, K18 et K22 doivent reprendre la somme de chacune de mes feuilles créées (1, 2, 3…) en reprenant la cellule correspondant au total de chaque intitulé. Donc E18 = Total Main d’oeuvre qui correspond à la cellule X2 de chacune de mes feuilles 1,2,3 etc…

Sauf que j’ai un problème et je n’arrive pas trop à comprendre… Dans mon module, j’ai rajouté déjà ce qu’il manquaient et j’ai changé mon formulaR1C1 afin qu’il puisse prendre en compte la cellule que tu avais mis dans colonne X

(Changement)

Le souci c’est que ça ne marche pas… Je me retrouve avec ça :

Pour tant j’ai bien un montant de renseigner dans ma feuille 1 en X2 (qui reprends du coup J53)

Je t’avoue être un peu perdue… désolée… :pensive:

Si tu pouvais une nouvelle fois me guider s’il te plait…

Passe une bonne journée !

Bonjour
Sans le fichier difficile pour moi de te répondre
Transmets le moi pour que je l étudie

1 J'aime

D’accord !

Merci.

C’est vrai que ce n’était peut-être pas assez clair…

Par ailleurs, c’est bizarre car dans ma feuille D-E-Sec, lorsque je créé une feuille, je ne reste plus sur cette feuille là… il me met automatiquement sur la feuille crée. Il me semble que tu avais réussi à contourner le problème mais ça a sauté. Pourtant je n’ai pas touché la formule.

  • Si c’était possible de rester sur la feuille active (donc la D-E Sec) lorsque je rempli une désignation de travaux et donc lorsque le document se crée.**

Encore merci !

Feuille_de_Vente_2022-V08.xlsm (420,4 Ko)

Je te renvoie ton fichier avec un code dont il faut que tu s’inspires pour alimenter en formule adaptée les cellules E18 à E22 et K18/K22 de l’onglet « Feuille_Vente_Base »
Ce code est dans la macro « test » que j’ai rajouté

Celle -ci compose la formule de somme pour tous les onglets qui possèdent en K1 la donnée « Formule Feuille_Vente_Base E18 à E22 »
Une fois la formule réalisée elle l’intègre dans la cellule E18 à E22 et K18/K22 appropriée onglet « Feuille_Vente_Base »

Fais déjà un teste en vidant d’abord toutes ces cellules et d’exécuter cette macro « test »

Puis reste à l’intégrer dans tes traitements

Pour ton onglet « D-E-Sec » que tu ne retrouves pas à l’écran lors de la création de feuille je suppose que c’est à l’exécution de la procédure « Creer »
J’ai rajouté une ligne code à cette fin

Testes et dis moi

Feuille_de_Vente_2022-V08.xlsm (412,4 Ko)

1 J'aime

Bonjour FFO,

Ta macro marche, c’est top merci !

mais j’ai plusieurs petits bugs :

  • Je souhaiterai qu’elle se lance automatiquement du coup
  • Il y a un truc qui a du sauter avec tous les changements effectués car à la base les feuilles qui sont crées sont le reflet de la feuille 1 et feuille SD1 (il y a juste le nom des feuilles qui changent). Sauf que là quand je créé mes feuilles, elles ne reprennent pas toutes les formules de ma feuille 1. A vrai dire elles ne reprennent juste pas la ligne 53…
  • Dans la macro « Créé » tu m’as dit que tu avais rajouter une ligne mais lorsque je créé une feuille, je suis quand même rediriger sur la feuille que j’ai crée… je ne reste pas sur ma feuille D-E-Sec

Feuille_de_Vente_2022-V08 (1).xlsm (485,4 Ko)

Merciii !

« Je souhaiterai qu’elle se lance automatiquement du coup »

Je t’ai réalisé une macro à part pour que tu puisses l’essayer seule

A toi de l’inclure dans tes traitements car je ne sais absolument rien de ton fonctionnement

Difficile pour moi de pouvoir l’insérer sans connaitre tout ton contexte d’utilisation de ton fichier

" * Il y a un truc qui a du sauter avec tous les changements effectués car à la base les feuilles qui sont crées sont le reflet de la feuille 1 et feuille SD1 (il y a juste le nom des feuilles qui changent). Sauf que là quand je créé mes feuilles, elles ne reprennent pas toutes les formules de ma feuille 1. A vrai dire elles ne reprennent juste pas la ligne 53…"

J’ai regardé ton code de duplication
La création du nouvelle onglet est réalisé à l’image de l’onglet « 1 »

Sheets(« 1 »).Copy after:=Sheets(CStr(.Cells(i + 19, 1) - 1))

Mais après il y a des mises à jour effectuées et notamment avec ces lignes de code :

With ActiveSheet
.Name = Sheets(« D-E-Sec »).Cells(i + 19, 1).Value
.Range(« D2 »).FormulaR1C1 = « =‹ D-E-SEC ›!R[ » & 17 + i & « ]C[-2] »
.Range(« D3 »).FormulaR1C1 = « =‹ D-E-SEC ›!R[ » & 16 + i & « ]C[-1] »
.Range(« G2 »).FormulaR1C1 = « =‹ D-E-SEC ›!R[ » & 17 + i & « ]C[-3] »
.Range(« L2 »).FormulaR1C1 = « =‹ D-E-SEC ›!R[ » & 17 + i & « ]C[-7] »
.Range(« A15:D53, E15:E53, G15:G53, I15:J53, L15:L53, N15:N53, P15:P53 »).ClearContents
End With

Plus particulièrement cette ligne à l’origine de ta déconvenue
.Range(« A15:D53, E15:E53, G15:G53, I15:J53, L15:L53, N15:N53, P15:P53 »).ClearContents

Avec cette ligne les cellules :
A15 à D53
G15 à G53
I15 à J53
L15 à L53
N15 à N53
P15 à P53
sont vidées
Donc pas étonnant ton constat en ligne 53 de l’onglet créé

A toi de dire ce que tu souhaites compte tenu de la présence d’une telle ligne de code
A supprimer à maintenir à modifier ?

" Dans la macro « Créé » tu m’as dit que tu avais rajouter une ligne mais lorsque je créé une feuille, je suis quand même rediriger sur la feuille que j’ai crée… je ne reste pas sur ma feuille D-E-Sec"

J’ai supprimé l’onglet « 4 »

Onglet « D-E-Sec » je cherche la macro « Créer » :

aucun onglet « 4 » à ce stade parmi tos les onglets en place

j’exécute cette macro :

l’onglet « 4 » vient d’être créé en bout de tous les onglets et je suis toujours sans aucune autre action sur mon onglet « D-E-Sec »

Pour moi à la création d’un nouvel onglet je reste bien sur l’onglet « D-E-Sec »

Cela fonctionne

Voila pour mes constats

A toi de dire

1 J'aime

Merci pour tes réponses précises !

  • La macro « Test » fonctionne super bien. Dans ma macro Dupliquer, il y a une section 'Mise en place des formules dans la feuille « feuille_vente_base » qui justement doit faire ce que ta macro Test fait. Je sais que je dois l’adapter mais elle est différente et j’ai peur de tout faire péter. Est ce que je ne peux juste pas « désactiver » le bloc présent dans ma macro « Dupliquer » ? (à partir de With Sheets (« Feuille_Vente_Base ») :thinking:

  • Pour la partie duplication, je souhaite que ma ligne 53 soit présent telle quelle (donc avec texte et formule) lorsque je crée mes feuille. Car actuellement mes feuilles ne reprennent pas toutes les formules que j’ai pu mettre dans ma feuille 1 (que F53 et G53 qui sont bons), ni même le texte que j’ai mis dans ma colonne A53

  • Concernant cette partie j’ai du mal à comprendre…désolée…car moi quand je suis dessus et que j’écris TEST 5, il me crée direct la feuille sans que je lance de macro et du coup il me balance sur la feuille créé. Pourtant j’ai la même chose que toi.

Mais tu m’as tellement aidé que je vais me débrouiller ^^’ t’inquiète , je suis tellement désolée d’être naze, du coup ça me gêne un peu.

Pour ton point 1 j’ai inclus dans le fichier ci-joint le code de ma macro « Test » dans celle « Dupliquer »

Pour ton point 2 je t’ai fourni des explication concernant ta déconvenue :

J’ai regardé ton code de duplication
La création du nouvelle onglet est réalisé à l’image de l’onglet « 1 »

Sheets(« 1 »).Copy after:=Sheets(CStr(.Cells(i + 19, 1) - 1))

Mais après il y a des mises à jour effectuées et notamment avec ces lignes de code :

With ActiveSheet
.Name = Sheets(« D-E-Sec »).Cells(i + 19, 1).Value
.Range(« D2 »).FormulaR1C1 = « =‹ D-E-SEC ›!R[ » & 17 + i & « ]C[-2] »
.Range(« D3 »).FormulaR1C1 = « =‹ D-E-SEC ›!R[ » & 16 + i & « ]C[-1] »
.Range(« G2 »).FormulaR1C1 = « =‹ D-E-SEC ›!R[ » & 17 + i & « ]C[-3] »
.Range(« L2 »).FormulaR1C1 = « =‹ D-E-SEC ›!R[ » & 17 + i & « ]C[-7] »
.Range(« A15:D53, E15:E53, G15:G53, I15:J53, L15:L53, N15:N53, P15:P53 »).ClearContents
End With

Plus particulièrement cette ligne à l’origine de ta déconvenue
.Range(« A15:D53, E15:E53, G15:G53, I15:J53, L15:L53, N15:N53, P15:P53 »).ClearContents

Avec cette ligne les cellules :
A15 à D53
G15 à G53
I15 à J53
L15 à L53
N15 à N53
P15 à P53
sont vidées
Donc pas étonnant ton constat en ligne 53 de l’onglet créé

A toi de dire ce que tu souhaites compte tenu de la présence d’une telle ligne de code
A supprimer à maintenir à modifier ?

Pour le point 3 je n’avait pas corrigé le bon traitement
C’est fais dans cette nouvelle version ci-jointe

Testes et dis moi

Feuille_de_Vente_2022-V08 (1).xlsm (493,5 Ko)

1 J'aime