Recheche la formule Miracle

Bonjour à tous

J’aurais besoin de votre aide car je n’arrive pas à trouver une formule adaptée à mon problème.

Je remercie toutes les personnes qui prendront le temps de me lire, laissez-moi vous expliquer mon problème

Je suis en train de confectionner un fichier Excel pour le planning des vacances des salariés;

Mon fichier Excel comporte également du code VBA;

Mon problème est donc le suivant :

j’ai un formulaire qui me permet de saisir les dates de vacances que le salarié souhaite prendre.

Donc une combobox qui permet de chercher le nom d’un salarié, une txtbox qui permet de saisir la date de début des vacances ainsi qu’une txtbox qui me permet de saisir la date de fin des vacances.

Sur le point là je ne pense pas avoir de problème cela remplie comme convenue ma feuille « liste détailler des congés »

Cependant dans ma feuille intitulée « Planning des congés » je souhaiterais qu’il rechercher dans la colonne A les noms des salariés correspondant à la colonne A de la feuille « liste détailler des congés »

Il peut avoir plusieurs noms identiques si le salarié a posé différentes dates de congés

Donc s’il trouve des noms identiques, je veux qu’il compare si la date de la colonne B de la feuille « liste détailler des congés » et égale ou supérieur à la date figurant dans la ligne 4 de la feuille « planning des congés »

J’arrive à exécuter une fois par ligne avec le code

=SI('Liste detailler des congés'!$B$2='Planning des congés'!C$4;"1";SI('Liste detailler des congés'!$C$2='Planning des congés'!C$4;"1";SI('Liste detailler des congés'!$C$2>'Planning des congés'!C$4;"1";SI('Liste detailler des congés'!$C$2<'Planning des congés'!C$4;"";""))))

Mais je souhaiterais s’il retrouve le même nom plus bas dans la feuille « liste détailler des congés » qu’il continue sur la même ligne que le nom sur la feuille « planning des congés »

J’espère que quelqu’un me comprendra

je vous place en pièce jointe mon fichier pour peut-être mieux comprendre

Bonjour

Une proposition PowerQuery, intégré à Excel, pour construire le Planning à partir des salariés et du détail des congès

actualisation par Données, Actualiser Tout (qui peut faire l'objet d'une ligne de VBA)

Bonjour

Merci d’avoir pris le temps de me lire et de me répondre,

C’est bien ce que je rechercher mais je vous avoue que je n’ai absolument rien compris

Car du coup quand je saisie une nouvelle date pour le Salarié « Test 1 » cela ne se mets pas à jour

Je dois surement faire une mauvaise manipulation… si vous pouvez encore m’aider pour cela, sa serais bien gentil de votre part

RE

actualisation par Données, Actualiser Tout (qui peut faire l'objet d'une ligne de VBA)

=SI('Liste detailler des congés'!$B$2='Planning des congés'!C$4;"1";SI('Liste detailler des congés'!$C$2='Planning des congés'!C$4;"1";SI('Liste detailler des congés'!$C$2>'Planning des congés'!C$4;"1";SI('Liste detailler des congés'!$C$2<'Planning des congés'!C$4;"";""))))

Salut Damien, salut 78chris,

essaie cette formule:

=SOMMEPROD(('Liste detailler des congés'!$A:$A=$A$6)*(C4>='Liste detailler des congés'!$B:$B)*(C4<='Liste detailler des congés'!$C:$C))

Bonne nuit

Bonjour M3ellem1

Merci pour votre retour mais la formule que vous m'avais conseiller ne répond pas a ma recherche, de plus a chaque fois que j'essaye votre formule cela me "plante" Excel, surement une formule qui ne doit pas s'adapter sur beaucoup de cellule comme moi je souhaite faire, cependant je vous remercie d'avoir pris le temps de lire et de répondre a mon poste

essaie cette formule:

=SOMMEPROD(('Liste detailler des congés'!$A:$A=$A$6)*(C4>='Liste detailler des congés'!$B:$B)*(C4<='Liste detailler des congés'!$C:$C))

Bonne nuit

Merci a vous également 78chris,

votre solution fonctionne a la perfection, vous avez répondu a mes attende,

dommage que je ne maitrise pas powerQuery car au final je n'ai pas compris comment fonctionner le principe malgré que mon problème soit résolu

si toute fois quelqu'un trouve une "formule de calcule" qui serais adapter je suis preneur

merci a vous

Merci a vous également 78chris,

votre solution fonctionne a la perfection, vous avez répondu a mes attende,

dommage que je ne maitrise pas powerQuery car au final je n'ai pas compris comment fonctionner le principe malgré que mon problème soit résolu

J'ai renommé le tableau des salariés Tableau35 en Salaries

J'ai mis sous forme de tableau la liste détaillée des congés et ai nommé ce tableau Detail_C

J'ai nommé An la cellule J1 de Tableau de Bord

On peut supprimer ton onglet Planning des congés

Ensuite

  • Se placer dans une cellule du tableau Detail_C puis Données, A partir d'un tableau : ce qui ouvre PowerQuery
  • Sortir par Fermer et Charger dans, connexion seulement
  • Se placer dans une cellule du tableau Salaries puis Données, A partir d'un tableau
    Accueil, Fusionner les requêtes : choisir en 2ème requête Detail_C, sélectionner dans les deux tableaux Nom /Prénom et en bas type de jointure Externe gauche
  • Cliquer sur la double flèche près du titre Détail_C
  • Décocher toutes les cases sauf Date de début et Date de fin
  • Ajouter une colonne, Colonne personnalisée : Nom PC, Formule : =1
  • Accueil, Nouvelle Source, Autres Sources, Requête vide : taper dans la barre de formule
    =Excel.CurrentWorkBook(){[Name="An"]}
  • Cliquer sur le titre Table
  • Renommer Requête1 en An
  • Ajouter une colonne, Colonne personnalisée : Nom Début, formule =#date([Column1],1,1)
  • Ajouter une colonne, Colonne personnalisée : Nom Fin, formule =Date.EndOfYear([Debut])
  • Ajouter une colonne, Colonne personnalisée : formule ={Number.From([Debut])..Number.From([Fin])}
  • Cliquer sur le double flèche près du titre Personnalisé
  • dernier onglet Transformer, Vers la table
  • changer le titre de la colonne en Dates
  • Accueil, Type de données : Date
  • Ajouter une colonne, Colonne personnalisée : Nom PC, Formule : =1
    Accueil, Fusionner les requêtes : choisir en 2ème requête Salariés, , sélectionner dans les deux tableaux PC, et en bas type de jointure Interne
  • Cliquer sur le double flèche près du titre Salariés : décocher PC et Préfixe de nom de colonne
  • Ajouter une colonne, Colonne personnalisée : nom Congé, Formule
    =if [Date de début]=null then 0 else if [Dates]>=[Date de début] and [Dates]<=[Date de fin] then 1 else 0
  • Supprimer les colonnes Date de Début, Date de fin, PC
  • Transformer, Regrouper par : cocher Avancé puis dans Regrouper par placer Dates, Nom/Prénom, Poste, et en bas :
    Nom Congé,
    Opération Max,
    Colonne Conge
  • Sélectionner la colonne Dates, Transformer, Pivoter la colonne, choisir Congé et Ne pas agréger
  • Sortir par Fermer et Charger dans, connexion seulement
  • Se placer dans un nouvel onglet en A3, Données, Connexions existantes, sélectionner An, valider
  • Régler la mise en forme de la 1ère ligne et ajouter les formules pour les jours de la semaine en ligne 2

Bonjour

Wouaaah merci pour les explications,

un énorme merci pour avoir pris le temps de tout les réponses apporter

Rechercher des sujets similaires à "recheche formule miracle"