Ajout automatique de données

Bonjour à tous,

Dans le cadre d'un projet je cherche à visualiser la charge de travail d'un employé en fonction du temps. La première feuille de ce fichier comprend le nom du projet en cours, le nom de la personne qui s'en occupe et la charge de travail associé au projet en fonction du mois. Sur la deuxième feuille, on retrouve un tableau récapitulatif de la charge de travail en fonction des personnes et du mois (en effet un employé peux travailler sur plusieurs projets donc la deuxième feuille somme toutes ses charges de travail) et aussi un graphique la représentant. (voir fichier joint)

Dans le cas où un nouvel employé arrive dans l'entreprise, serait-il possible, si on ajoute son nom sur le premier tableau, d'ajouter automatiquement une ligne sur le tableau de la feuille 2 avec le nom du nouvel employé et sa charge de travail associé puis qu'elle apparaisse sur le graphique ? Et donc je souhaiterais ne pas toucher à la deuxième feuille du tout.

Merci d'avance.

Bonjour,

Une première réponse.

Un soupçon de Power Query pour créer un TCD et un GCD.

A te relire.

Cdlt.

Salut ope_af,

Salut Jean-Eric,

début de réponse car mes compétences et connaissances VBA actuelles s'arrêtent où commencent les TCD, Dico et autres gâteries...

Il manque donc, tu as compris, la MÁJ automatique du graphique. Pour l'instant, via l'icône "Filtre" du graphique, il suffit d'indiquer la plage de données en tapant Data, plage nommée contenant le tableau en feuille 'Synthèse'.

Dans le code, j'espère qu'un crack en TCD-GCD de passage se fera un plaisir et un devoir de compléter les lignes remplies de ?? ??...

  • Pour le reste, afin de créer un nouveau projet, clique sur le bouton en feuille 'Projets' [B2] ;
  • [B-C] s'allument de gris, t'invitant à compléter ces premières données ;
  • quand c'est fait, le tableau et ses formules se mettent à jour en feuille 'Synthèse'.
Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim iRow%, iRowT%, iIdx%, sCol$
'
Application.EnableEvents = False
'
If Not Intersect(Target, Range("B:C")) Is Nothing Then
    If Target.Interior.ColorIndex = 15 Then
        iRow = Target.Row
        If Range("B" & iRow).Value <> "" And Range("C" & iRow).Value <> "" Then
            Range("B" & iRow & ":C" & iRow).Interior.Color = xlNone
            Range("D" & iRow & "O" & iRow).NumberFormat = "0%"
            Range("D" & iRow & "O" & iRow).Value = 0
            iIdx = WorksheetFunction.CountIf(Range("C4:C" & iRow), Range("C" & iRow).Value)
            With Worksheets("Synthèse")
                If iIdx = 1 Then
                    iRowT = .Range("B" & Rows.Count).End(xlUp).Row + 1
                    .Range("B" & iRowT & ":N" & iRowT).Insert shift:=xlDown
                    .Range("B" & iRowT).Value = Range("C" & iRow).Value
                    For x = 4 To iRowT
                        For y = 3 To 14
                            sCol = Chr(65 + y)
                            .Range(Chr(64 + y) & x).NumberFormat = "0%"
                            If x = iRowT Then .Range(Chr(64 + y) & x).Value = 0
                            .Range(Chr(64 + y) & x).FormulaLocal = "=SOMME.SI(Projets!C4:C" & iRow & ";B" & x & ";Projets!" & sCol & "4:" & sCol & iRow & ")"
                        Next
                    Next
                    .Range("B3:N" & iRowT).Name = "Data"
                End If
                ' ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??
                ' ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??
            End With
            Range("D" & iRow).Select
        End If
    End If
End If
'
Application.EnableEvents = True
'
End Sub

Espérant une suite heureuse et constructive...

A+

9opeaf-projets.xlsm (38.84 Ko)
Rechercher des sujets similaires à "ajout automatique donnees"