XL 2016 Suivi Annuel du Personnel

TheCrawler

XLDnaute Nouveau
Bonjour à tous,

Je suis débutant excel, je me débrouille pas mal mais là je suis vraiment coincé.
J'ai un classeur excel avec a l'intérieur 13 feuilles. les 12 premières feuilles sont les 12 mois de l'année et la 13ème c'est comme un recap pour chaque employé.
Il faut noter que chaque employé garde la même place (ligne) sur chaque feuille comme vous pourrez le constater (cela a cause des formules pour le recap).
Alors ce que je veux c'est faire en sorte que lorsque j'ajoute une ligne dans une feuille, que la même ligne soit ajoutée sur toutes les autres (que ca soit en milieu ou en fin de liste).

Exemple : si j'ajoute EMPLOYE 6 sur la feuille Janvier, je veux que EMPLOYE 6 soit automatiquement ajouté aux autres feuilles également et cela a la même place (ligne).

Merci d'avance pour votre aide !
 

Fichiers joints

chris

XLDnaute Barbatruc
Bonjour à tous
Annulé car réponse inadaptée aux tableaux.

Chalet tu devrais aussi tenir compte des tableaux structurés dans ta solution
 

TheCrawler

XLDnaute Nouveau
ça pourrait s'inspirer de ceci ?

a+
Merci a toi CHALET53, exactement ça pourrait s'inspirer de ça et j'ai testé ça m'ajoute bien les lignes mais par contre il faut aller sur chaque feuille et remplire le nom de l'employé manuellement et aussi ne recopie pas les formules des colonnes devant.
 

TheCrawler

XLDnaute Nouveau
Bonjour à tous
Annulé car réponse inadaptée aux tableaux.

Chalet tu devrais aussi tenir compte des tableaux structurés dans ta solution
Je sais pas comment le faire, j'ai bien selectionner toutes les feuilles en maintenant la touche CTRL mais après comment insérer la ligne ?
 

chris

XLDnaute Barbatruc
Re

Il y a un problème de conception sur les feuilles : une partie est en tableau structuré mais pas les dernières colonnes.
Cela risque de provoquer des problèmes.

Je m'absente et reviens en fin d'aprem...
 

chris

XLDnaute Barbatruc
RE
Ah bon ? Qu'est ce que ça veut dire ?
Les colonnes AH:AL devraient faire partie des tableaux structurés.
Dans l'onglet EMPLOYES les formules des colonnes E à J pourraient être simplifiées et le tableau pourrait être sous forme de tableau structuré.

Ta feuille d'août a des formules qui ne correspondent pas aux autres mois...

La logique à mon avis, une fois les corrections effectuées est de
  • demander un nom,
  • déterminer où il doit s'insérer dans l'ordre
  • l'ajouter sur tous les tableaux structurés (ce qui dupliquera les formules en dernières colonnes)
  • redéfinir les formules de l'onglet EMPLOYES dans la mesure où l'insertion peut avoir été faite un 1ère position
J'ai prévu le code mais j'attends que tu corriges ton classeur...
 
Dernière édition:

TheCrawler

XLDnaute Nouveau
RE

Les colonnes AH:AL devraient faire partie des tableaux structurés.
Dans l'onglet EMPLOYES les formules des colonnes E à J pourraient être simplifiées et le tableau pourrait être sous forme de tableau structuré.

Ta feuille d'août a des formules qui ne correspondent pas aux autres mois...

La logique à mon avis, une fois les corrections effectuées est de
  • demander un nom,
  • déterminer où il doit s'insérer dans l'ordre
  • l'ajouter sur tous les tableaux structurés (ce qui dupliquera les formules en dernières colonnes)
  • redéfinir les formules de l'onglet EMPLOYES dans la mesure où l'insertion peut avoir été faite un 1ère position
J'ai prévu le code mais j'attends que tu corriges ton classeur...
Bonjour Chris, merci pour les remarques,
J'ai essayer de faire les corrections comme tu m'as conseillé et j'espere avoir compris et fait ce qu'il fallait !
En ce qui concerne les formules des colonnes E à J dans la feuille EMPLOYES, je sais pas comment les simplifier, si tu pouvais me mettre sur le route, merci.

Sinon je joint déjà le fichier corrigé.

Cordialement,
 

Fichiers joints

chris

XLDnaute Barbatruc
RE

La correction consiste à :
  • étirer les tableaux de chaque mois pour incorporer les colonnes AG à AH
  • mettre le tableau de l'onglet EMPLOYES sous forme de tableau structuré : tu l'as fait mais il faut le nommer (ne pas laisser tableau8)
  • pour l'onglet EMPLOYES on peut utiliser : =SOMME('Janvier:Décembre'!AH7)
Tu as lié tous les codes d'absences à un classeur externe. Cela parait inutile.
 

TheCrawler

XLDnaute Nouveau
RE

La correction consiste à :
  • étirer les tableaux de chaque mois pour incorporer les colonnes AG à AH
  • mettre le tableau de l'onglet EMPLOYES sous forme de tableau structuré : tu l'as fait mais il faut le nommer (ne pas laisser tableau8)
  • pour l'onglet EMPLOYES on peut utiliser : =SOMME('Janvier:Décembre'!AH7)
Tu as lié tous les codes d'absences à un classeur externe. Cela parait inutile.
Bonjour Chris,

Voilà cette fois je pense que j'ai pu corriger la totale, pour la source externe je savais pas d'où cela venait mais j'ai pu rompre la liaison.
Je te mets le fichier corrigé en fichier joint.

Merci et bon début de semaine !
 

Fichiers joints

TheCrawler

XLDnaute Nouveau
Bonjour

J'ai ajouté le bouton et le code d'insertion d'un nom selon ce que j'ai décrit au #9
J'ai essayé l'insertion et ça marche uniquement lorsque je saisie un chiffre dans la boite de dialogue qui apparait (en debut de tableau et non a la fin) mais lorsque je saisie un nom (EMPLOYE 6) rien ne se passe.

A moins que j'ai mal compris le principe, je crois c'est pas ce qui devrait être non ?
 

chris

XLDnaute Barbatruc
RE

Le principe est de saisir un nom et, comme je l'ai proposé au #9, il se classera automatiquement alphabétiquement.

Mais j'ai effectivement trop focalisé sur insertion et oublié le cas d'un nom se situant en dernier:oops: : voici le fichier modifié.
 

Fichiers joints

TheCrawler

XLDnaute Nouveau
RE

Le principe est de saisir un nom et, comme je l'ai proposé au #9, il se classera automatiquement alphabétiquement.

Mais j'ai effectivement trop focalisé sur insertion et oublié le cas d'un nom se situant en dernier:oops: : voici le fichier modifié.
Là c'est parfait ça marche super bien ! Je me demandais si je pouvais regarder et bidouiller pour la suppression, j'espere que c'est quasiment le même procédé ! Encore merci Chris tu me sauves !
 

chris

XLDnaute Barbatruc
Re

A noter qu'en entreprise, en principe on n'efface pas l'historique...

VB:
Sub Suppression_ligne()
Dim Trouve
Dim y As Long
Question = InputBox("Quel nom voulez-vous supprimer ?")
If Question = "" Then Exit Sub

With Sheets("EMPLOYES").ListObjects(1)
    Set Trouve = .ListColumns(1).Range.Find(Question)
    If Not Trouve Is Nothing Then
        Application.ScreenUpdating = False
        Application.Calculation = xlCalculationManual
        y = Trouve.Row - .Range.Row
        .ListRows(y).Delete
        .ListColumns(5).DataBodyRange.Resize(, 5).Formula = ""
        .ListColumns(5).DataBodyRange.Resize(, 5).Formula = "=SUM('Janvier:Décembre'!RC[29])"
        For Each f In ActiveWorkbook.Sheets
            If f.Name <> "EMPLOYES" Then
                With f.ListObjects(1)
                    .ListRows(y).Delete
                End With
            End If
        Next f
    Else
        MsgBox "Nom introuvable"
    End If
End With
Application.Calculation = xlCalculationAutomatic
End Sub
 

TheCrawler

XLDnaute Nouveau
Re

A noter qu'en entreprise, en principe on n'efface pas l'historique...

VB:
Sub Suppression_ligne()
Dim Trouve
Dim y As Long
Question = InputBox("Quel nom voulez-vous supprimer ?")
If Question = "" Then Exit Sub

With Sheets("EMPLOYES").ListObjects(1)
    Set Trouve = .ListColumns(1).Range.Find(Question)
    If Not Trouve Is Nothing Then
        Application.ScreenUpdating = False
        Application.Calculation = xlCalculationManual
        y = Trouve.Row - .Range.Row
        .ListRows(y).Delete
        .ListColumns(5).DataBodyRange.Resize(, 5).Formula = ""
        .ListColumns(5).DataBodyRange.Resize(, 5).Formula = "=SUM('Janvier:Décembre'!RC[29])"
        For Each f In ActiveWorkbook.Sheets
            If f.Name <> "EMPLOYES" Then
                With f.ListObjects(1)
                    .ListRows(y).Delete
                End With
            End If
        Next f
    Else
        MsgBox "Nom introuvable"
    End If
End With
Application.Calculation = xlCalculationAutomatic
End Sub
Super ! ça marche nickel !
Oui t'as raison mais bon ne sait-on jamais ! Autant le faire et voir après s'il faut l'enlever ou pas !
 

TheCrawler

XLDnaute Nouveau
Bonjour Chris !

Je reviens encore à la charge ce matin lol.

Eh bien j'ai copié et collé tout la liste des employés que j'ai déjà, jusque là tout allais bien.
Mais maintenant, quand je fais une insertion via le bouton, je saisie le nom de l'employé, je reçois un message disant que "la ligne ne correspond pas a l'index" (Je ne sais vraiment pas ce que ça signifie) mais par contre a ajoute l'employé en tête de liste en copiant la mise en forme des en-têtes.
Pareil pour la suppression je reçois un message disant "Erreur 9 debogage" (un truc comme ça) mais la suppression s'effectue également.

Je t'envoie le fichier actuel avec la liste des employés et tout.
 

Fichiers joints

chris

XLDnaute Barbatruc
Re

Pas de MP, merci.

Le principe est de saisir un nom et, comme je l'ai proposé au #9, il se classera automatiquement alphabétiquement.
Si ta liste n'est pas classée au départ l'insertion se fait un peu au hasard

Quand aux messages d'erreurs cela est du à une feuille supplémentaire par rapport à ce qui a été fourni initialement, feuille qui ne correspond pas aux autres.

On le dit et le répète : l'exemple doit être représentatif... sinon on bosse pour rien
 

Haut Bas