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

Synthèse des absences

  • 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

Voici en exemple ce qui me serait très utile

Avoir la synthèse des absences d'un salariés

Voir le fichier avec les explications

merci a vous
 

Pièces jointes

Re : Synthèse des absences

Bonsoir eduraiss, salut Philippe,

Une autre manière de faire mais le résultat est le même :

Code:
Private Sub Worksheet_BeforeDoubleclick(ByVal Target As Range, Cancel As Boolean)
If Target.Row < 5 Or Target.Column <> 2 Then Exit Sub
Cancel = True
With Feuil1 'CodeName de la feuille
  .[A1] = Target & " " & Target(, 2)
  .[A2:A236] = Application.Transpose([V4:IV4])
  .[B2:B236] = Application.Transpose(Intersect(Target.EntireRow, [V:IV]))
  .[B2:B236].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  .Activate
End With
End Sub
Edit : j'avais mis au début .Cells.ClearContents mais ça ne sert à rien ici.

Fichier joint.

A+
 

Pièces jointes

Dernière édition:
Re : Synthèse des absences

Bonjour eduraiss, Philippe,

Si l'on est sur Excel 2007/2010/2013 avec 16384 colonnes, utiliser :

Code:
Private Sub Worksheet_BeforeDoubleclick(ByVal Target As Range, Cancel As Boolean)
If Target.Row < 5 Or Target.Column <> 2 Then Exit Sub
Dim n%
Cancel = True
With Feuil1 'CodeName de la feuille
  .[A1] = Target & " " & Target(, 2)
  n = .Columns.Count - 21
  .[A2].Resize(n) = Application.Transpose([V4].Resize(, n))
  .[B2].Resize(n) = _
    Application.Transpose(Intersect(Target.EntireRow, [V:V].Resize(, n)))
  .[B2].Resize(n).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  .Activate
End With
End Sub
qui fonctionne sur toute version.

Fichier (2).

A+
 

Pièces jointes

Re : Synthèse des absences

Re,

Pour peaufiner, un complément qui ajuste la barre de défilement verticale :

Code:
Private Sub Worksheet_BeforeDoubleclick(ByVal Target As Range, Cancel As Boolean)
If Target.Row < 5 Or Target.Column <> 2 Then Exit Sub
Dim n%
Cancel = True
With Feuil1 'CodeName de la feuille
  .[A1] = Target & " " & Target(, 2)
  n = Columns.Count - 21
  .[A2].Resize(n) = Application.Transpose([V4].Resize(, n))
  .[B2].Resize(n) = _
    Application.Transpose(Intersect(Target.EntireRow, [V:V].Resize(, n)))
  .[B2].Resize(n).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  Set Target = .UsedRange 'ajuste la barre de défilement verticale
  .Activate
End With
End Sub
Fichier (3).

A+
 

Pièces jointes

Re : Synthèse des absences

Bonjour le forum
Une grand merci a vous, il seul petit truc sur la feuill1 j'aimerais avoir en colonne D le nombre de jour le (maladie, congés, rtt ,etc)

Je ne peux pas mettre de formule car la feuill1 est effacée avec le code

Donc si cela est possible avoir un effacement des colonnes A et B

Merci encore
 
Re : Synthèse des absences

Re,

Mes codes précédents n'effacent rien, et votre demande n'est pas claire, mais voyez ceci :

Code:
Private Sub Worksheet_BeforeDoubleclick(ByVal Target As Range, Cancel As Boolean)
If Target.Row < 5 Or Target.Column <> 2 Then Exit Sub
Dim n%, d As Object, c As Range
Cancel = True
With Feuil1 'CodeName de la feuille
  .[1:2].ClearContents
  .[A1] = Target & " " & Target(, 2)
  n = Columns.Count - 21
  .[A2].Resize(n) = Application.Transpose([V4].Resize(, n))
  .[B2].Resize(n) = _
    Application.Transpose(Intersect(Target.EntireRow, [V:V].Resize(, n)))
  .[B2].Resize(n).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  Set Target = .UsedRange 'ajuste la barre de défilement verticale
  Set d = CreateObject("Scripting.Dictionary")
  n = 3
  For Each c In Target.Columns(2).Cells
    If c <> "" And Not d.exists(c.Value) Then
      n = n + 1
      d(c.Value) = ""
      .Cells(1, n) = c
      .Cells(2, n) = Application.CountIf(Target.Columns(2), c)
      .Columns(n).AutoFit 'ajustement automatique
    End If
  Next
  .Activate
End With
End Sub
Edit : ajouté l'ajustement automatique des colonnes.

Fichier (4).

A+
 

Pièces jointes

Dernière édition:
Re : Synthèse des absences

Re

Merci a vous job 75

C'est exactement ce qu'il me faut sauf que cela m'enlève le format que le mets sur la feuill1
Les couleurs le format date
Voila sinon c'est nickel

Merci
 
Re : Synthèse des absences

Re,

Vous préférerez peut-être cette nouvelle présentation avec cette macro :

Code:
Private Sub Worksheet_BeforeDoubleclick(ByVal Target As Range, Cancel As Boolean)
If Target.Row < 5 Or Target.Column <> 2 Then Exit Sub
Dim n%, d As Object, c As Range
Cancel = True
With Feuil1 'CodeName de la feuille
  .[A1] = Target & " " & Target(, 2)
  n = Columns.Count - 21
  .[A2].Resize(n) = Application.Transpose([V4].Resize(, n))
  .[B2].Resize(n) = _
    Application.Transpose(Intersect(Target.EntireRow, [V:V].Resize(, n)))
  .[B2].Resize(n).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  .[D2:E2].Resize(n).ClearContents
  Set Target = .UsedRange 'ajuste la barre de défilement verticale
  Set d = CreateObject("Scripting.Dictionary")
  n = 1
  For Each c In Target.Columns(2).Cells
    If c <> "" And Not d.exists(c.Value) Then
      n = n + 1
      d(c.Value) = ""
      .Cells(n, 4) = c
      .Cells(n, 5) = Application.CountIf(Target.Columns(2), c)
    End If
  Next
  .Columns(4).AutoFit 'ajustement automatique
  .Activate
End With
End Sub
Fichier (5), voyez les MFC en colonnes D et E.

A+
 

Pièces jointes

- 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

  • Question Question
XL 2021 planning
Réponses
5
Affichages
388
Réponses
4
Affichages
193
Réponses
5
Affichages
629
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…