SOMMEPROD en VBA et autre

Bonjour amis Excel, c'est mon premier post!

je suis plus que néophyte en VBA, je me débrouille en pigeant à gauche et à droite sans réellement toujours comprendre. Mais la dure réalité me rattrape toujours. Bref, voici j'ai essayé de m'inspirer de ce poste, mais visiblement je n'y comprend rien:

https://forum.excel-pratique.com/excel/conversion-sommeprod-en-vba-t12082.html

En fait, je souhaite tenir une registre de comblement, refus et justification. Le fichier a 2 onglets, une pour inscrire les données, l'autre pour compiler les données.

Dans le 1ier onglet, les colonnes courriel, téléphone accepté et refusé, j'ai incorporé la commande doubleclic pour indiqué la situation. Dans les colonnes, résultat et raison du refus, il y a une liste, je ferai de même pour les colonnes requérant et employé.

Pour l'onglet sommaire, j'ai trouvé les formules pour compiler le tout, mais je voudrais l'équivalent en VBA. J'ai tenté de démarrer le code VBA, mais je n'y arrive pas.

Ce fichier sera progressif, c'est -à -dire que des noms s'ajoutera à la liste d'employé.

J'espère que ce que je cherche n'est pas trop complexe, et soyez assurés de recevoir toute ma gratitude pour votre aide.

Merci

Salut et bienvenue sur le Forum,

Je n'ai pas tout très bien compris à ta macro, mais si tu veux placer des formules par l'intermédiaire du VBA, tu peux t'y prendre ainsi :

    For lgLig = 4 To lgLigFin
        Range("B" & lgLig).FormulaR1C1 = "=COUNTIF(Registre!R[2]C[1]:R[96]C[1],RC[-1])"
        Range("C" & lgLig).FormulaR1C1 = "=SUMPRODUCT((Registre!R6C3:R200C3=RC[-2])*(Registre!R6C8:R200C8=Registre!R1C11))"
    Next lgLig

J'ai mis ce code dans ton fichier avec une ou deux modifications en plus. En fait, j'ai généré ces formules par l'enregistreur de macro.

A te relire.

Bonjour Yvouville

Déjà, merci pour votre intérêt!

l'idée de la macro est: pour chaque employé avoir un décompte du nombre de fois qu'il a accepté ou refusé un remplacement, et aussi quantifier leur justification (raison personnelle, travaille déjà, sans raison). La feuille registre est un peu comme l'historique des appels au personnel, et la feuille le sommaire de leur décision (info à conslter).

Pour l'onglet sommaire, le code que vous me proposez fait apparaître en colonne B notamment, la formule =NB.SI(Registre!C6:C100;A4) pour Éric par exemple, mais pour le second employé la plage passe de C7:C100, alors que celle-ci devrait être la même pour chaque employé. Je souhaite avoir un code qui va respecter les plages ciblées de la feuille registre. À cette feuille, des lignes seront ajoutées au fur et à mesure qu'il sera nécessaire (à moins d'avoir une autre solution).

Aussi, je croyais qu'il était possible qu'en inscrivant un code VBA les formules n'apparaissent pas dans les cellules comme dans le fichier joint, voir feuille (2).

Pour terminer, j'aurais aimé aussi que le bouton mise à jour soit sur la feuille registre plutôt que sur la feuille sommaire. Ainsi, lorsque j'ai terminé de saisir des données au registre, je clique, et la mise à jour du sommaire est complété. Peut-être aussi que ce bouton de commande n'est pas nécessaire.

J'espère avoir été plus clair.

Merci encore

11v1yxvdonnee.zip (16.65 Ko)

Salut,

Tu as dû te tromper de fichier, le dernier fourni n'a rien à voir avec le premier que tu nous as présenté

A te relire.

Salut bien,

non, c'était à titre d'exemple pour illustrer le fait qu'il peut y avoir un code VBA sans que les formules apparaissent dans les cellules qui comptabilisent les données. Dans la feuille (2), si vous consultez les cellules des colonnes entre I et M, on ne voit pas les formules, et si vous effacez les données de ces même colonne, et cliquez ensuite sur le bouton de commande en haut à droite, la mise à jour se fait.

J'aimerais avoir l'équivalent au niveau du sommaire pour les colonnes de B à G, dont les résultats viennent de la feuille Registre.

Re,

Je trouve que tu as une manière un peu emberlificotée de poser ton problème.

VDMICHEL a écrit :

Aussi, je croyais qu'il était possible qu'en inscrivant un code VBA les formules n'apparaissent pas dans les cellules

Avec le VBA, tu peux soit écrire des formules dans une cellule, soit écrire directement le résultat (de 3 à 4000 manières différentes).

Dans le fichier ci-joint, tu devais avoir la solution à ton problème ; à chaque fois que tu sélectionnes la feuille « Sommaire », elle est réactualisée automatiquement en fonction des modifications apportées à la feuille « Registre ».

A te relire.

WOW, C'est super. Merci infiniment.

Toutefois, si vous me permettez, j'espère que vous ne vouliez pas dire par «manière emberlificotée» que je cherchais familièrement à embrouiller pour tromper!

Il n'est pas toujours facile d'être explicite par ecrit pour le genre de problème que l'on rencontre avec Excel.

Mais plus important encore, merci encore et à bientôt.

Salut,

Tant mieux si tu as ta solution.

VDMICHEL a écrit :

…j'espère que vous ne vouliez pas dire par «manière emberlificotée» que je cherchais familièrement à embrouiller pour tromper!

Non, bien entendu que non ; j'utilisais ce mot plutôt dans le sens "empêtrer" Je voulais simplement dire que tu n’as pas été droit au but (avoir certains résultats sur la feuille « Sommaire » sans passer par des formules) mais que tu as utilisé deux méandres : 1) en parlant de ta formule pour laquelle tu avais effectué des essais visibles dans tes codes et 2) en envoyant ce fichier « ennemi » qui n’avait rien à voir avec ton problème.

Merci dans tous les cas d’avoir indiqué ton fil comme « Résolu », ce que trop de membres oublient.

Amicalement.

Rechercher des sujets similaires à "sommeprod vba"