Modification d'une macro

Bonjour à tous,

J'aurais une macro à modifiée, (une macro que Thau Thème m'a gentillement filée)

En fait j'ai un nouveau fichier, où je dois trier les compteurs par feuille , mais j'ai une colonne vide au milieu de ma feuille (je ne peux pas la supprimer car elle est importante pour passer les données ensuite dans une autre macro).

Or avec le code de cette macro, avec la colonne vide au milieu ça ne prend pas en compte les 3 colonnes qui suivent. Je voudrais donc résoudre le problème, si c'est possible mais je ne trouve pas la solution.

Je te mets ci-joint le fichier qui résume mon problème.

J'ai la feuille de départ "étape 2" et j'ai fait tourner la macro sur cette feuille et le résultat est sur les feuilles suivantes, je voudrais que tout soit affiché et pas que les 3 premières colonnes.

Merci à tous par avance.

Léo

4fichier-demo.xlsx (44.95 Ko)

dsl, j'ai oublié le code de la macro le voici

Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim D As Object 'déclare la variable D (Dictionnaire)
Dim I As Integer 'déclare la variable I (Incrément)
Dim TMP As Variant 'déclare la variable TMP (tableau TeMPoraire)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
Set OS = Worksheets("Données_Compteurs") 'définit l'onglet source OS
Application.DisplayAlerts = False 'masque les messages d'Excel
For I = Sheets.Count To 1 Step -1 'boucle inversée sur tous les onglet du classeur (du dernier au premier)
    'si le nom de l'onglet de la boucle n'est pas le nom de l'onglet source, supprime l'onglet
    If Sheets(I).Name <> OS.Name Then Sheets(I).Delete
Next I 'prochain onglet de la boucle
Application.DisplayAlerts = True 'affiche les message d'Excel
TV = OS.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
For I = 2 To UBound(TV, 1) 'boucle sur toutes es lignes I du tableau des valeurs (en partant de la seconde)
    D(TV(I, 1)) = "" 'alimente le dicrionnaire D avec les données en colonne 1 du tableau des valeurs (le Compteur)
Next I 'prochaine ligne de la boucle
TMP = D.Keys 'récupère dans le tableau temporaire TMP la liste des éléments du dictionnaire D sans doublon
For J = 0 To UBound(TMP) 'boucle 1 : sur tous les éléments J du tableau temporaire TMP
    Worksheets.Add After:=Sheets(Sheets.Count) 'ajoute un nouvel onglet en dernière position
    Set OD = ActiveSheet 'définit l'onglet destination OD
    OD.Name = TMP(J) 'renomme l'onglet destination
    'récupère la première ligne du tableau des valeurs dans A1 redimensionnée de l'onglet destination
    OD.Range("A1").Resize(1, UBound(TV, 2)).Value = Application.Index(TV, 1)
    For I = 2 To UBound(TV, 1) 'boucle 2 : sur toutes es lignes I du tableau des valeurs (en partant de la seconde)
        If TV(I, 1) = TMP(J) Then 'condition : si la donnée ligne I colonne 1 de TV est égale à l'élément J de TMP
            Set DEST = OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0) 'définit la cellule de destination DEST
            'récupère la ligne I tableau des valeurs dans DEST redimensionnée
            DEST.Resize(1, UBound(TV, 2)).Value = Application.Index(TV, I)
        End If 'fin de la condition
    Next I 'prochaine ligne de la boucle 2
    OD.Columns(3).NumberFormat = "hh:mm" 'format de la colonne 3
Next J 'prochain élément de la boucle 1
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
End Sub
Rechercher des sujets similaires à "modification macro"