Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Copier cellule avec mise en forme d’une feuille sur l’autre

jeanmi

XLDnaute Occasionnel
Bonjour à tous,

Comment copier une cellule dans une autre feuille.

J'ai deux feuilles COPIES et DONNEES dans mon classeur

Si je fais dans la feuille COPIES en A2

=Données!A2

Je ne retrouve que la donnée pas la mise en forme ( fomat et couleur de la cellule de départ)

Bien sur en VBA pas de pb, mais sans VBA y a t-il une solution ?

Merci pour votre aide

Cordialement
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

La MFC se fait sur la feuille en cours mais en nommant la cellule, il est possible de garder la MFC sur une autre feuille.

JHA
 

Pièces jointes

  • Classeur MFC Jeanmi.xlsx
    9.8 KB · Affichages: 4

Dranreb

XLDnaute Barbatruc
Bonjour.
Il n'y a pas de solution sans VBA certes, mais sans devoir changer de la programmation applicative, si. On peut s'arranger pour qu'une fonction perso utilisable dans des formules fasse changer en dehors des calculs le format de la cellule qui la porte …
 

Dranreb

XLDnaute Barbatruc
Je n'ai pas dit cela, j'ai voulu dire qu'après l'avoir créée en VBA on peut l'utiliser là où on veut sans plus rien avoir à changer dans la programmation. Parce qu'il semble que c'est seulement ça qui est gênant dans ce que disait le demandeur: devoir la retoucher chaque fois qu'on veut que ce soit appliqué pour autre chose.
 

jeanmi

XLDnaute Occasionnel
Bonjour à tous,

La MFC se fait sur la feuille en cours mais en nommant la cellule, il est possible de garder la MFC sur une autre feuille.

JHA
Bonjour @JHA à tous,

Pas bien compris le fonctionnement.

Si je change la valeur de la cellule B2 dans la feuille 2, pas de modif en feuille 1, et dans la feuille2 je ne peux pas changer la couleur de la cellule qui dans mon cas changent en fonction de certain critéres.
je que je cherche à faire, si possible, sans VBA, c'est une copie automatique de cetaines cellules de la feuille 1 vers la feuille2, mais les données de la feuille 2 change automatiquement en fonction de choix fait dans une autre feuille.
c'est peut-etre pas trés claire.
Cordialement
 

jeanmi

XLDnaute Occasionnel
Bonjour @Dranreb à tous,

J’ai créé une fonction VBA qui semble correspondre à ce que je voulais faire ( en mode enregistrement macro)


VB:
Sub copier_coller()
'
    Sheets("Jours").Select
    Range("J11,J13,J15,J17,J19,J21,J23").Select ' les données de la feuille Jours
    Range("J23").Activate
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Feuil1").Select
    Range("D5:D11").Select
    Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Range("D4").Select
End Sub

Maintenant comment faire pour que cette fonction soit réalisée à chaque fois que je rentre une info dans la cellule D1 de ma feuille1,par exemple. Comme ça la copie sera faite automatiquement sans problème.

Par contre, j'ai un autre pb. la couleur des mes cellules n'est pas la bonne pour chaque cellule. je ne trouve pas d'ou vienne les couleur et comment les copier avec la valeur ????

j'ai vue il y a ume ise en forme conditionnelle dans mes cellule, donc la question, comment ajouter au code VBA la copie de la mise en forme conditionnelle en plus des valeures.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
J’ai créé une fonction VBA
Ce que vous montrez est une procédure, mais pas une fonction personnalisée.
Une Private Sub Worksheet_Change(ByVal Target As Range) dans le module de la feuille serait exécutée chaque fois que vous changez le contenu d'une cellule.
La MeFC est collée avec normalement. Mais peut être ne convient-elle pas dans la plage cible.
 

jeanmi

XLDnaute Occasionnel
Bonjour @Dranreb à tous,

"Ce que vous montrez est une procédure, mais pas une fonction personnalisée."
C'est quoi une fonction personnalisée ?, le code fonctionne bien à l'exeption de la MeFC qui n'est pas reproduite.

"Une Private Sub Worksheet_Change(ByVal Target As Range) dans le module de la feuille serait exécutée chaque fois que vous changez le contenu d'une cellule."
ce que j'aimerai c'est que la mise à jour soit réalisée uniquement si il y a une modification dans la cellule D1 de la feuille1

"La MeFC est collée avec normalement. Mais peut être ne convient-elle pas dans la plage cible"
Que faut-il faire ?

Cordialement
 

Dranreb

XLDnaute Barbatruc
Une fonction personnalisée s'écrit sous forme de procédure Function et non pas Sub. Excel vieille à l'exécuter si un des antécédents de la formule qui l'utilise change de valeur, et applique en tant que celle de la cellule la valeur qu'elle retourne.
Target représente la plage changée. Il suffit de tester si son adresse est "$D$1"
Il faut l'examiner. S'il n'est pas possible de la spécifier de telle sorte qu'elle fonctionne des deux cotés il vaut mieux ne coller que les valeurs pour ne pas détruire la version qui marche dans la plage cible.
 

jeanmi

XLDnaute Occasionnel
Merci pour toutes ces réponses, mais tout cela me semble bien compliqué pour moi.
Je vais donc me contenter de la petite macro réalisée en auto apprentissage, qui me copie les données.
Il ne faut peut-être pas chercher à faire ce que l'on ne maitrise pas.

Cordialement
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…