Reporter cellule non vide d'un planning dans un autre tableau

Attention "fragilité" : je te rappelle aussi que le chiffre 25 est lié au nombre de projets. Si ce nombre évolue, la formule risque d ene pas donner la bonne valeur ! J'ai bien une solution mais pas sûr qu'elle te "plaise".

Bonjour Steelson,

Pour le problème du nombre 25, pas de panique c'est le nombre max moyen de projet réalisé en une année.

Pour le fichier, le pense le reprendre sur mes heures perdues pour l'améliorer et il se peut que j'aurai besoin de coup de main (mais pas de coup de pied ), pour la partie planning le rendre "perpétuel", mettre une MFC en fonction des trois premières lettres pour toutes les absences, formation, grève et déplacement, avoir la possibilité d'un nombre infinie de personnel et de projet, d'afficher de façon automatique les projets actifs ou terminés.

Et dernière petite subtilité, y a-t-il moyen de faire incrémenter la mise en forme d'une cellule en fonction du contenu de la même cellule ou il faut se faire une par une. Actuellement je tape cette formule

= gauche($c$6;3)="ABS"

police gras et remplissage vert jaune"linky"

Bon sinon encore merci pour ton aide et les conseilles.

Et dernière petite subtilité, y a-t-il moyen de faire incrémenter la mise en forme d'une cellule en fonction du contenu de la même cellule ou il faut se faire une par une. Actuellement je tape cette formule

= gauche($c$6;3)="ABS"

police gras et remplissage vert jaune"linky"

il faut le faire par MFC sur l'ensemble de la feuille

Et dernière petite subtilité, y a-t-il moyen de faire incrémenter la mise en forme d'une cellule en fonction du contenu de la même cellule ou il faut se faire une par une. Actuellement je tape cette formule

= gauche($c$6;3)="ABS"

police gras et remplissage vert jaune"linky"

il faut le faire par MFC sur l'ensemble de la feuille

J'ai essayé en appliquant le MFC sur toute la feuille cela ne marche pas.

mfc

Mets toi sur A1

Mets la formule plus simple

=gauche(A1;3)="ABS"

et applique la mise en forme sur tout le document

PARFAIT!

Encore Merci!

Bonjour à tous,

Je ne sais pas trop si dois ouvrir un nouveau sujet.

Voilà mon nouveau souci.

Je dois réaliser un tableau dans lequel je vais pouvoir faire un suivie de mes différentes affaires (en moyenne 25 max/an), faire le calcul du nombre d'heure passé par affaire (pas trop compliqué un =SOMME() suffit) par technicien, et ce greffe à tout ceci les heures "perdu" (grève, congés payé, visite médical, formation et arrêt maladie) ce qui complique l'affaire c'est que je veux connaitre ce suivie par semaine et pouvoir afficher soit une ou plusieurs semaine le filtre sera impossible car il y aura sous le numéro de semaine les différentes activité cité si dessus

Je mets en pièce jointe un petit aperçu de ce que j'attends.

exemple

... ce greffe à tout ceci les heures "perdu" (grève, congés payé, visite médical, formation et arrêt maladie) ce qui complique l'affaire c'est que je veux connaitre ce suivie par semaine et pouvoir afficher soit une ou plusieurs semaine le filtre sera impossible car il y aura sous le numéro de semaine les différentes activité cité si dessus

J'attendais ce grand virage !!

Il me semblait que ...

Une dernière remarque, pour bien débuter dans excel, pense plutôt à créer une base de données à partir de laquelle on pourra ensuite renseigner le tableau annuel ou hebdo

Donc une base de données avec des événements et un TCD !

Pour ma part, ma vision pour bien débuter, serait de faire une base de données avec

  • la personne
  • la date
  • le projet
  • le nombre d'heures
  • am ou pm (qui pourrait être déduit des heures si je comprends bien

ensuite on peut en tirer une vue annuelle ou mensuelle, par TCD ou par formules.

On va attendre les autres commentaires/propositions éventuelles.

Pour info, après avoir fait un peu de recherche archéologique, voici ce qui pourrait être adapté

La base de données événements est en onglet masqué.

mais ta hiérarchie semble vouloir te compliquer atrocement la tâche ...

J'ai présenté ta trouvaille archéologique à ma hiérarchie et cela lui plait, mais il préfère rester sur "mon" planning à cause de la la plage de saisie qui ne présente le personnel de façon individuel et veut avoir une visu sur l'ensemble du personnel et le moins de manipulation à faire pour gagner du temps car seul à faire et modifier le planning de l'année.

donc tant que tu n'auras pas saisi tout l'intérêt d'un fichier simplement structuré, on contournera un tas de difficultés.

Voici entre temps une proposition que j'ai faite par ailleurs ...https://forum.excel-pratique.com/viewtopic.php?p=714755#p714755 et à partir de laquelle on pourrait désobéir à ta hiérarchie

Bonjour Steelson,

Je te joins ce que j'ai commencé à faire... cela semble un peu en bazars

Je suis d'accord pour que l'on désobéisse ma hiérarchie. La seul chose que l'on devra respecter c'est affichage de tout le personnel lors du remplissage.

Le planning importe peu pour ce fichier, un affichage du numéro de semaine et de l'année suffit.

Il veut pour voir comptabiliser les heures passé par affaire et le temps total qu'a passé un technicien dessus. Je ne sais pas si tu saisies la chose.

Et de ce tableau va découler un rapport annuel et par technicien

ex rapport final

Qu'est-ce que tu mets aux intersecterions ? des heures ou des croix ou des J/M/AM et qui valent combien ?

Ok je reprends ton tableau de saisie (par semaine)

Chaque modification sera répercutée sur une BdD

Tu pourras faire toutes les synthèses possibles à partir de la BdD, quasiment sans calcul (pas de DECALER, pas de SOMMEPROD, ...)

On va faire simple !

On est bien d'accord que la maille de saisie c'est la semaine (pas le mois, pas le jour).

Qu'est-ce que tu mets aux intersecterions ? des heures ou des croix ou des J/M/AM et qui valent combien ?

Au intersection de je mes des chiffres qui correspond au nombre d'heure que le technicien a passé sur le projet.

On est bien d'accord que la maille de saisie c'est la semaine (pas le mois, pas le jour).

On part sur une maille de semaine

Voilà un peu comment je veux voir l'affichage des heures sur mon planning

  • un Total par personnel
  • un Total par semaine (sans les heures de grève, formation, congés, arrêt maladie, rcr)
  • un sous total par projet ou autres activité.

Une première version ...

Tu lies la semaine 1 au 1er janvier .... ce n'est pas toujours le cas ! Néanmoins, comme on ne gère pas à la journée mais à la semaine, j'ai mis les années en numérique (au lieu de date) et les semaines en numérique (au lieu de texte) au format "S"00 ... il faut donc taper le n° de la semaine, par exemple 2 et non S2 ou S02.

Je ne suis pas tout à fait d'accord avec tes sommes, tu ne peux pas retirer de l'improductivité à un projet ... tout s'ajoute et il faut ensuite faire le rapport entre productivité et la somme des productivités et improductivités. J'ai donc ajouté cette notion dans la base de données (onglet données masqué) et la synthèse.

Il y a une seule formule qui se régénère automatiquement en VBA

=SIERREUR(RECHERCHEV(C$1&"|"&$A3&"|"&$A$1&"|"&$A$2;Tdata;6;0);"")

Toute modification est répercutée sur une base de données (onglet données masqué) qui simplifiera ensuite tous les calculs.

La synthèse peut être retravaillée, on peut aussi en générer de nouvelles par TCD.

Voici le code

Private Sub Worksheet_Change(ByVal Target As Range)
Dim plage As Range
If Intersect(Target, Range("PlageDeSaisie")) Is Nothing Then Exit Sub
Set plage = Intersect(Target, Range("PlageDeSaisie"))
Application.EnableEvents = False
For Each cel In plage
Debug.Print IsNumeric(cel.Value)
    If cel.Value = "" Then
        With Sheets("données").ListObjects("Tdata")
            Set ici = .ListColumns("Cle").Range.Find(what:=Cells(1, cel.Column) & "|" & Cells(cel.Row, 1) & "|" & Cells(1, 1) & "|" & Cells(2, 1), LookIn:=xlValues)
            If Not ici Is Nothing Then
                i = ici.Row
                Sheets("données").Rows(i).Delete Shift:=xlUp
            End If
        End With
    ElseIf IsNumeric(cel.Value) Then
        With Sheets("données").ListObjects("Tdata")
            Set ici = .ListColumns("Cle").Range.Find(what:=Cells(1, cel.Column) & "|" & Cells(cel.Row, 1) & "|" & Cells(1, 1) & "|" & Cells(2, 1), LookIn:=xlValues)
            If ici Is Nothing Then
                .ListRows.Add
                i = .ListColumns("Personnel").Range.Find(what:="", SearchDirection:=xlNext).Row
            Else
                i = ici.Row
            End If
            i = i - .HeaderRowRange.Row
            .ListColumns("Personnel").DataBodyRange.Rows(i).Value = Cells(1, cel.Column)
            .ListColumns("Activité").DataBodyRange.Rows(i).Value = Cells(cel.Row, 1)
            .ListColumns("Année").DataBodyRange.Rows(i).Value = Cells(1, 1)
            .ListColumns("Semaine").DataBodyRange.Rows(i).Value = Cells(2, 1)
            .ListColumns("Heures").DataBodyRange.Rows(i).Value = cel.Value
        End With
    End If
    cel.FormulaR1C1 = "=IFERROR(VLOOKUP(R1C&""|""&RC1&""|""&R1C1&""|""&R2C1,Tdata,6,0),"""")"
Next cel
Application.EnableEvents = True
End Sub

Ton tableau est génial! Je n'avais pas pensé au fait de condenser les semaines sous se forma là.

L'idée de tout ressemblé sous forme de TCD est excellente.

Est-ce que depuis ce TCD je peux faire unRECHERCHE() pour pouvoir me créer une fiche par Technicien avec un graphe correspondant à son volume Improductif (abs, formation...) et un autre graphe avec son volume de travail sur les différents projet de l'année. Un peu comme çà https://forum.excel-pratique.com/download/file.php?id=217888&mode=view

Je t'ai mis ce que j'attends en pièces jointe... Je crois avoir une petite idée de comment faire.

Je travaille de mon coté.

ERRATUM!

C'est mieux si je transmet le bon fichier!

Est-ce que depuis ce TCD je peux faire unRECHERCHE()

Mieux que cela, tu fais un
LIREDONNEESTABCROISDYNAMIQUE

C'est génial !

Pour le construire, c'est simple : tu fais =une cellule du TCD et tu trifouilles la formule en remplaçant les valeurs par une variable/une cellule contenant une valeur variable

Je crois que je n'ai pas saisi toute la subtilité de ta fonction LIREDONNEESTABCROISDYNAMIQUE!

Est-ce dans la Macros ou une formule à appliquer?

Pas de macro, c'est une formule ensuite pour récupérer des données d'un TCD (c'est le TCD qui fait les calculs, ensuite on peut y puiser facilement des données si besoin).

Je te renvoie un exemple ...

exemple

mais tu peux aussi multiplier les TCD avec la même source (le calcul ne se fait qu'une fois)

Rechercher des sujets similaires à "reporter vide planning tableau"