Microsoft 365 mettre en forme un tableau par vba

Bonjour,
je reçois un export tous les jours que je dois transformer tous les jours pour plusieurs raisons:
  1. je filtre la colonne C équipe pour ne conserver que les lignes où figure Total
  2. les colonnes A et B sont fusionnées, une fois n'avoir gardé que les lignes totales de la colonne C, les deux premières lignes ont pour service abcd_campagne et abcd_plage; toutes les autres cellules de la colonne service contiennent des noms sous le format vf_bd_nom du service. Je souhaite n'avoir qu'une colonne (défusionner A et B) et ne conserver pour les deux premières lignes que ABCD et pour tout le reste que le nom du service.
  3. les colonnes E, O, U contiennent des informations de temps mais sous un format standard j'aimerai transformer ces temps sous le format [H]:mm:ss
  4. les colonnes G, H, S, T contiennent des informations de temps mais sous un format standard que j'aimerai transformer sous le format [mm]
  5. les colonnes V, W et X sont à supprimer
Aujourd'hui je fais tout cela de manière artisanale et si quelqu'un peut m'aider à créer un code VBA pour faire tout cela je gagnerai un temps précieux
Merci d'avance à vous
 

Pièces jointes

  • test téléphone.xlsx
    14 KB · Affichages: 14
Solution
Bonjour à tous, Bonjour @Gégé-45550
Je pense que notre ami @Lolo le normand veux aussi que la macro ne soit pas liée à un classeur mais l'avoir à disposition dans son Personal.xlb.
Je propose donc :
VB:
Sub MiseEnForme()
Dim LstRow&, i&, j&, K&
Dim TabSource As Variant, TabReport As Variant, Tmp As Variant
Dim Discrit$

Discrit = "CNMR"

With ActiveSheet
    LstRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    TabSource = .Range(.Cells(1, 1), .Cells(LstRow, 21))
    K = Application.CountIf(.Columns("c"), "Total") + 1
End With
ReDim TabReport(1 To K, 1 To 21)
K = 1
TabReport(1, 1) = TabSource(1, 1)
For i = 3 To UBound(TabSource, 2)
    TabReport(1, i - 1) = TabSource(1, i)
Next i
For i = LBound(TabSource, 1) + 1 To...

sousou

XLDnaute Barbatruc
Bonjour.
j'ai réalisé une macro composée de quatre procédures qui représentent chacune les points 1 2 3 4 de ton post
Elle agit sur la feuille active (pour les tests)et pour ne pas perdre tes données exemples. Tu copies les données dans la feuille 2 par exemple et tu lances la macro deb()
Pour le point 3 (seconde partie) j'ai mis au format mm:ss, pour ne pas perdre les secondes, il existe aussi un bout de code qui compte uniquement les minutes, mis en commentaire le cas échéant.
 

Pièces jointes

  • test téléphone.xlsm
    26.6 KB · Affichages: 12

Gégé-45550

XLDnaute Accro
Bonjour,
je reçois un export tous les jours que je dois transformer tous les jours pour plusieurs raisons:
  1. je filtre la colonne C équipe pour ne conserver que les lignes où figure Total
  2. les colonnes A et B sont fusionnées, une fois n'avoir gardé que les lignes totales de la colonne C, les deux premières lignes ont pour service abcd_campagne et abcd_plage; toutes les autres cellules de la colonne service contiennent des noms sous le format vf_bd_nom du service. Je souhaite n'avoir qu'une colonne (défusionner A et B) et ne conserver pour les deux premières lignes que ABCD et pour tout le reste que le nom du service.
  3. les colonnes E, O, U contiennent des informations de temps mais sous un format standard j'aimerai transformer ces temps sous le format [H]:mm:ss
  4. les colonnes G, H, S, T contiennent des informations de temps mais sous un format standard que j'aimerai transformer sous le format [mm]
  5. les colonnes V, W et X sont à supprimer
Aujourd'hui je fais tout cela de manière artisanale et si quelqu'un peut m'aider à créer un code VBA pour faire tout cela je gagnerai un temps précieux
Merci d'avance à vous
Bonjour,
Dans l'éditeur VBA, insérer un module standard dans lequel vous copiez la macro ci-dessous :
VB:
Sub Formate()
'
Dim fin As Long
'
fin = ActiveWorkbook.Sheets("Feuil1").Range("A1").End(xlDown).Row
    Columns("V:X").Select
    Selection.Delete Shift:=xlToLeft
    Columns("A:B").Select
    With Selection
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.UnMerge
    Columns("B:B").Select
    Selection.Delete Shift:=xlToLeft
    Range("A1:T" & fin).Select
    Application.CutCopyMode = False
    ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$T$13"), , xlYes).Name = _
        "Filtre"
    Range("Filtre[#All]").Select
    ActiveSheet.ListObjects("Filtre").TableStyle = "TableStyleMedium3"
    Range("B" & fin).Select
    ActiveSheet.ListObjects("Filtre").Range.AutoFilter Field:=3, Criteria1:= _
        "total"
    Range("Filtre[service]").Select
    Selection.Replace What:="vf_bd_", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Selection.Replace What:="abcd_", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Range("D:D,N:N,T:T").Select
    Range("Filtre[[#Headers],[temps mails]]").Activate
    Selection.NumberFormat = "[$-x-systime]h:mm:ss AM/PM"
    Range("F:F,G:G,R:S").Select
    Range("Filtre[[#Headers],[dmt sortant]]").Activate
    Selection.NumberFormat = "[$-x-systime]h:mm:ss AM/PM"
End Sub
Puis retour au fichier pour exécuter la macro (touche F5).
Bonne journée
 
Dernière édition:
Bonjour.
j'ai réalisé une macro composée de quatre procédures qui représentent chacune les points 1 2 3 4 de ton post
Elle agit sur la feuille active (pour les tests)et pour ne pas perdre tes données exemples. Tu copies les données dans la feuille 2 par exemple et tu lances la macro deb()
Pour le point 3 (seconde partie) j'ai mis au format mm:ss, pour ne pas perdre les secondes, il existe aussi un bout de code qui compte uniquement les minutes, mis en commentaire le cas échéant.
Bonjour Sousou, je n'arrive pas à ouvrir le fichier?
 
Bonjour,
Dans l'éditeur VBA, insérer un module standard dans lequel vous copiez la macro ci-dessous :
VB:
Sub Formate()
'
Dim fin As Long
'
fin = ActiveWorkbook.Sheets("Feuil1").Range("A1").End(xlDown).Row
    Columns("V:X").Select
    Selection.Delete Shift:=xlToLeft
    Columns("A:B").Select
    With Selection
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.UnMerge
    Columns("B:B").Select
    Selection.Delete Shift:=xlToLeft
    Range("A1:T" & fin).Select
    Application.CutCopyMode = False
    ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$T$13"), , xlYes).Name = _
        "Filtre"
    Range("Filtre[#All]").Select
    ActiveSheet.ListObjects("Filtre").TableStyle = "TableStyleMedium3"
    Range("B" & fin).Select
    ActiveSheet.ListObjects("Filtre").Range.AutoFilter Field:=3, Criteria1:= _
        "total"
    Range("Filtre[service]").Select
    Selection.Replace What:="vf_bd_", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Selection.Replace What:="abcd_", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Range("D:D,N:N,T:T").Select
    Range("Filtre[[#Headers],[temps mails]]").Activate
    Selection.NumberFormat = "[$-x-systime]h:mm:ss AM/PM"
    Range("F:F,G:G,R:S").Select
    Range("Filtre[[#Headers],[dmt sortant]]").Activate
    Selection.NumberFormat = "[$-x-systime]h:mm:ss AM/PM"
End Sub
Puis retour au fichier pour exécuter la macro (touche F5).
Bonne journée
bonjour Gégé,
Cela ne correspond pas tout à fait à ce que je veux faire car mon fichier que j'avais joint été anonymisé.
Je n'ai pas que 13 lignes mais un nombre indéfini suivant les journées.
C'est pour cela que dans la colonne B je filtre pour ne garder que total et supprimer toutes les autres lignes pas juste garder un filtre
ensuite les temps ça ne fonctionne pas derrière si je veux faire des calculs excel ne considère pas les cellules comme un format de temps.
Pour y arriver aujourd'hui j'ajoute une colonne à coté de chaque colonne de temps et je mets une formule =convert(e1;"hh";"hh") j'applique le format personnalisé [h]:mm:ss pour les colonnes spécifiées et [mm]:ss pour les autres (car j'ai des données qui dépassent 24h ou 24 minutes)
Si besoin je peux vous envoyer le fichier en masquant les noms des personnes?

Merci pour votre aide
 

Gégé-45550

XLDnaute Accro
bonjour Gégé,
Cela ne correspond pas tout à fait à ce que je veux faire car mon fichier que j'avais joint été anonymisé.
Je n'ai pas que 13 lignes mais un nombre indéfini suivant les journées.
C'est pour cela que dans la colonne B je filtre pour ne garder que total et supprimer toutes les autres lignes pas juste garder un filtre
ensuite les temps ça ne fonctionne pas derrière si je veux faire des calculs excel ne considère pas les cellules comme un format de temps.
Pour y arriver aujourd'hui j'ajoute une colonne à coté de chaque colonne de temps et je mets une formule =convert(e1;"hh";"hh") j'applique le format personnalisé [h]:mm:ss pour les colonnes spécifiées et [mm]:ss pour les autres (car j'ai des données qui dépassent 24h ou 24 minutes)
Si besoin je peux vous envoyer le fichier en masquant les noms des personnes?

Merci pour votre aide
Bonjour,
Pour les 13 lignes, c'est une inattention de ma part. Remplacez la ligne
VB:
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$T$13"), , xlYes).Name = _
        "Filtre"
par :
Code:
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$T$" & fin), , xlYes).Name = _
        "Filtre"
Pour le format :, remplacez la 1ere ligne :
VB:
Selection.NumberFormat = "[h]:mm:ss"
et la seconde par :
VB:
Selection.NumberFormat = "mm:ss"
Si cela ne fonctionne toujours pas, OK pour le fichier anonymisé.
Bonne journée
NB :
Pour ouvrir un fichier Excel avec macro lorsqu'il a été téléchargé, il faut "forcer" les sécurités Microsoft.
Pour cela, avant d'ouvrir le fichier, il faut aller dans le répertoire où il a été téléchargé, faire un clic droit dessus, puis cliquer sur "Propriétés" et enfin sur la case "Débloquer"
Debloquer.jpg
 

Gégé-45550

XLDnaute Accro
Bonjour Lolo le normand,
En reprenant l'excellent code fourni par Efgé, voici une proposition qui devrait fonctionner :
Après création d'un bouton de commande de type ActiveX sur la "Feuil1", ajouter dans le code VBA de la "Feuil1" le code suivant :
VB:
Private Sub CommandButton1_Click()
Dim LstRow&, LstCol$, i&, j&, K&
Dim TabSource As Variant, TabReport As Variant
Dim Discrit$
Dim FormatH As Range, FormatM As Range

Discrit = "abcd"

With Me
    LstCol = .Cells(1, Columns.Count).End(xlToLeft).Column - 3
    LstRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    TabSource = .Range(.Cells(1, 1), .Cells(LstRow, 21))
    K = Application.CountIf(.Columns("c"), "total") + 1
End With
ReDim TabReport(1 To K, 1 To LstCol)
K = 1
For i = LBound(TabSource, 2) To UBound(TabSource, 2)
    TabReport(1, i) = TabSource(1, i)
Next i
For i = LBound(TabSource, 1) + 1 To UBound(TabSource, 1)
    If TabSource(i, 3) = "total" Then
        K = K + 1
        Tmp = Split(TabSource(i, 1), "_")
        Select Case Tmp(LBound(Tmp))
            Case "abcd"
                TabReport(K, 1) = Tmp(LBound(Tmp))
            Case Else
                TabReport(K, 1) = Tmp(UBound(Tmp))
        End Select
        For j = 2 To UBound(TabReport, 2)
            TabReport(K, j) = TabSource(i, j)
        Next j
    End If
Next i

With Sheets.Add(after:=Sheets(Sheets.Count))
    .Name = "MiseEnForme_" & Sheets.Count - 1
    .Cells(1, 1).Resize(UBound(TabReport, 1), UBound(TabReport, 2)) = TabReport
    .Columns.AutoFit
    .Activate
End With
ActiveSheet.Range("AE2:AE" & K).FormulaR1C1 = "=CONVERT(RC[-26],""hh"",""hh"")"
ActiveSheet.Range("AO2:AO" & K).FormulaR1C1 = "=CONVERT(RC[-26],""hh"",""hh"")"
ActiveSheet.Range("AU2:AU" & K).FormulaR1C1 = "=CONVERT(RC[-26],""hh"",""hh"")"
ActiveSheet.Range("AG2:AH" & K).FormulaR1C1 = "=CONVERT(RC[-26],""hh"",""hh"")"
ActiveSheet.Range("AS2:AT" & K).FormulaR1C1 = "=CONVERT(RC[-26],""hh"",""hh"")"
ActiveSheet.Range("AE2:AE" & K).Select: Selection.Copy: ActiveSheet.Range("E2").Select: Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
ActiveSheet.Range("AO2:AO" & K).Select: Selection.Copy: ActiveSheet.Range("O2").Select: Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
ActiveSheet.Range("AU2:AU" & K).Select: Selection.Copy: ActiveSheet.Range("U2").Select: Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
ActiveSheet.Range("AG2:AH" & K).Select: Selection.Copy: ActiveSheet.Range("G2").Select: Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
ActiveSheet.Range("AS2:AT" & K).Select: Selection.Copy: ActiveSheet.Range("S2").Select: Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
ActiveSheet.Columns("AE:AT").Select
Selection.Delete Shift:=xlToLeft
With ActiveSheet
    Set FormatH = Application.Union(ActiveSheet.Range("E2:E" & K), ActiveSheet.Range("O2:O" & K), ActiveSheet.Range("U2:U" & K))
    Set FormatM = Application.Union(ActiveSheet.Range("G2:H" & K), ActiveSheet.Range("S2:T" & K))
End With
FormatH.Select
Selection.NumberFormat = "[h]:mm:ss"
FormatM.Select
Selection.NumberFormat = "[mm]:ss"
ActiveSheet.Range("A1").Select
End Sub
Les 41 premières lignes sont de Efgé, le reste est de moi mais les "Barbatruc" l'écriraient sûrement de façon plus belle et concise.
Bonne journée
 

Efgé

XLDnaute Barbatruc
RE
@Gégé-45550
Il faut éviter le plus possible, voir toujours, la sélection.

Une astuce pour éviter ce genre de ligne:
VB:
ActiveSheet.Range("AE2:AE" & K).Select: Selection.Copy: ActiveSheet.Range("E2").Select: Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Utilise plutôt
Code:
With ActiveSheet.Range("AE2:AE" & K)
    .Value = .Value
End With

Ensuite pour gagner du temps il vaux mieux travailler dans le tableau (Array)
Je propose (les format seront à débattre comme suggéré précédemment)
Code:
Private Sub CommandButton1_Click()
Dim LstRow&, LstCol$, i&, j&, K&
Dim TabSource As Variant, TabReport As Variant
Dim Discrit$

Discrit = "abcd"

With Me
    LstCol = .Cells(1, Columns.Count).End(xlToLeft).Column - 3
    LstRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    TabSource = .Range(.Cells(1, 1), .Cells(LstRow, 21))
    K = Application.CountIf(.Columns("c"), "total") + 1
End With
ReDim TabReport(1 To K, 1 To LstCol)
K = 1
For i = LBound(TabSource, 2) To UBound(TabSource, 2)
    TabReport(1, i) = TabSource(1, i)
Next i
For i = LBound(TabSource, 1) + 1 To UBound(TabSource, 1)
    If TabSource(i, 3) = "total" Then
        K = K + 1
        Tmp = Split(TabSource(i, 1), "_")
        Select Case Tmp(LBound(Tmp))
            Case "abcd"
                TabReport(K, 1) = Tmp(LBound(Tmp))
            Case Else
                TabReport(K, 1) = Tmp(UBound(Tmp))
        End Select
        For j = 2 To UBound(TabReport, 2)
            TabReport(K, j) = TabSource(i, j)
        Next j
        For j = 2 To K
            TabReport(j, 4) = Format(TabReport(j, 4), "[H]hh:mm:ss")
            TabReport(j, 7) = Format(TabReport(j, 7), "[mm]mm:ss")
            TabReport(j, 8) = Format(TabReport(j, 8), "[mm]mm:ss")
            TabReport(j, 15) = Format(TabReport(j, 15), "[H]hh:mm:ss")
            TabReport(j, 19) = Format(TabReport(j, 19), "[mm]mm:ss")
            TabReport(j, 20) = Format(TabReport(j, 20), "[mm]mm:ss")
            TabReport(j, 21) = Format(TabReport(j, 21), "[H]hh:mm:ss")
        Next j
    End If
Next i

With Sheets.Add(after:=Sheets(Sheets.Count))
    .Name = "MiseEnForme_" & Sheets.Count - 1
    .Cells(1, 1).Resize(UBound(TabReport, 1), UBound(TabReport, 2)).Value = TabReport
    .Columns.AutoFit
End With

End Sub
Cordialement
 

Efgé

XLDnaute Barbatruc
Re
Code plus court :
VB:
Private Sub CommandButton1_Click()
Dim LstRow&, i&, j&, K&
Dim TabSource As Variant, TabReport As Variant, Tmp As Variant
Dim Discrit$

Discrit = "abcd"

With Me
    LstRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    TabSource = .Range(.Cells(1, 1), .Cells(LstRow, 21))
    K = Application.CountIf(.Columns("c"), "total") + 1
End With
ReDim TabReport(1 To K, 1 To 21)
K = 1
For i = LBound(TabSource, 2) To UBound(TabSource, 2)
    TabReport(1, i) = TabSource(1, i)
Next i
For i = LBound(TabSource, 1) + 1 To UBound(TabSource, 1)
    If TabSource(i, 3) = "total" Then
        K = K + 1
        Tmp = Split(TabSource(i, 1), "_")
        Select Case Tmp(LBound(Tmp))
            Case "abcd"
                TabReport(K, 1) = Tmp(LBound(Tmp))
            Case Else
                TabReport(K, 1) = Tmp(UBound(Tmp))
        End Select
        For j = 2 To UBound(TabReport, 2)
            Select Case j
                Case 4, 15, 21
                    TabReport(K, j) = Format(TabSource(i, j), "[H]hh:mm:ss")
                Case 7, 8, 19, 20
                    TabReport(K, j) = Format(TabSource(i, j), "[mm]mm:ss")
                Case Else
                    TabReport(K, j) = TabSource(i, j)
            End Select
        Next j
    End If
Next i

With Sheets.Add(after:=Sheets(Sheets.Count))
    .Name = "MiseEnForme_" & Sheets.Count - 1
    .Cells(1, 1).Resize(UBound(TabReport, 1), UBound(TabReport, 2)).Value = TabReport
    .Columns.AutoFit
End With

End Sub
Cordialement
 

Gégé-45550

XLDnaute Accro
Re
Code plus court :
VB:
Private Sub CommandButton1_Click()
Dim LstRow&, i&, j&, K&
Dim TabSource As Variant, TabReport As Variant, Tmp As Variant
Dim Discrit$

Discrit = "abcd"

With Me
    LstRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    TabSource = .Range(.Cells(1, 1), .Cells(LstRow, 21))
    K = Application.CountIf(.Columns("c"), "total") + 1
End With
ReDim TabReport(1 To K, 1 To 21)
K = 1
For i = LBound(TabSource, 2) To UBound(TabSource, 2)
    TabReport(1, i) = TabSource(1, i)
Next i
For i = LBound(TabSource, 1) + 1 To UBound(TabSource, 1)
    If TabSource(i, 3) = "total" Then
        K = K + 1
        Tmp = Split(TabSource(i, 1), "_")
        Select Case Tmp(LBound(Tmp))
            Case "abcd"
                TabReport(K, 1) = Tmp(LBound(Tmp))
            Case Else
                TabReport(K, 1) = Tmp(UBound(Tmp))
        End Select
        For j = 2 To UBound(TabReport, 2)
            Select Case j
                Case 4, 15, 21
                    TabReport(K, j) = Format(TabSource(i, j), "[H]hh:mm:ss")
                Case 7, 8, 19, 20
                    TabReport(K, j) = Format(TabSource(i, j), "[mm]mm:ss")
                Case Else
                    TabReport(K, j) = TabSource(i, j)
            End Select
        Next j
    End If
Next i

With Sheets.Add(after:=Sheets(Sheets.Count))
    .Name = "MiseEnForme_" & Sheets.Count - 1
    .Cells(1, 1).Resize(UBound(TabReport, 1), UBound(TabReport, 2)).Value = TabReport
    .Columns.AutoFit
End With

End Sub
Cordialement
@Efgé, Merci pour cette belle leçon de code.
On pourrait ajouter une petite dernière (pour la route), à la fin du dernier bloc With :
VB:
.Columns("B").Delete
pour supprimer cette colonne devenue inutile.
Merci encore pour tous ces conseils.
Bonne après-midi.
 
Bonjour,
je reçois un export tous les jours que je dois transformer tous les jours pour plusieurs raisons:
  1. je filtre la colonne C équipe pour ne conserver que les lignes où figure Total et les autres lignes doivent être supprimées
  2. les colonnes A et B sont fusionnées, une fois n'avoir gardé que les lignes totales de la colonne C, les deux premières lignes ont pour service CNMR_Chalons et CNMR_Clermont; toutes les autres cellules de la colonne service contiennent des noms sous le format Site_SC_nom du centre et Site_SD_nom du centre. Je souhaite n'avoir qu'une colonne (défusionner A et B) et ne conserver pour les deux premières lignes que CNMR et pour tout le reste que le nom du Centre.
  3. les colonnes E, O, U contiennent des informations de temps mais sous un format standard j'aimerai transformer ces temps sous le format [H]:mm:ss
  4. les colonnes G, H, S, T contiennent des informations de temps mais sous un format standard que j'aimerai transformer sous le format [mm]
  5. les colonnes V, W et X sont à supprimer
Je vous ai mis en rouge du coup les informations nouvelles par rapport à ma première publication.
Je vous joints aussi le fichier d'origine, l'onglet s'appelle toujours LBO_R6.
En feuille 2 je vous ai mis le résultat que je souhaite obtenir via macro aujourd'hui je fais tout de façon artisanale...
Déjà merci pour votre aide et j'espère que ces nouvelles infos vous seront utiles

Merci d'avance
 

Pièces jointes

  • Copie de 17___Suivi_des_activites_par_agent_Rapport_1_1_1 (00B).xls
    541 KB · Affichages: 3
Re
Un fichier exemple anonyme et "Représentatif" est toujours demandé,..

Avec très peu d'adaptation ma proposition semble correspondre.
Cordialement
Merci beaucoup il reste une petite problématique sur les colonnes G, H,S,T le format que j'attends est [mm]:ss car là les valeurs retournées sont modifiés par rapport au tableau initial?
Quand je reçois mon fichier le matin je dois remplacer par copier coller le fichier que je vous ai envoyé ou il y a un moyen d'enregistrer en dure votre macro?

merci beaucoup pour votre aide
 

Discussions similaires

Statistiques des forums

Discussions
314 628
Messages
2 111 328
Membres
111 102
dernier inscrit
driss touzi