VBA Excel : reproduire une mise en forme
Résoluyg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je souhaite reproduire la mise en forme d'une zone de cellules Origine vers une autre zone de cellules Destination avec le bout de code suivant:
Sub Reproduire_MiseEnForme()
Dim NJ, Origine, Destination As Range
Set NJ = ActiveCell
Set Origine = NJ.Offset(-1, 0) : NJ.Offset(-1, 8)
Origine.Copy
Set Destination = NJ : NJ.Offset(10,8)
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
La ligne Set Origine bugue: j'ai certainement mal codé la zone origine à copier ?
C'est probablement idem pour pour la ligne Set Destination ...
Windows / Chrome 123.0.0.0
- VBA Excel : reproduire une mise en forme
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
bonjour,
tu as pourtant déjà utiliser la fonction range(), l'as-tu oubliée?
Set Origine = range ( NJ.Offset(-1, 0) , NJ.Offset(-1, 8) )
Bonjour,
Il semble que vous ayez quelques erreurs dans votre code au niveau de la définition des plages d'origine et de destination. Voici une version corrigée de votre code :
Sub Reproduire_MiseEnForme()
Dim NJ As Range, Origine As Range, Destination As Range
'Définition de la cellule active comme point de départ
Set NJ = ActiveCell
'Définition de la plage d'origine (une cellule au-dessus et 8 colonnes à droite de NJ)
Set Origine = NJ.Offset(-1, 0).Resize(1, 8)
'Copie de la mise en forme de la plage d'origine
Origine.Copy
'Définition de la plage de destination (cellule active et 10 lignes en bas et 8 colonnes à droite de NJ)
Set Destination = NJ.Offset(10, 8)
'Collage spécial de la mise en forme dans la plage de destination
Destination.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'Désactivation du mode de copie
Application.CutCopyMode = False
End Sub
Voilà.