Modification code incrémentation

melba

XLDnaute Occasionnel
Bonjour,

Dans un post précédent, avec beaucoup de patience vous m'avez donné les codes qui figurent dans le fichier joint et je vous en remercie encore.

Veuillez m'excuser pour mes tâtonnements mais j'avance pas à pas dans la conception d'un fichier en n'en vois pas forcément les dysfonctionnements de prime abord.

Aussi je vous sollicite à nouveau pour savoir s'il serait possible de modifier les codes existants pour obtenir le résultat suivant :

serait-il possible d' avoir dans les cellules en violet ou j'inscris
ma distribution journalière non pas ma dernière saisie mais le cumul de ma dernière saisie avec
ce qui a été saisi précédemment ?

Dans les cellules en jaune, les choses ne doivent pas changer, il s'agit toujours du cumul entre la dernière saisie
et ce qu'il y avait précédemment.

Exemple :

Avant que j'inscrive quelque chose en D7, il y a 9 en E7 correspondant au cumul entre ce que j'ai saisi en C7
les jours précédents (ou un instant avant) et le total déjà enregistré auparavant en E7.

Actuellement ce fichier fonctionne ainsi :

Si je saisis 2 en D7, c'est 2 qui s'affiche en D7 et en E7 j'ai maintenant 11.

Le résultat en E7 me convient,

Par contre je souhaiterais qu'en D7 au lieu d'avoir 2, j'aie 3 correspondant au total de ce qu'il y avait un instant soit 1 et 2 que je viens de saisir .

Vous me demanderez pourquoi, quel intérêt?

Cela me permettrait de voir réellement à la journée ce que j'ai distribué
au premier coup d'œil, ce serait plus intéressant pour moi tout réfléchi,



Le problème c'est de mettre par exemple 2 en D7 alors qu'il y a déjà 1 , que excel fasse 2+1 et affiche 3 dans la
même cellule,

En E7 j'ai toujours 11 et c'est ok,

Est-ce possible?

Cet affichage en col D se ferait jusqu'à ce que je décide par une macro de vider l'ancienne saisie pour en recommencer une autre le lendemain. Là ça devrait aller, je pourrais créer cette macro avec VBA.

J'aurais ainsi une visibilité à la journée en D et une visibilité sur le mois en E,

Merci par avance pour votre aidre
 

Pièces jointes

  • Test incrementation et annuler 2.xlsm
    41.3 KB · Affichages: 37

CHALET53

XLDnaute Barbatruc
Re : Modification code incrémentation

bonjour,

un essai avec une macro événementielle complémentaire
J'ai rajouté deux boutons Evénementiel Out et In
Si tu veux mettre des zones à blanc (pour correction) : lance Evénementiel Out et quand tu veux reprendre le cours normal, préalablement lance Evénementiel In
cette dernière peut être utile en cas de plantage en cours d'exécution (pour relancer la procédure événementielle)

a+
 

Pièces jointes

  • melba incrementation et annuler 2.xlsm
    46.3 KB · Affichages: 32
  • melba incrementation et annuler 2.xlsm
    46.3 KB · Affichages: 38
  • melba incrementation et annuler 2.xlsm
    46.3 KB · Affichages: 35

CHALET53

XLDnaute Barbatruc
Re : Modification code incrémentation

Re,

Un petit fichier pour comprendre la gestion événementielle sur feuille 1 et feuille 2
Feuille 1
Dans la zone encadrée, si tu saisis une valeur (donc changement) : affichage d'un message
regarde le code : click droit sur le nom de l'onglet Feuil1 et choisis visualiser le code

Feuille 2
Une simple sélection dans la plage encadrée lance la procédure événementielle SelectionChange
Regarde également le code

a+
 

Pièces jointes

  • WORKSHEET CHANGE.xls
    32 KB · Affichages: 28
  • WORKSHEET CHANGE.xls
    32 KB · Affichages: 26
  • WORKSHEET CHANGE.xls
    32 KB · Affichages: 28

melba

XLDnaute Occasionnel
Re : Modification code incrémentation

Re,

Je ne comprends pas à quoi servent les 2 boutons, quand je clique il ne se passe rien ( ou j'ai omis de faire qq chose).

Autre problème, si je place le curseur dans une cellule en D, un zéro s'inscrit tout de suite ( ce qui m'embête un peu). D'ailleurs, des zéros s'affichent dans n'importe quelle cellule où je place je curseur sur le fichier.

Par ailleurs, quand je fais un clic droit sur ma saisie, cela annule ma dernière saisie mais si je clique à nouveau et encore et encore, cela retranche autant de fois la valeur écrite en C ( qui reste figée par ailleurs ).

Or le code qui existait auparavant permettait de retrancher tout ce qui avait été saisi en D avant le dernier enregistrement uniquement. Ensuite quant on était arrivé au bout de tout ce qui avait été saisi avant le dernier enregistrement la valeur de E ne bougeait plus.

Je ne sais pas si je suis très claire.

Merci pour votre avis
 
Dernière édition:

CHALET53

XLDnaute Barbatruc
Re : Modification code incrémentation

Re,

je n'avais pas fait attention à la procédure liée au click droit qui remet la colonne jaune à la valeur initiale
Pas complètement sûr de ce que tu attends
Evénemetiel out Evénemetiel In : effectivement, tu ne vois rien mais il se passe quelque chose
Evénementiel Out arrête la procédure automatique si l'événement qui devait la déclencher se produit
Evénemetiel In la réactive
Pour tester : clique sur Evénemetiel Out Ensuite saisis en D7 : il ne se passe plus rien
Clique sur événemetiel In : et refais une saisie : il se passe quelque chose
Intérêt : tu veux corriger des chiffres sans que les calculs se fassent : Evénementiel Out (ne pas oublier de réactiver)

J'ai rajouté un message sur ces deux procédures

a+
 

Pièces jointes

  • melba incrementation et annuler 2.xlsm
    47 KB · Affichages: 32
  • melba incrementation et annuler 2.xlsm
    47 KB · Affichages: 38
  • melba incrementation et annuler 2.xlsm
    47 KB · Affichages: 37

melba

XLDnaute Occasionnel
Re : Modification code incrémentation

Bonjour,

Merci pour ta proposition.

Tes évènementiels Out et In pourraient avoir un intérêt pour moi car permettraient de voir ma dernière saisie avant validation. Mais pour que cela soit intéressant il faudrait que lorsque j'utilise Out, la valeur de E change en même temps car c'est la valeur de E qui me permet dans mon fichier de savoir si je dois encore en distribuer ou pas. En effet la valeur de E impacte la colonne AC qui comporte une formule qui indique indique combien de lots je dois donner à chaque participant pour que ma distribution soit équilibrée.

Si je suis d'accord avec ma saisie quand j'utilise Out et vois le cumul en E alors je valide par IN et alors là je résultat ne doit plus changer en E et en D j'ai le cumul avec ce qui figurait un instant avant.

Le problème par ailleurs persiste, quand je fais un clic droit en D cela retranche ma dernière saisie et je fais à nouveau clic droit ça retranche à nouveau la dernière saisie et je peux continuer indéfiniment alors que en fait on devrait seulement retrancher les dernières saisies non encore enregistrées par fichier / enregistrer.

Tout cela est peut-être un peu confus?

Merci par avance de votre patience

@+
 

CHALET53

XLDnaute Barbatruc
Re : Modification code incrémentation

Bonjour,
Les deux procédures (out et in) ne peuvent être utilisées comme tu essaies de le faire.
Première question : est-ce que tu sais comment fonctionne une procédure événementielle attachée à une feuille.
si ce n'est pas le cas, je t'invite à travailler un peu avec le fichier que je t'ai proposé en post 4 qui dispose de deux procédures événementielles (feuil1 et feuil2) qui fonctionne différemment
pour les voir fonctionner, modifie un peu le code :
click droit sur le nom de l'onglet Feuil1 : choisis visualiser le code. Le stop en vert en haut de la procédure :enlève l'apostrophe devant pour l'activer
Reviens ensuite sur la feuille 1 : mets une valeur dans le cadre D1:D21 et fait entrer. La procédure se déclenche, s'arrête sur stop et tu peux continuer pas à pas avec F8
Mets aussi une valeur en dehors du cadre et déroule à nouveau la procédure à partir du stop

Fais de même sur la feuille 2 pour laquelle la procédure événementielle fonctionne différemment. C'est ce type de procédure que je te proposais pour ton problème

A la fin de tes tests, remets l'apostrophe devant stop

je ne vois pas de formule dans ta colonne AC

A te lire

a+
 
Dernière édition:

CHALET53

XLDnaute Barbatruc
Re : Modification code incrémentation

Le problème c'est de mettre par exemple 2 en D7 alors qu'il y a déjà 1 , que excel fasse 2+1 et affiche 3 dans la
même cellule,

En E7 j'ai toujours 11 et c'est ok,

Dans l'exemple que tu cites (repris ci-dessus), que veux-tu faire exactement : s'il y avait 1 avant, c'est ce dernier qui a généré le total 11 (avec le montant qu'il y avait avant, soit 10). Tu veux qu'en mettant 2, le total 11 ne change pas, autrement dit, que la procédure que t'a écrit un collègue ne s'active pas.
Si c'est ça que tu veux, comment la procédure doit-elle comprendre qu'il faut cumuler la saisie en D7 avec le chiffre présent en E7
 

melba

XLDnaute Occasionnel
Re : Modification code incrémentation

Bonsoir,

Avant ta proposition, je voulais que en E7 le cumul se fasse bien entre ce qui figurait déjà et ma dernière saisie en D7.

La modification devait porter sur D7 qui avec les codes fournis sur ce site affichait la dernière saisie et non le cumul de toutes les saisies de la journée. J'avais en effet pensé que dans une journée il était peut-être plus intéressant de voir le total de ce que j'avais saisi.

A la fin de la journée j'aurais enregistré et effacé la colonne D pour commencé le lendemain une nouvelle saisie.

Ensuite avec ta proposition je me suis dit que c'était peut-être aussi intéressant d'avoir la possibilité de voir uniquement la dernière saisie, que cette dernière saisie se cumule avec le contenu de E7 pour que je voie ce que cela fait et contrôle l'incidence sur tous les participants en AC et si je ne souhaite pas revenir en arrière je confirme par un bouton "confirmer la saisie ?" et alors là et uniquement là , ma dernière saisie en D7 se cumule en D7 avec ce que j'ai pu saisir par ailleurs au cours de la journée.

A la fin de cette opération, en D7 j'ai le cumul provisoire de la journée ( sachant que ce cumul journalier peut encore changer jusqu'au soir) et en E7 le cumul de tout ce qui avait déjà été enregistré depuis le début du mois et le contenu de D7.

J'ai voulu garder l'avantage des codes fournis auparavant sur le site et prendre en compte ce que tes évènementiels pouvaient aussi apporter.


Mais je répète que le clic droit doit annuler uniquement ce que je n'ai pas encore enregistré en quittant le fichier ou en confirmant ma saisie par un bouton.

Comme je l'ai dit précédemment je suis novice, aussi je vais suivre tes conseils et vais essayer de comprendre le fonctionnement des évènementiels dans le fichier que tu as joint.

@+ et merci encore
 

CHALET53

XLDnaute Barbatruc
Re : Modification code incrémentation

Re,

Pour voir la différence, tout en conservant l'instruction Stop active, tu rajoutes dans la procédure la ligne en gras et tu fais une première saisie en D6: vois ce qui se passe après le passage sur cette nouvelle ligne

Private Sub Worksheet_Change(ByVal Target As Range)
'Stop
If Not (Intersect(Target, Range("plage1")) Is Nothing) Then
MsgBox ("Bonjour")
range("D10").value=5
End If
End Sub

Ensuite remplace D10 par F10
Tu remarqueras que la procédure événementielle se répète.
Comme dans ton ficher, on réécrit sur la feuille dans la procédure événementielle , celle -ci se répète de nombreuses fois (sans que tu t'en rendes compte)

La technique consiste à désactiver la procédure en début de programme( type événement out) pour ne pas oublier de la réactiver en fin de programme (type événement In)

a+
 

Si...

XLDnaute Barbatruc
Re : Modification code incrémentation

salut

voici un exemple avec le cumul de saisie dans la cellule de saisie.
Pour des corrections éventuelles, j'ai rajouté une feuille par personne dans laquelle sont sauvegardées les saisies successives.
La sauvegarde du mois complet avec remise à zéro se fait par double clic.
Je ne m’intéresse guère à la protection (trop de contraintes) donc pas de réponse sur ce point.
J'ai changé quelques formules pour mieux les comprendre mais je ne sais pas ce que tu veux avec ta dernière colonne.
Pas eu le temps de tester beaucoup.
 

Pièces jointes

  • Cumuls Annulations.xlsm
    80.4 KB · Affichages: 37

melba

XLDnaute Occasionnel
Re : Modification code incrémentation

Bonsoir,

Excusez-mois pour le retard de ma réponse mais j'étais un peu souffrante ces derniers jours.

Je regarderai le fichier de Si demain et ne manquerai pas de vous tenir au courant.

Vous êtes vraiment sensationnels sur ce site, je vous redis un grand merci.

A demain
 

Statistiques des forums

Discussions
312 361
Messages
2 087 611
Membres
103 607
dernier inscrit
lolo1970