Microsoft 365 regroupement selon condition

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

FCMLE44

XLDnaute Impliqué
Bonjour

Dans le fichier joint, je souhaiterais que pour chaque ligne ayant le même matricule en feuille base, regrouper en feuille nommée "Regroupement" les dates de début et de fin qui se suivent (exemple feuille Résultats à obtenir)

J'ai essayé de reprendre une macro ancienne et je l'ai adapté mais j'ai un débogage qui apparait (cf capture) et je ne comprends pas

Voici le code écrit

VB:
Option Explicit

' Touche de raccourci du clavier: Ctrl+Shift+P
Public Sub regroupe()
Dim der As Long     ' ligne fin Regroupement
Dim lgo As Long     ' ligne origine
Dim lgr As Long     ' ligne Regroupement
Dim wo As Worksheet ' feuille Base
Dim wr As Worksheet ' feuille Regroupement
    Set wo = ThisWorkbook.Sheets("Base")
    Set wr = ThisWorkbook.Sheets("Regroupement")
    lgr = 2
    der = wr.Cells(Rows.Count, 1).End(xlUp).Row
'    wr.Cells(2, 1).Resize(der, 6).Select
    wr.Cells(2, 1).Resize(der, 6).ClearContents
    wr.Cells(2, 1).Resize(1, 6).Value = wo.Cells(2, 1).Resize(1, 6).Value
    For lgo = 1 To wo.Cells(Rows.Count, 1).End(xlUp).Row
        If wo.Cells(lgo, "A").Value = wr.Cells(lgr, "A").Value _
            And wo.Cells(lgo, "C").Value = wr.Cells(lgr, "D").Value + 1 Then
                wr.Cells(lgr, "D").Value = wo.Cells(lgo, "D").Value
                wr.Cells(lgr, "F").Value = wr.Cells(lgr, "F").Value + wo.Cells(lgo, "F").Value
        Else
                lgr = lgr + 1
                wr.Cells(lgr, 1).Resize(1, 6).Value = wo.Cells(lgo, 1).Resize(1, 6).Value
        End If
    Next lgo
    MsgBox lgr - 1 & " lignes résultat"
    wr.Activate
    Columns("A:F").AutoFit
End Sub
 

Pièces jointes

Solution
Bonjour.
L'erreur vient de ce que vous commencez lgo à 1 qui est la ligne de titres et où les colonnes C à F ne sont pas numériques. Avec For lgo = 2 to wo.Cells(Rows.Count, 1).End(xlUp).Row ça se passe un peu mieux …
Bonjour.
L'erreur vient de ce que vous commencez lgo à 1 qui est la ligne de titres et où les colonnes C à F ne sont pas numériques. Avec For lgo = 2 to wo.Cells(Rows.Count, 1).End(xlUp).Row ça se passe un peu mieux …
 
- 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
Microsoft 365 Export données
Réponses
4
Affichages
498
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
246
Retour