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

XL 2016 [Résolu] Sommation de nombre de jours sous conditions

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 !

kingfadhel

XLDnaute Impliqué
Bonjour, les XLdnautes,
Je voudrais faire la somme du nombre de jours sous conditions
1- Le même matricule, un ou plusieurs (CODE, DATE DEBUT, DATE FIN)
2- Suppression des lignes inutiles.

Plus de détails dans la pièce jointe.
 

Pièces jointes

Bonjour kingfadhel,

Il suffit de faire le tri manuellement comme indiqué :
1- Tri par "MATRICULE" puis "CODE" puis "DEBUT"
Formule en G2 pour la colonne "Cumul" du tableau :
Code:
=SI(C2<>"SUITE AT";F2;F2+G1)
Edit : ou mieux :
Code:
=F2+N(G1)*(B2=55)
Enfin créer une MFC en colonne G pour n'afficher que le dernier cumul.

Fichier joint.

PS : les dates des lignes 14 et 15 sont incorrectes, il faut les intervertir.

A+
 

Pièces jointes

Dernière édition:
Re,
une petite rectification du code pour éviter un bug

VB:
Sub Date_fin()
For i = [a2].End(xlDown).Row To 2 Step -1
    x = i
    lig = Cells(i, 2).End(xlUp).Row
    Cells(lig, 5) = Cells(x, 5)
    i = lig
Next
End Sub
Sub vide()
For i = [a2].End(xlDown).Row To 2 Step -1
If Cells(i, 2) = "" Then
Rows(i).Delete Shift:=xlUp
End If
Next
End Sub
 
Re

Le résultat est bien le même ou pas?
Au cas ou tu voudrais supprimer les lignes entières il faut modifier ainsi
VB:
Sub videIII()
Columns("B:B").SpecialCells(xlCellTypeBlanks).EntireRow.Delete Shift:=xlUp
End Sub
 
Re, salut JM,

Je n'avais pas fait attention ni testé mais l'ordre du tri que vous indiquez kingfadhel ne permet pas d'obtenir la configuration de votre fichier.

A+
 
Dernière édition:
Re,

Et puis dites-donc vos dates ne sont pas des dates mais des textes !!!

Après les avoir convertis en vraies dates on pourra faire le tri sur MATRICULE puis sur DEBUT.

A+
 
Dernière édition:
Bonjour kingfadhel, JHA, JM, le forum,

Si l'on tient à supprimer les "SUITE AT" voyez la feuille "Résultat" du fichier joint et ce code :
Code:
Private Sub Worksheet_Activate()
Dim a As Range
Application.ScreenUpdating = False
With Feuil1.[A1].CurrentRegion 'à adapter
  If .Parent.FilterMode Then .Parent.ShowAllData 'si la feuille est filtrée
  .Sort .Columns(2), xlAscending, .Columns(5), , xlAscending, Header:=xlYes 'tri
  .EntireColumn.Copy [A1]
End With
Application.Calculation = xlCalculationManual 'évite le recalcul des formules volatiles
With [A1].CurrentRegion
  .Value = .Value 'supprime les formules
  On Error Resume Next 'si aucune SpecialCell
  For Each a In .Columns(9).SpecialCells(xlCellTypeBlanks).Areas
    a(1, -2) = a(a.Count + 1, -2)
    a(1) = a(a.Count + 1): a(a.Count + 1) = ""
  Next
  .Columns(9).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  .Columns(7).Resize(, 2).EntireColumn.Delete
End With
Application.Calculation = xlCalculationAutomatic
With UsedRange: End With 'actualise les barres de défilement
End Sub
Bonne journée.
 

Pièces jointes

Dernière édition:
- 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
12
Affichages
292
Réponses
5
Affichages
235
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…