VBA eviter les répétitions

   Cells(premiere1, 3).Value = " Target ( Standart & Square)"
    Cells(premiere1, 3).Font.Underline = True
    Cells(premiere1, 3).Font.Bold = True
    Cells(premiere1, 3).HorizontalAlignment = xlGeneral
    Cells(premiere1, 3).VerticalAlignment = xlCenter

    Cells(premiere2, 2).Value = "N°Deal"
    Cells(premiere2, 2).Borders.Value = 1
    Cells(premiere2, 2).HorizontalAlignment = xlGeneral
    Cells(premiere2, 2).VerticalAlignment = xlCenter

    Cells(premiere2, 3).Value = "FX Cross"
    Cells(premiere2, 3).Borders.Value = 1
    Cells(premiere2, 3).HorizontalAlignment = xlGeneral
    Cells(premiere2, 3).VerticalAlignment = xlGeneral

Bonjour, :)

Auriez vous un moyen pour éviter de répéter les action à chaque cellule pour les borders, horzontal et vertical ?

Merci

Bonjour,

C'est à ça que servent les sous-procédures.

Par exemple :

Option Explicit
Sub TaMacro()
Dim premiere1 As Long, premiere2 As Long
    '....
    Cells(premiere1, 3).Value = " Target ( Standart & Square)"
    Cells(premiere1, 3).Font.Underline = True
    Cells(premiere1, 3).Font.Bold = True
    FormaterCellule (Cells(premiere1, 3))
    Cells(premiere2, 2).Value = "N°Deal"
    FormaterCellule (Cells(premiere2, 2))
    Cells(premiere2, 3).Value = "FX Cross"
    FormaterCellule (Cells(premiere2, 3))
    '....
End Sub
Sub FormaterCellule(c As Range)
    c.Borders.Value = 1
    c.HorizontalAlignment = xlGeneral
    c.VerticalAlignment = xlGeneral
End Sub

Super merci beaucoup ! Bonne journée

Bonjour,

Ou par sélection de cellules :

Cells(premiere1, 3).Value = " Target ( Standart & Square)"
Cells(premiere2, 2).Value = "N°Deal"
Cells(premiere2, 3).Value = "FX Cross"

Range(Cells(premiere1, 3), Cells(premiere2, 2), Cells(premiere2, 3)).Select
Selection.Font.Underline = True
Selection.Font.Bold = True
Selection.HorizontalAlignment = xlGeneral
Selection.VerticalAlignment = xlCenter

Super merci beaucoup en tout cas :)

savez vous comment fusionner les cellules 10-11-12

16-17-18

20-21

toujours avec l'écriture suivante : cells(premiere2, ...)

merci beaucoup

Bonjour,

Pour fusionner où 1 correspond à au numéro de la colonne :

Range(ActiveSheet.Cells(10, 1), ActiveSheet.Cells(12, 1)).Merge

Bonne journée.

Edit : Je déconseille cependant toujours la fusion ..

J'ai essayé le code proposé et il ne fonctionne pas

le range avec la parenthèse n'est pas accepté je crois

Bonjour,

Pouvez-vous joindre un exemple de votre fichier ?

Par avance merci.

Dim premiere1 As Long
Dim premiere2 As Long
Dim premiere3 As Long

premiere1 = Range("B" & Rows.Count).End(xlUp).Row + 2 'permet de mettre le nom du produit avant
premiere2 = Range("B" & Rows.Count).End(xlUp).Row + 4 'permet de mettre en place le nom des colonnes
premiere3 = Range("B" & Rows.Count).End(xlUp).Row + 3 'permet de fusionner les colonne en haut pour certains titres
capture

je ne peux malheureusement pas envoyer de fichier. Je souhaite fusionne les cellules en jaune pour mettre un titre dedans. Je souhaiterai avoir la synthaxe avec cells. :)

Re Bonjour

ou au plus simple vous lancez un enregisterment macro et vous réaliser l'opération de fusion.

Vous verrez ainsi le code utilisé pour fusionner.

Par contre sans exemple je me demande ce que vous entendez par fusionner le contenu ? f

- Fusionner 10 11 12 seul le contenu de la cellule 10 sera conservé.

-Dans le cas contraire il faut utiliser une variable pour stocker le contenu de 10 11 12 et le réinjecter aprés fusion.

Il yaura des données avant les cellules fusionnés et après également.Je ne connais pas à l'avance la longueur des données d'avant.

J'ai trouvé une synthaxe qui fonctionne. Merci de votre aide

A bientôt :)

Sub TARGET()
Dim premiere1 As Long
Dim premiere2 As Long
Dim premiere3 As Long

premiere1 = Range("B" & Rows.Count).End(xlUp).Row + 2 'permet de mettre le nom du produit avant
premiere2 = Range("B" & Rows.Count).End(xlUp).Row + 4 'permet de mettre en place le nom des colonnes
premiere3 = Range("B" & Rows.Count).End(xlUp).Row + 3 'permet de fusionner les colonne en haut pour certains titres
With ActiveSheet
    .Range(.Cells(premiere3, 10), .Cells(premiere3, 11)).Merge
End With

Bonjour,

Ou par sélection de cellules :

Je pense qu'il faut toujours éviter de sélectionner des cellules, c'est souvent une cause de problème et ça ralentit le code !

Surtout que dans ton exemple c'est très simple :

Cells(premiere1, 3).Value = " Target ( Standart & Square)"
Cells(premiere2, 2).Value = "N°Deal"
Cells(premiere2, 3).Value = "FX Cross"

With Range(Cells(premiere1, 3), Cells(premiere2, 2), Cells(premiere2, 3))
.Font.Underline = True
.Font.Bold = True
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
End with
Rechercher des sujets similaires à "vba eviter repetitions"