Ecrire une formule complexe dans une cellule avec nom variable de classeur

Bonjour à tous !

Premier message ici, j'espère faire les choses de la bonne façon.

Je suis sur mon premier projet Excel, et j'avance à tatillon. Là, je bloque sur quelque chose qui me donne de sacré noeuds au cerveau, c'est pourquoi je viens demander de aide à une âme charitable d'ici ! Je joints mon fichier excel de travail, il n'y a que des données fictives dedans.

La problématique :

Je souhaiterais lorsque je crée un nouveau parcours en appuyant sur le bouton correspondant (en haut à droit en jaune) ( qui m'ouvre un formulaire où je rentre le nom de mon nouveau parcours) ecrire dans les cellules correspondantes aux colonnes "Nombres de step complété" et "Nombre de step total" la formule que j'ai surligné en jaune, mais avec le bon nom de parcours.

Exemple, je crée un parcours "exemple" à la suite du parcours ronald : je souhaiterais qu'en C23 soit rempli la formule comme suit : "=NB.SI(Parcours_exemple!A14:Parcours_exemple!Z14; "100%")"
et qu'en D23 il y ait la formule comme surligné le screen joint avec "Parcours_exemple" au lieu de "Parcours_Ronald".

image

D'un point de vue VBA, voici mon code lorsque je créer mon nouveau parcours (pardonnez le code un peu fouilli et non opti, j'essaie des tonnes de choses et laisse pas mal de code en commentaire (désolé pour le trait jaune c'était une erreur).

image image

En faisant comme cela, je récupère des valeurs telles que je le souhaite 1 fois, à la création de la ligne du parcours; mais je n'ai pas l'auto update que je souhaite, à savoir que dès qu'un step est crée ou complété cela augmente le compteur correspondant.

Je cherche donc à écrire la formule avec le nouveau nom de parcours ("Parcours_" + ComboBox1 en terme de code) en Range' ("C" & L).Value et Range ("D" & L).Value.

J'ai essayé des choses comme
'Range("C" & L).Formula = "=COUNTIF(" + Range("E" & L).Value + "!A14:" + Range("E" & L).Value + "!X14; " * 100 * ")"
'Range("D" & L).Formula = "=COUNTIF(" + Range("E" & L).Value + "!A4:" + Range("E" & L).Value + "!X4; " * STEP * ")"

Mais ça ne fonctionne pas :(

Est-ce que quelqu'un aurait une idée là dessus s'il vous plait?

N'hésitez pas à me dire s'il y a une zone d'ombre dans mon explication. Je vous conseille de regarder la structure de mon fichier, cela peut vous eclaircir sur pourquoi je dois passer par des boutons etc...

Merci pour votre aide !!!

Bonjour excelvbanoob,

C'est effectivement un peu confus comme explication et code.

Comme il n'y a pas de fichier joint c'est difficile de se faire une idée plus réaliste.

De ce que j'ai compris tu essayes d'avoir un parcours personnalisé pour un dossier donné en partant d'un parcours type.

Tu veux pour chaque étape du parcours personnalisé extraire le nombre d'étapes de ce parcours et le nombre d'étapes réalisées et les reporter dans ta feuille principale.

Si c'est ça il va falloir le fichier pour pouvoir se baser dessus.

Bonjour Funkyfoenky,

Oui c'est exactement cela, tu as bien compris ma problématique !

Je suis sincèrement confus pour le fichier, je l'avais joint mais j'ai dû faire une mauvaise manipulation.

Le voici j'espère, et désolé pour le faux départ :

excel-pratique.xlsm

Pour indication, le code que j'ai montré correspond au Userform2, qui est le formulaire correspondant au bouton que j'ai montré en image

Bonjour ExcelVBAnoob et

Une petite présentation ICI serait la bienvenue

Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aidera dans vos demandes et réponses sur ce forum et notamment :

  • Ne postez pas la même question sur un autre forum pour éviter de faire perdre bêtement du temps aux membres sur un problème qui peut être déjà résolu sur l'autre forum. L'inverse est également valable, si vous avez déjà posé votre question sur un autre forum, ne créez pas un doublon sur ce forum (à moins d'avoir clôturé le sujet sur l'autre forum).

J'ose espérer que ce n'est pas le cas

Ainsi que sur les fonctionnalités (Nouveau Forum)

Merci de votre participation

Cordialement

Après avoir ajouté une activité via la copie de l'onglet Parcours_type, tu ajoutes manuellement des steps dans le nouvel onglet?

Modérateur : je me suis présenté :)

image

Funky : j'utilise ce bouton pour automatiser "ajouter une colonne et décaler tout à droite". Cela créer un nouvel espace avec le même formatage que le reste du tableau.

La saisie des step et du pourcentage de complétion se fait cependant manuellement (pour un peu de contexte, c'est un fichier de suivi de coaching de personne. Le remplissage doit donc se faire manuellement et il faut donner la flexibilité de modifier l'ensemble des cases régulièrement). J'avais penser à intégrer un compteur s'incrémentant à l'appui du bouton, mais cela ne permettait pas de gérer la délétion éventuelle d'un step à moins de faire un autre bouton deletion, c'était un peu trop lourd pour les besoin du coach pour qui je développe cet outil

C'est pour cela que j'utilise donc une formule excel qui compte le nombre d’occurrence de l'expression "STEP" sur la ligne 4 et l'occurrence de l'expression "100" ligne 14 pour récupérer les données qui m’intéressent.

Bon il y a bcp de choses à optimiser mais si on reste focus sur ce que tu veux il faut ajouter les lignes suivantes à ton code:

Range("C" & L).FormulaR1C1 = "=COUNTIF(Parcours_" & ComboBox1.Value & "!R14C1:Parcours_" & ComboBox1.Value & "!R14C27, ""100%"")"
Range("D" & L).FormulaR1C1 = "=COUNTIF(Parcours_" & ComboBox1.Value & "!R4C1:Parcours_" & ComboBox1.Value & "!R4C27, ""*STEP*"")"

et bien entendu retirer les 2 là qui mettent la valeur en statique:

Range("C" & Lb).Value = ThisWorkbook.Sheets(Ys1).Range("B17")
Range("D" & Lb).Value = ThisWorkbook.Sheets(Ys1).Range("B16")

C'était exactement cela !!! merci funky !!!!

Par rapport à ce que j'avais essayé du même acabit
'Range("C" & L).Formula = "=COUNTIF(" + Range("E" & L).Value + "!A14:" + Range("E" & L).Value + "!X14; " * 100 * ")"
'Range("D" & L).Formula = "=COUNTIF(" + Range("E" & L).Value + "!A4:" + Range("E" & L).Value + "!X4; " * STEP * ")"

Je ne vois pas encore exactement la différence... mais je vais étudier ça !

Ca me relance de la plus belle manière sur ma semaine, un gros gros merci

Je pense que ta formule marcherait mais comme il y a un P majuscule dans le nom de ta feuille et que ton hyperlink est avec un p minuscule la formule doit pas fonctionner.

Rechercher des sujets similaires à "ecrire formule complexe nom variable classeur"