Macro de bloquage après Validation

Bonjour,

Je cherche depuis plusieurs jours une réponse que je ne trouve pas

Voici mon problème

feuille comptable pour l'achat d'aliment bio

Je voudrais empêcher la modification d' une cellule après validation

Mais pour compliquer la chose celle ci est lier à une donnée qui peut changer de valeur

Je m'explique: Feuille 1 "mois en cours" cellule D10 lier à la feuille 13(nommer ésignation) colonne C "Mercurial"

donc mercuriale =prix d'achat du produit qui est variable

Lorsque modifie la Mercurial ,toute les données déjà enregistrée se modifient

je souhaiterai le faire en via

si une personne peut m'aider à créer la macro

Merci

9bio-2c.xlsm (328.39 Ko)

Bonsoir,

Faut mieux observer ton fichier pour éviter de substituer col. D à col. E et Feuil13 à Feuil12.

Tu règlerais facilement ton problème immédiat en écrasant les formules pour ne laisser que les valeurs, mensuellement ou lors de changement de tarifs.

La mise en place d'un système de saisie pourrait être intéressante, mais je pense que ce serait plus efficace sous forme de base de données unique. A partir de là tu pourrais réaliser toutes les extractions, mensuelles ou autres que tu peux souhaiter.

Cordialement.

bonjour,

Je te remercie de ta réponse rapide, mais je suis un jeune d'en l'informatique et un débutant dans excel et donc si tu peux m'expliquer ce que tu as écris

Ce que je comprends c'est qu'il faut que je retire la formule de la Colonne D, mais ensuite c'est là que je coince

Mais l'idée de Valeur me plait mais je fais comment?

Bonjour,

Manuellement, pour écraser des formules, tu copies la plage et tu la colle sur elle-même en valeurs uniquement, cela fait disparaître les formules.

Si on fait en VBA, on fera plus court :

....
    .Range(xxxx).Value = .Range(xxxx).Value
...

Maintenant, pour faire évoluer ta configuration, ce que je considère comme le plus efficace :

  • une seule base de données (ou tu saisis les données brutes), sans mise en forme, ce sera ta source
  • éventuellement mettre en place un Formulaire de saisie, qui la facilitera et fera les calculs (évitant toute formule)
  • une feuille mise en forme pour l'extraction mensuelle, avec une procédure d'extraction VBA qui te permettra d'extraire n'importe quel mois (et tu n'as pas à t'encombrer d'une feuille par mois)
  • (solution alternative ou complémentaire : des TCD à partir de la base...)
  • et tu peux éventuellement envisager d'autres extractions que l'on pourra réaliser de la même façon...

Cordialement.

Je fais des testes mais je n'évolue pas,

Peux tu me dire comment je modifie la formule =SI(B10="";"";RECHERCHEV(B10;Designation!A:C;3;0)) pour mettre la valeur réel

ou comment écrire la macro

Merci

Je l'ai écrit au-dessus ! On ne modifie pas la formule, on l'écrase pour la remplacer par la valeur renvoyée.

Si je comprends bien , j'écrase toute les formules. Ensuite je vais dans VBA et je colle la formule dedans ce qui me fera le même boulot

Evite d'extrapoler, et ne comprends que ce qui est écrit.

Tu écrases les formules manuellement. Et une fois que c'est fait, c'est fait !

Tu les écrases en utilisant une macro.

Par exemple :

Sub Ecraser()
    Selection.Value = Selection.Value
End Sub

Là tu sélectionnes une plage où tu veux écraser les formules, tu lances la macro, et elle fait.

Tu peux affecter un raccourci clavier à la macro pour la lancer plus facilement.

Et pareil, une fois écrasé, c'est écrasé !

Bon une fois que j'ai tout écraser, je procède comment

pour mon tableau

Je suis désolé mais je me noie

Tu n'écrases que ce qui est à écraser !

Une fois écrasé, c'est fini, les valeurs ne bougeront plus.

Ce que je comprends c'est que ma mercuriale ne me sert a rien

Je reviens a mon point de départ

j'ai enfin compris ton principe, ,mais il n' y a pas moyen de faire avec une formule du genre lorsque la cellule na pas changer ,garder la formule sinon copier collage valeur

"PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False"

"pris sur le net"

C'est bon,

j'ai trouvé une solution qui n'est pas parfaite mais qui me permet de bosser tranquille

J'ai fais une sauvegarde protégée de la première feuille pour avoir les formules et macro en place

Tu m'as donne l'idee et voici ce que j'ai fait

Ca pourra servir à d'autre

Sub Validation()

Dim i As Integer

i = Application.WorksheetFunction.Match("", Range("E:E"), 0)

Range("E10:E" & i - 1).Copy
Range("E10").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False

Range("A" & i).Activate

ThisWorkbook.Save

End Sub

E étant la colonne que je voulais figer

Merci et encore merci pour ta patience

Rechercher des sujets similaires à "macro bloquage validation"