Verrouillage d'une cellule après incrémentation
Bonjour,
Est-il possible de verrouiller une cellule ou une ligne après que celle-ci ai été incrémenter ?
Ceci afin de ne pas pouvoir effacer ce qui a été incrémenter sauf par moi-même grâce à un code d’accès par exemple.
Merci
Bonjour yoga4,
pour le verrouillage d'une cellule :
par défaut, toutes les cellules sont verrouillées ; donc faut déverrouiller les cellules où on doit faire une saisie, puis protéger la feuille ; ce que tu demandes est possible, par VBA : verrouillage de la cellule après ton incrémentation ; voici juste une piste :
Sub Essai()
ActiveSheet.Unprotect
[D5].Locked = False 'pour déverrouiller la cellule D5
[G8].Locked = True 'pour verrouiller la cellule G8
Rows(10).Locked = False 'pour déverrouiller la ligne 10
Rows(10).Locked = True 'pour verrouiller la ligne 10
ActiveSheet.Protect
End Subdhany
bonjour
salut dhany
on n'incrémente pas une cellule ! c'est mon avis.
avant, sur papier, on mettait un nombre dans une case, puis on gommait, et on écrivait le nombre incrémenté d'un autre. Et on regommait, etc.
j'ai encore un client qui fait ainsi pour les commandes de chaque client, chaque mois
sur informatique, on saisit les nouvelles données brutes dans un tableau, et on fait un TCD pour faire les sommes.
si besoin, on diffuse une image du TCD
et on peut facilement verrouiller la saisie des données, puisque dans table séparée
pas de VBA, ni aucun calcul !
Excel est conçu pour ça, nous faciliter la vie.
bon dimanche
Bonjour jmd,
Tu a écrit :on n'incrémente pas une cellule ! c'est mon avis.
* quand j'ai écrit « verrouillage de la cellule après ton incrémentation », j'ai repris les termes du demandeur : a) titre du sujet « verrouillage d'une cellule après incrémentation » ; b) dans les 2 phrases de l'énoncé : « verrouiller une cellule ou une ligne après que celle-ci ait été incrémentée ? » et « afin de ne pas pouvoir effacer ce qui a été incrémenté »
* dans tout microprocesseur Intel, y'a l'instruction inc AX pour incrémenter le contenu du registre AX ; ça augmente de 1 le contenu de AX, donc si AX contenait 5, il passe à 6 ; pour info, cette instruction est bien plus rapide (en nombre de cycles d'horloge du processeur) qu'une addition ; car avec AX = AX + 1, le registre AX doit être référencé 2 fois, et l'addition est faite par le coprocesseur arithmétique sur des nombres réels ; alors qu'avec inc AX, le registre AX n'est référencé qu'une seule fois, et l'incrémentation de 1 est faite par le processeur général sur des nombres entiers.
* pour les même raisons, y'a en langage C l'instruction i++ pour incrémenter la variable i : c'est bien plus rapide que i = i + 1 car après la compilation, c'est traduit avec l'instruction inc du processeur mentionnée au point précédent.
* par « incrémenter une cellule », le demandeur parle donc d'augmenter de 1 le contenu d'une cellule ; par exemple pour la cellule D5, en VBA, ça donne : [D5] = [D5] + 1 ; mais comme tu détestes VBA et les calculs, et qu'tu jures que par TCD et Power BI Desktop, je comprends qu'c'est quelque chose de très difficile à concevoir pour toi !
j'ai rien inventé, regarde cette copie d'écran de ton post :
dans un ancien temps, des missionnaires partaient en Afrique pour évangéliser tous ceux qu'ils considéraient comme des païens ; comme tu arrêtes pas de rabâcher que VBA est comme le diable à proscrire à tout prix, qu'il faut le combattre par tous les moyens (notamment en adoptant Power BI Desktop et en utilisant TCD et Power Query), je m'dis qu'tu dois être bien malheureux sur ces terres incultes et encore en friche du site Excel-Pratique, où il y a tant de vils païens adorateurs du dieu VBA !
si, si !
voici une autre copie d'écran très significative :
bon dimanche à toi aussi.
dhany
arf !
resalut à toi
j'ai commencé à coder en 1977 !
à l'époque, on économisait les mémoires, donc on incrémentait tout le temps (même les calculatrices avaient M+ )
mais maintenant, on fait de la gestion de données sans ce souci*. Excel est conçu et sans cesse amélioré en ce sens.
on saisit d'une part (ou bien même on va lire des données venant d'ailleurs, le wxeb, le fichier, du texte... des dizaines de possibilités)
on peut même créer des liaisons ! comme un vrai SBD depuis qq années
la solution que je propose plus haut (celle 100% Excel) permet de répondre à la question sans codage
note qu'en ce moment, je lorgne du côté de Python. Tu vois que j'aime encore un peu coder. Mais surtout pas en VBA.
ma remarque forte : il FAUT apprendre Power Query, Power Pivot et Power BI (le tout en versions gratuites). Le présent et l'avenir sont là.
note encore que je jalouse les experts en VBA que je croise souvent sur ce forum. Et j'espère, non les convertir, mais leur faire découvrir les PQuery, PP et PBI.
* sauf big data, encore que PQUery, PPivot et PBI puissent manipuler des millions de données. Tente le coup avec VBA
amitiés excelliennes