Simplification macro

Bonjour à tous

Je cherche à simplifier la macro qui suit ET à déboguer la ligne surlignée ("mise en forme L").

Un grand merci d'avance.

Sub MiseEnForme()

'Mise en forme des données

 With Sheets(2)
        drl = .Range("H" & .Rows.Count).End(xlUp).Row 'Dernière ligne non vide en colonne M, utilisée comme référence

        ' Début boucle
    For ligne = 10 To drl

        'mise en forme (J, K, M, O, P)
        .Range("H" & ligne).Copy
        .Range("J" & ligne).Select
        Selection.PasteSpecial Paste:=xlPasteFormats 'Collage format des cellules

        .Range("H" & ligne).Copy
        .Range("K" & ligne).Select
        Selection.PasteSpecial Paste:=xlPasteFormats 'Collage format des cellules

        .Range("H" & ligne).Copy
        .Range("M" & ligne).Select
        Selection.PasteSpecial Paste:=xlPasteFormats 'Collage format des cellules

        .Range("H" & ligne).Copy
        .Range("O" & ligne).Select
        Selection.PasteSpecial Paste:=xlPasteFormats 'Collage format des cellules

        .Range("H" & ligne).Copy
        .Range("P" & ligne).Select
        Selection.PasteSpecial Paste:=xlPasteFormats 'Collage format des cellules

[b][Surligner]'Mise en forme (L)
        .Range("L", ligne).Select
        Selection.NumberFormat = "0%"[/Surligner]  [/b]  

    Next ligne

    End With

End Sub

Pour le débogage de la macro, j'ai fait ceci (et ça marche).

.Range("L" & ligne).Selection.NumberFormat = "0%

Comment simplifier tout ça?

Salut Merhune,

Si tu veux conserver une boucle, tu peux résumer tout le début de ton code par :

Sub MiseEnForme()
With Sheets(2)
For ligne = 10 To .Range("H" & .Rows.Count).End(xlUp).Row
        .Range("H" & ligne).Copy
        .Range("J" & ligne & ",K" & ligne & ",M" & ligne & ",O" & ligne & ",P" & ligne).PasteSpecial Paste:=xlPasteFormats
    Next ligne
End With
End Sub

Mais si sa n'a pas d'importance de conserver la boucle, alors tu peux aussi changer par :

x = Range("H" & Rows.Count).End(xlUp).Row
Range("H10:H" & x).Copy
Range("J10:J" & x & ",K10:K" & x & ",M10:M" & x & ",O10:O" & x & ",P10:P" & x).PasteSpecial Paste:=xlPasteFormats

Concernant ton erreur :

[b][Surligner]'Mise en forme (L)
        .Range("L", ligne).Select
        Selection.NumberFormat = "0%"[/Surligner]  [/b]

C'est des balises HTML que tu viens d'utiliser (et encore la balise 'surligner' n'existe pas en HTML)

En VBA pour mettre en gras :

.Font.Bold = True

En VBA pour surligner :

.Interior.Color= k
'k étant le code couleur

A dispo!

Bonjour,

Mets tes données sous forme de tableau (structuré).

Ceux-ci sont dynamiques, reconduisent les formules, le format des cellules et les MFCs., lors de l'insertion de lignes.

Plus besoin de VBA pour ce faire.

Cdlt.

Merci pour vos réponses.

La boucle étant importante pour moi, j'ai finalement suivi la première méthode proposée que j’avais essayé de faire. Mais mes " " étaient disposés différemment (d'où le fait que ça ne fonctionnait pas).

Je me suis servi du code pour simplifier la seconde partie.

With Sheets(2)
        drl = .Range("H" & .Rows.Count).End(xlUp).Row 'Dernière ligne non vide en colonne M, utilisée comme référence

        ' Début boucle
    For ligne = 10 To drl

        'mise en forme (J, K, L, M, O, P)
        .Range("H" & ligne).Copy
        .Range("J" & ligne & ",K" & ligne & ",M" & ligne & ",O" & ligne & ",P" & ligne & ",L" & ligne).PasteSpecial Paste:=xlPasteFormats

        'Mise en forme (L)
        .Range("L" & ligne).NumberFormat = "0%"

        'mise en forme (N, Q, R)
        .Range("H" & ligne).Copy
        .Range("N" & ligne & ",Q" & ligne & ",R" & ligne).PasteSpecial Paste:=xlPasteFormats

    Next ligne

    End With

 Columns("L:L").Select
    With Selection
        .HorizontalAlignment = xlCenter

    End With

End Sub

PS: pour le surligné/en gras, c'était pas une fonction mais juste le fait que je voulais surligner/mettre en gras dans le forum

PS: pour le surligné/en gras, c'était pas une fonction mais juste le fait que je voulais surligner/mettre en gras dans le forum

Ah xDDD

Rechercher des sujets similaires à "simplification macro"