Précédent, suivant et modification instantané (Userform)

Bien les salutations à tous.

S'il vous plaît, j'aimerais que vous m'aidiez à élucider mon problème.

Jai une feuille sur laquelle j'établis des factures, elle déjà OK.
Lors de l'enregistrement de ladite feuille, je souhaiterais que celui qui établit la facture soit librement appelé à effectuer un dernier pointage des cellules à remplissage manuel, soit (Colonnes B, C, D, E et G).
Ci-joint, une ébauche.

Merci aux personnes qui se pencheront sur mon sujet

Bonjour,

25 consultation et 9 téléchargements, mais pas de réponse : Visiblement je ne suis pas le seul qui ne comprend pas...

Peux tu reformuler la question pour clarifier le besoin ?

A+

Bonjour,

25 consultation et 9 téléchargements, mais pas de réponse : Visiblement je ne suis pas le seul qui ne comprend pas...

Peux tu reformuler la question pour clarifier le besoin ?

A+

Bonjour Galopin01 et Merci de me faire la remarque,

J'aimerais activer les boutons précédent et suivant de mon formulaire.

dans la plage B21:J160

Activer les boutons c'est pas compliqué. Ce qui est incompréhensible c'est le reste...

En particulier tu veux faire un pointage sur des TextBox Enable = False.

Par contre le seul qui est Enable = True c'est le Cubage or il ne faut pas en tenir compte ?

On peut supposer diverses choses, je penche plutôt pour celle-ci tu fais un peu n'importe quoi sans comprendre !

Si tes contrôle sont Enable = False cest que tu n'as pas besoin de UserForm : Dans ce cas il suffit de vérifier ligne par ligne sur la feuille.

Si tu comptes modifier les valeurs à partir du UserForm, Il faut que ton bouton Valider écrive les modifications que tu as faites sur le UserForm.

Nota : Les cmdMouse_Move sont complètement hors de propos et contre indiqués dans ce contexte.

J'ai donc fait "à ma sauce"... mais boutons Suivant et Précédent sont à mon avis inutile sauf si tu as un peu envie de jouer avec :

Dans tous les cas le bouton Valider valide la ligne en cours qu'elle ait été modifiée ou non... puis passe à la ligne suivante jusqu'à ce que la dernière ligne ait été contrôlée.

Le problème c'est après : Comme tu as demandé que le contrôle se fasse :

"Lors de l'enregistrement de la dite feuille..." le Formulaire refait son apparition à la fin quand tu fermes le classeur : C'est un peu le serpent qui se mord la queue...

Ça sera à toi d'arbitrer le moment ou tu lances ton UserForm sur ton bouton Enregistrer et dans ce cas tu supprime la macro qui se trouve dans ThisWorkbook.

Bref l'apparition de ce UserForm ne devrait pas être synchronisé avec l'enregistrement.

En fait pour moi ce UserForm n'a pas lieu d'être une fois la facture remplie la validation pointage est censée être terminée. Ce me semble être illogique de relancer une validation... Mébon : C'est toi le chef !

A+

Merci, je pourrais utiliser ton ébauche et m'en tenir pour

faire mon projet, merci beaucoup !

Toutefois, peux-tu bien m'expliquer les étapes du process ?
Je pouvais bien le faire mais, j'ai pas su bien penser pour

organiser et réussir si brillamment à restituer mes idées.

Ça me semble difficile : Tu me demandes de faire un livre !

Toutefois je veux bien répondre à des questions sur des points précis que tu ne comprends pas.

Le point de départ c'est ton exigence d'effectuer ces contrôles lors de l'enregistrement.

Pour cela c'est la macro qui se trouve dans le module ThisWorkbook qui lance le UserForm avant l'enregistrement proprement dit.

Au risque de me répéter : Ce ne me semble pas une idée pertinente mébon...

Si on admet qu'on doit procéder ainsi, après... J'ai fait un peu de ménage.

Tout d'abord une remarque fondamentale : il n'est pas possible d'enregistrer une feuille : C'est... le classeur ou rien du tout !

Dans cette situation j'ai considéré que le classeur ne comportait que cette feuille. Ainsi le UserForm ne peut s'appliquer qu'à cette feuille.

Après si le classeur comporte plusieurs feuilles moi je peux rien pour toi : D'ici avec ma boule de cristal et avec le bout de classeur que tu me donnes je ne peux pas deviner à quelle feuille parmi plusieurs pourrait s'appliquer le UserForm que tu veux lancer au moment tu enregistre le classeur...

Cette idée me semble illogique. (Vérifier une parmi plusieurs feuilles lors de l'enregistrement) En principe on n'enregistre qu'un travail terminé (ou à terminer) mais ce n'est pas le fait d'enregistrer qui devrait te signaler ce que tu dois faire. A mon avis le pointage d'une facture se fait avant l'impression ou avant l'envoi par email... Alors que l'enregistrement du classeur peut se faire à n'importe quel moment.

Cependant j'ai poursuivi dans ce sens puisque tu m'a précisé que seul la mise en action des boutons Suivant et Précédent t'intéressait.

Ce process est connu : il suffit de lier la ligne (iR) de l'enregistrement aux données affichées donc pour Suivant c'est iR = iR +1

et pour précédent iR = iR -1

..Avec pour restriction qu'on ne doit pas sortit de la plage (de mémoire de 20 à 120 environ...)

Tu remarqueras qu'iR n'est pas la ligne active En VBA on essaie de ne jamais activer quoi que ce soit, c'est une perte de temps inutile.

iR est le N° de ligne dont on parle point final.

iR est le N° de ligne qu'on lit : ReadRecord

iR est le ligne ou on écrit : WriteRecord :

La ligne ou la cellule sélectionnée n'a rien à voir dans l'histoire... J'ai simplement fait e sorte que la ligne affichée soit mise en surbrillance à chaque fois que tu cliques sur suivant ou précédent. (Mais ça ne change pas la sélection...)

A part ça j'ai supprimé tous les évènement Mouse_Move qui n'ont rien à voir non plus dans ce problème : L'évènement Mouse_Move est un évènement long qui se produit pendant tout le temps ou tu bouges ta souris à raison de plusieurs fois par seconde et même par millisecondes.

C'est dire que si tu initialize ton Userform plusieurs dizaines de milliers de fois pends une seconde c'est pas vraiment étonnant que tonUserForm il aie la tremblote.

Il en va de même pour les boutons : Si tu promènes ta souris pendant 2 ou 3 secondes sur chaque bouton, on a l'impression que ton UserForm il souffre d'Alzeimer...

A+

Merci Galopin01.

J'ai pu adapter ton code à mes besoins.

Merci.

Merci du retour.

A+

Rechercher des sujets similaires à "precedent suivant modification instantane userform"