copier le format d'une cellule

sake

XLDnaute Nouveau
bonjour,
j'ai réalisé une macro qui me permet de copier un cellule d'un fichier vert un autre.
mais je n'arrive pas a mettre en place la macro qui me permettra de copier la mise en forme des cellules (couleur, police, remplissage...).

pourriez vous me venir en aide s'il vous plait.

voici mon code VBA:

Sub LitClasseurFermé()
'ChampOuCopier = "A9:N30" ',Z9:Z30,AB9:AB30,AC9:AC30")
ChampOuCopier = "A9:J1000"
Chemin = ("V:\NNN")
Fichier = "HPC-V0.4.xls"
onglet = "Sheet1"
'ChampAlire = "A4:N28" ',P4:p28,Q4:Q28,R4:R28")
'ChampAlire = "A4:Z100"
ChampAlire = "A13:J1020"

LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire
Call group2
Call group3
Call group4
Call group5
End Sub

Sub LitChamp(ChampOuCopier, Chemin, Fichier, onglet, ChampAlire)
Range(ChampOuCopier).FormulaArray = "='" & Chemin & "\[" & Fichier & "]" & onglet & "'!" & ChampAlire
Range(ChampOuCopier) = Range(ChampOuCopier).Value
End Sub
Sub group2()
ChampOuCopier = "L9:O1000"
Chemin = ("V:\NNN")
Fichier = "HPC-V0.4.xls"

onglet = "Sheet1"
ChampAlire = "K13:N1020"

LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire
End Sub

Sub group3()
ChampOuCopier = "Z9:Z1000"
Chemin = ("V:\NNN")
Fichier = "HPC-V0.4.xls"

onglet = "Sheet1"
ChampAlire = "P13:p1020"

LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire
End Sub
Sub group4()
ChampOuCopier = "AB9:AC1000"
Chemin = ("V:\NNN")
Fichier = "HPC-V0.4.xls"

onglet = "Sheet1"
ChampAlire = "Q13:Q1020"

LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire
End Sub
Sub group5()
ChampOuCopier = "BR9:CD1000"
Chemin = ("V:\NNN")
Fichier = "HPC-V0.4.xls"

onglet = "Sheet1"
ChampAlire = "T13:AF1020"

LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire
End Sub
 

Hippolite

XLDnaute Accro
Re : copier le format d'une cellule

Bonsoir,

Utilise
Copy avec Destination:= pour copier
Copy et PasteSpecial pour un collage spécial
Tu aura les syntaxes avec la touche F1

Quand tu mets du code, va en mode avancé et utilise le bouton # pour insérer des balises de code et mets ton code au milieu, sinon c'est illisible. Et si tu es perfectionniste, utilise les balise de code qui sont dans ma signature, tu verras tout de suite la différence.

A+
 
Dernière édition:

PEPE

XLDnaute Junior
Re : copier le format d'une cellule

Bonsoir sake,

je pense que ton problème vient de ta sub :
Sub LitChamp(ChampOuCopier, Chemin, Fichier, onglet, ChampAlire)
Range(ChampOuCopier).FormulaArray = "='" & Chemin & "\[" & Fichier & "]" & onglet & "'!" & ChampAlire
Range(ChampOuCopier) = Range(ChampOuCopier).Value
End Sub
Tu copie les valeurs contenues dans les cellules de ton range.

2 solutions me viennent rapidement :

  1. tu choisis de coder toutes les propriétés de tes cellules (mise en forme) que toi seul connais. Je te joins un fichier explicatif :
  2. tu peux essayer la fonction
    Code:
    Selection.PasteSpecial
Range("A1:14").Select
Selection.Copy
Sheets("Feuil2").Select
Selection.PasteSpecial

Bonne soirée

PEPE
 

job75

XLDnaute Barbatruc
Re : copier le format d'une cellule

Bonjour sake, bienvenue sur XLD,

Le code que vous nous montrez permet de copier la valeur d'une cellule par l'intermédiaire d'une formule de liaison classique.

Il n'y a donc pas besoin d'ouvrir le fichier à copier.

Mais ce code n'est d'aucune utilité pour copier aussi les formats.

Il faut alors ouvrir le fichier d'origine, et exécuter des instruction du type :

Code:
Set cel1 = Workbooks("Fichier1").Sheets("XXX").Range("A1")
Set cel2 = Workbooks("Fichier2").Sheets("YYY").Range("A1")
cel1.Copy cel2
Edit : bonsoir Hippolite et PEPE, pas rafraîchi

A+
 
Dernière édition:

sake

XLDnaute Nouveau
Re : copier le format d'une cellule

Bonjour a tous,
merci pour les repenses>
j'ai essaye les defferentes solutions mais aucune n'a fonctionne, je rappel que mon tableau source est compose de plusieur lignes et colonnes.

y a t il un code que je pourrai a joute au mien sans modifier ma structure et mon code?
merci
 

sake

XLDnaute Nouveau
Re : copier le format d'une cellule

j'ai essayé de réalisé ma macro en ouvrant le fichier mais cette dernière ne fonctionne pas.

mais en fait je me pose la question de savoir, s'il ne vaut mieux pas que je copier les données tel que je le fait maintenant, et contrôlé en // si ce que je viens de copier ds la cellule et # de ce qu'il avait avant, et sinon mettre une couleur??? mais je ne sais si cela est réalisable???
 

Statistiques des forums

Discussions
312 490
Messages
2 088 885
Membres
103 982
dernier inscrit
krakencolas