Recopier le format des cellules au-dessus de la sélection ?

Bonjour Forum !

Tout est dans le titre : j’aimerais écrire une macro qui me permette de coller le format des cellules au-dessus de la sélection, c'est-à-dire que chaque cellule de la sélection prenne le format de la cellule immédiatement au-dessus, mais je ne sais pas comment faire.

Quelqu’un pourrait-il m’aider, siouplé ?

Merci !

Bonjour

Un petit fichier de travail serait le bienvenu

Merci pour ta réponse.

Ci-joint le fichier.

J'ai essayé d'être aussi clair que possible.

33exemple.zip (6.91 Ko)

Bonjour,

A tester :

Sub FRMTCell()

Dim C As Range

Application.ScreenUpdating = False

For Each C In Selection

    Cells(C.Row - 1, C.Column).Copy
    C.Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False

Next C

Application.ScreenUpdating = True

End Sub

Cordialement,

Edit: je postais / testais en même temps que tu as mis ton fichier, pas sur que mon code fonctionne pour les liens hypertextes du coup, vu que tu n'as parlé que de mise en forme dans le sujet initial.

Pour que cela marche avec tout, remplacer la partie du collage par :

Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
        , SkipBlanks:=False, Transpose:=False

Bonjour

Au vu de ton fichier et sans macro

As-tu essayé le pinceau (copier/collage spécial ---> Format) ?

Cela serait plus simple non ?

A toi de dire

Merci pour vos réponses.

@Zirak

J'ai testé ton 1er code, qui marche impec.

Je m'apprêtais à te faire une réponse enthousiaste quand j'ai vu ton edit.

En effet, le code ne marche pas pour les liens hypertexte.

J'ai donc modifié ton code comme tu l'indiquais, et là, ça ne marche plus du tout !

Ci-dessous la macro toute entière, pour être sûr que je n'ai pas fait de bêtise (j'ai juste changé le nom de la macro) :

Sub Format_Cellule_Coller_Mise_en_forme_du_dessus()

Dim C As Range
Application.ScreenUpdating = False

For Each C In Selection
    Cells(C.Row - 1, C.Column).Copy
    C.Select
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
        , SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False

Next C
Application.ScreenUpdating = True

End Sub

@Banzai64

Biensûr le pinceau marche, mais ça devient fastidieux quand on le fait à répétition...

Avec une macro, je sélectionne, un raccourci clavier et c'est fini !

Bonjour à tous,

On prend la ligne 5 comme modèle,

tu te positionne n'importe où sur la ligne à formater et:

Sub FormatLigne()
    Rows(5).Copy
    Rows(ActiveCell.Row).PasteSpecial Paste:=xlPasteFormats
    Application.CutCopyMode = False
End Sub

Amicalement

Claude

Oui autant pour moi ne pas tenir compte de l'édit, j'avais testé mais en ayant recopier au prèalable une ligne identique de valeur sans mise en forme donc effectivement cela marchait mais je n'avais pas vu que cela avait copié le contenu et non la mise en forme...

Voici la bonne macro :

Sub FRMTCell()

Dim C As Range

Application.ScreenUpdating = False

For Each C In Selection

    Cells(C.Row - 1, C.Column).Copy
    C.Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False

    If Cells(C.Row - 1, C.Column).Hyperlinks.Count > 0 Then
        If Left(C.Value, 4) = "www." Then
            ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="http://" & C.Value _
                , TextToDisplay:=C.Value
        Else
            ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
            "mailto:" & C.Value, TextToDisplay:=C.Value
        End If
    End If

Next C

Application.ScreenUpdating = True

End Sub

@Claude : le xlPasteFormats ne marche pas dans son cas enfin n'est pas suffisant, car cela copie la mise en forme mais ne rajoute pas les liens hypertextes des adresses mails et des sites.

Cordialement,

C'est parfait ! (et c'était bien au-dessus de mon niveau en VBA).

Merci !!!

gloub a écrit :

(et c'était bien au-dessus de mon niveau en VBA).

Pas forcement, n'ayant pas spécialement l'habitude de gérer des liens hypertextes, les 3/4 de la macro sortents de l'éditeur de macro que j'ai un peu adapté, après c'est juste une question de "logique" pour savoir comment faire les tests et/ou de recherche sur internet

Cordialement,

Rechercher des sujets similaires à "recopier format dessus selection"