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
394
Réponses
23
Affichages
431
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…