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

souci de formule sur VBA

  • Initiateur de la discussion Initiateur de la discussion excelo
  • 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 !

excelo

XLDnaute Occasionnel
Bonjour à tous,

Voilà j’ai créé un code vba me permettant de regrouper les dates qui se suivent (colonne D et E)sur la même ligne du matricule de la colonne A (voir tableau) le souci c’est que la formule n’est pas complète. Je sèche un peu sur le problème, quelqu’un aurait une idée de ce qu’il faudrait changer pour que ça marche ?
Pour résumer, pour que le code marche il aurait fallu que j’obtienne sur la cellule H10 la date du 09/05/2009 et sur la cellule H16 la date du 23/05/2009.

Merci pour votre aide,

excelo
 

Pièces jointes

Dernière édition:
Re : souci de formule sur VBA

merci à tous je viens de solutionner mon problème,
j'ai ajouté le code:

If (.Cells(I, 5) + 1) = .Cells(I + 1, 4) And .Cells(I + 1, 1) <> "" Then
.Cells(J, K) = CDate(.Cells(I, 5))
K = K + 2
End If

Bonne journée à tous
 
Re : souci de formule sur VBA

Bonjour Kjin,
merci pour ton fichier, je me suis mal exliqué, si on prend l'exemple de :
PEZET chantal
01/05/2009 01/05/2009
02/05/2009 06/05/2009
07/05/2009 07/05/2009
08/05/2009 09/05/2009
tu as des dates qui se suivent, donc le résultat de la ligne serait du 01/05/09 au 09/05/09 (on fusionne les dates qui se suivent).
si on avait eu pour la même personne des dates indiqué comme ci-dessous :
01/05/2009 01/05/2009
02/05/2009 05/05/2009
07/05/2009 07/05/2009
08/05/2009 09/05/2009

on aurait eu 1 coupure : du 01/05/09 au 05/05/09 et du 07/05/09 au 09/05/09
je me suis mal exliqué, désolé, je tacherai d'être plus explicite la prochaine fois,
merci à tous
 
Re : souci de formule sur VBA

Bonsoir,

Une autre option dans le fichier joint.

Code:
Sub Test()
Range("F2:DZ24").ClearContents
For Each X In Range("D2:" & Range("D65536").End(xlUp).Address)
    If X.Offset(0, -1).Value <> "" And X.Offset(0, -1).Value <> 0 Then
        '-----------------
        Matricule = X.Offset(0, -3).Value
        Set Dest = Cells(X.Row, 256)
        '-----------------
        X.Offset(0, 2).Value = Matricule
        Dest.End(xlToLeft).Offset(0, 1).Value = X.Value
        Dest.End(xlToLeft).Offset(0, 1).Value = X.Offset(0, 1).Value
    Else
        'X.Offset(0, 2).Value = Matricule 'Au choix ...
        If X.Value - Dest.End(xlToLeft).Value <= 1 Then
            Dest.End(xlToLeft).Value = X.Offset(0, 1).Value
        Else
            Dest.End(xlToLeft).Offset(0, 1).Value = X.Value
            Dest.End(xlToLeft).Offset(0, 1).Value = X.Offset(0, 1).Value
        End If
    End If
Next
End Sub
 

Pièces jointes

Dernière édition:
Re : souci de formule sur VBA

Bonjour Catrice, le forum,
merci Catrice pour ta solution elle est géniale et carrément plus simple, je vais l'étudier de plus près car elle pourra me servir pour d'autre tableau à venir,
Merci beaucoup,
Bonne journée à tous ;-)
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…