Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Planning conges

  • Initiateur de la discussion Initiateur de la discussion eduraiss
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

eduraiss

XLDnaute Accro
Bonjour le forum

J'ai un fichier excel qui me permet de gerer les "conges, rtt, maladie ect" du personnel

J'aimerais si possible avoir la visu des personnes a compétences égales sont en absence le même jour,

Je joins un fichier cela sera plus clair

Merci
Cordialement
 

Pièces jointes

Re : Planning conges

bonjour Eduraiss,Job
ajout d'une combobox avec les dates
clic sur le nom affiche les absents de même compétence,à la date(v4)
tu peux changer la date dans le code de feuil1
tu peux changer dans combobox2
à bientôt
 

Pièces jointes

Re : Planning conges

Bonjour eduraiss, Bebere, le forum,

Avec une dernière mise en forme c'est sans doute mieux :

Code:
'---autre mise en forme---
Range("O1,Q:U").EntireColumn.Hidden = True
Voici 2 versions (7), double-clic ou simple clic sur un nom en colonne N.

Edit 1 : la ligne 4 arrivait à se masquer, j'ai corrigé.

Edit 2 : le nombre de colonnes utilisées peut maintenant dépasser 256 (Excel 2007 ou plus).

A+
 

Pièces jointes

Dernière édition:
Re : Planning conges

Re,

Ah mais nom d'un petit bonhomme, je faisais depuis le début une grosse grosse bourde.

Je m'étais polarisé sur les cellules rouges 😡

Il ne fallait absolument pas s'occuper des colonnes Q et R mais des cellules à partir de la colonne V !!

Le code des critères doit s'écrire :

Code:
[A5].FormulaR1C1 = "=OR(RC16<>" & c & ",COUNTA(RC22:RC" & Columns.Count & ")=0)" 'critères
ce qui se traduit en A5 (clic sur ALEXANDRE A) par :

Code:
=OU($P5<>2;NBVAL($V5:$IV5)=0)
Versions (8).

A+
 

Pièces jointes

Re : Planning conges

Salut Bebere,

Si l'on choisit la date, on n'a évidemment pas une vue d'ensemble.

C'est pour cela que j'affiche toutes les dates de Target où il y a une information.

A+
 
Re : Planning conges

Bonjour le forum, désolé pour le retard

A vous bebere et a vous job75, merci pour votre aide

Job75 super pour ton aide, dans le fil je vois que tu réponds a bebere sur le fait d'avoir une vu d'ensemble, mais cela n'est pas nécessaire voir cela peut être gênant, il me faut juste le jour ou j'ai rentré les absences, mais si cela est trop compliqué, je me contenterais de mettre vos code dans mon fichier demain
Merci a toi aussi bebere ton dernier fichier est très bien mais comme dit au dessus il ne faut pas que je choisisse la date, par contre je peut cliquer sur la date et ensuite cliquer sur le nom par exemple je clique sur le 7 juin et ensuite sur "appaix c" par exemple

un énorme merci a vous deux

Cordialement
 
Re : Planning conges

Bonsoir eduraiss, Bebere,

Alors maintenant il suffit de double-cliquer sur la cellule que l'on veut remplir (ou qui est déjà remplie) sous une date.

Pour tout afficher, double-clic sur la même cellule (ou ailleurs).

Celle-ci est recadrée dans le coin supérieur gauche du volet (bonne idée ces volets).

Noter que je reviens au filtre élaboré.

J'ai constaté en effet des aberrations avec le filtre automatique...

La macro a été complètement revue :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error Resume Next
If [filtrage] Then
  Cancel = True
  Rows("5:65536").Hidden = False
  Columns("V:IV").Hidden = False
  Range("O1,Q:U").EntireColumn.Hidden = False
  Application.Goto Target, True 'cadrage de la cellule
  Me.Names.Add "filtrage", False
Else
  Dim c, col%, plage As Range, filtre As Range
  c = Cells(Target.Row, "P") 'compétence
  col = Cells(4, Columns.Count).End(xlToLeft).Column 'n° dernière colonne
  If c = "" Or _
    Intersect(Target, [V5].Resize(65532, col - 21)) Is Nothing Then Exit Sub
  Cancel = True
  Application.ScreenUpdating = False
  '---filtre élaboré (avancé)---
  Set plage = Rows("4:" & [B65536].End(xlUp).Row)
  [A5].Formula = "=P5<>" & c
  plage.AdvancedFilter xlFilterInPlace, [A4:A5]
  Set filtre = plage.Offset(1).SpecialCells(xlCellTypeVisible)
  plage.AdvancedFilter xlFilterInPlace, "" 'désactivation du filtre
  '---1er masquage : des lignes filtrées---
  filtre.EntireRow.Hidden = True
  '---2ème masquage : des colonnes autres que celle de Target---
  Columns("V").Resize(, col - 21).Hidden = True
  Target.EntireColumn.Hidden = False
  '---3ème masquage : des lignes si pas d'absence affichée---
  Intersect(plage.Offset(1), Target.EntireColumn) _
    .SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
  Target.EntireRow.Hidden = False 'si Target est vide
  '---autre mise en forme---
  Range("O1,Q:U").EntireColumn.Hidden = True
  ActiveWindow.SmallScroll Up:=65536
  Me.Names.Add "filtrage", True 'mémorisation
End If
End Sub
Version (10).

A+
 

Pièces jointes

Dernière édition:
Re : Planning conges

Re,

J'ai testé sans problème le fichier sous Excel 2003 et 2010.

Comme déjà dit, pour tout afficher, refaire un double-clic (de préférence sur la même cellule car cadrage).

A+
 
Re : Planning conges

Re,

Pour le 2ème double-clic (affichage), le cadrage de la cellule n'est systématique que s'il s'agit de la même cellule.

Voyez comment est utilisée la variable (mémorisée) cible.

Version (11).

Bonne nuit
 

Pièces jointes

Dernière édition:
Re : Planning conges

Bonjour eduraiss, le forum,

On y arrive, on y arrive, un peu de patience 🙂

Dans la macro on évite le 3ème masquage en utilisant ces critères :

Code:
[A5].FormulaR1C1 = "=OR(RC16<>" & c & ",ISBLANK(RC" & Target.Column & "))"
ce qui donne en A5 :

Code:
=OU($P5<>2;ESTVIDE($V5))
Version (12).

A+
 

Pièces jointes

Re : Planning conges

Bonjour lr forum et a vous job75

Je n'arrive pas a faire marcher la macro dans mon fichier

J'ai bien nommé "filtrage" j'ai mis "vrai en A5, mais cela ne fonctionne pas je joins une partie du fichier source

Cordialement
 

Pièces jointes

Re : Planning conges

Re Eric,

J'ai corrigé votre fichier, plein de choses n'allaient pas.

1) Option Explicit oblige à déclarer les variables et doit être placé tout en haut de la feuille de code.

Mais dans cette feuille vous n'avez pas déclaré toutes les variables (c'est un tord), donc ne mettez pas cette instruction.

2) Pour ma macro Dim cible (mémorisation) doit se placer tout en haut de la feuille de code.

3) La cellule IV4 doit rester vide autrement End(xlToLeft) ne peut pas fonctionner correctement.

4) La colonne A est utilisé par le filtre (critère en A5) et doit rester vide. Edit : apparemment il suffit que A4 reste vide.

5) J'ai bien sûr mis ma dernière macro : version (12).

A+
 

Pièces jointes

Dernière édition:
Re : Planning conges

Re,

De nouveau merci
que A4 IV4 soit vide je n'ai pas de soucis, par contre la colonne A contient des motifs d'absences que j'utilise dans une macro j'ai un champ qui est nommé NoDeLaColonneMotif qui démarre en A4

Je ne sais pas si vous pouvez remedier a
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
11
Affichages
540
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…