IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Contrôle de cohérence de montant entre deux pages de userform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2022
    Messages : 2
    Par défaut Contrôle de cohérence de montant entre deux pages de userform
    Bonjour,

    J'ai un Userform constitué de deux pages, afin de remplir une base de donnée Excel.
    La première page de mon userform est utilisée pour saisir les données générales avec un montant total (MONTANT TOTAL DU TITRE).
    La deuxieme page permet d'ajouter des lignes de détails.

    Le but de ce formulaire est de saisir plusieurs détails en répétant les données (sur chaque ligne de la base de donnée) déjà saisi dans les deux premières page de mon Userform.

    Exemple :
    id année tiers libellé montant total du titre détail montant du détail
    1 2022 LYCEE FACT_EQU_SPORTIF 100,00€ LOCATIONSALLE DE SPORT 25,00€
    1 2022 LYCEE FACT_EQU_SPORTIF 100,00€ LOCATION COUR DE TENNIS 25,00€
    1 2022 LYCEE FACT_EQU_SPORTIF 100,00€ FORFAIT ANNEE 50,00€
    2 2022 ECOLE FACT_PISCINE 500,00€ FORFAIT ANNEE 200,00€
    2 2022 ECOLE FACT_PISCINE 500,00€ COURS SAISON 2022 300,00€

    Dans cet exemple, le montant total du détail (colonne 7) doit être égal au montant de la ligne

    25 + 25 +50 = 100

    Jusque la, j'ai réussi à faire fonctionner mon Userform.

    Ce que je n'arrive pas à faire.

    A présent, pour éviter les erreurs de saisie, je souhaiterai que lorsque j'ajoute une nouvelle ligne de détail, il y ai un contrôle sur le montant Total du titre.
    Avec un message à l'intention de l'utilisateur du style:
    "Attention, il y a incohérence entre le montant total du titre et le montant total du détail. Veuillez vérifier votre saisie"

    1er exemple :
    montant total du titre = 100€
    détail 1 = 25
    détail 2 = 25
    détail 3 = 55
    total des détail = 105 € = incohérence

    2eme exemple :
    montant total du titre = 100€
    détail 1 = 10
    détail 2 = 20
    détail 3 = 55
    total des détail = 85 € = incohérence

    Tout en sachant que je ne connais pas le nombre de détail (ni les montants) que les utilisateurs vont saisir. Il peut y en avoir 1 comme il peut y en avoir plus d'une dizaine

    J'espère avoir été claire dans ma démonstration

    Ci-dessous mon tableau Excel

    Tableau exemple titre filienV5.xls

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    pourquoi ne pas faire une formule de type SOMME.SI() dans ta colonne (en faire une colonne calculée plutôt que saisie) ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2022
    Messages : 2
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    Salut,

    pourquoi ne pas faire une formule de type SOMME.SI() dans ta colonne (en faire une colonne calculée plutôt que saisie) ?
    Pourquoi pas. Mais je ne vois pas comment mettre en œuvre cette formule.

Discussions similaires

  1. passage d'information entre deux pages
    Par hamham dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 30/01/2007, 16h36
  2. Réponses: 2
    Dernier message: 23/06/2006, 21h45
  3. [XSL-FO] Problème de pages blanches entre deux page-sequence
    Par slopera dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 28/03/2006, 16h10
  4. Passage de données entre deux pages
    Par spica92 dans le forum ASP
    Réponses: 2
    Dernier message: 08/09/2005, 14h38
  5. passage de parametre entre deux page asp
    Par tomtom25 dans le forum ASP
    Réponses: 4
    Dernier message: 01/04/2005, 16h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo