Petit problème ...

7 réponses
Avatar
michel.legeria
Comment faire un copi=E9-coll=E9 avec liaison, qui conserve la mise en form=
e ?

J'ai besoin d'=E9galer au niveau valeur et mise en forme, des cellules de d=
eux fichiers excel distincts.

Merci pour toute aide.

Michel

7 réponses

Avatar
DanielCo
Bonjour,

Fais d'abors un copier collé puis un collage spécial, bouton "coller
avec liaison.

Cordialement.

Daniel


Comment faire un copié-collé avec liaison, qui conserve la mise en forme ?

J'ai besoin d'égaler au niveau valeur et mise en forme, des cellules de deux
fichiers excel distincts.

Merci pour toute aide.

Michel
Avatar
LSteph
Bonjour à toi aussi,

Tu peux faire en deux Copier Coller Spécial
un pour le Format puis un pour la liaison
mais
si le format est modifié , il n'y aura pas de changement, la liaison ne
jouera que sur la valeur!!

Cordialement.

--
LSteph
a écrit dans le message de
news:
Comment faire un copié-collé avec liaison, qui conserve la mise en forme ?

J'ai besoin d'égaler au niveau valeur et mise en forme, des cellules de deux
fichiers excel distincts.

Merci pour toute aide.

Michel
Avatar
michel.legeria
Merci pour vos réponses.

J'avais fini par trouver comme le faire en deux temps.

1- copie avec liaison
2- copie mise en forme

Mais, donc, il ne semble pas exister de copie de
mise en forme avec liaison ...

Quelqu'un aurait-il une macro qu'on appelerait périodiquement
(ou sur évènement) et qui ferait le boulot de laison
totale (valeur ET mise en forme) ?

Michel
Avatar
MichD
Bonjour,

'Suppose que tu veux copier la plage D1:D3
'de la feuil1 vers la plage B1 de la feuil2

Et la macro : Tu adaptes le nom des feuilles et de la plage
de cellules si nécessaire dans la procédure
'-----------------------------------
Sub test()
'Suppose que tu veux copier la plage D1:D3
'de la feuil1 vers la plage B1 de la feuil2
Dim Rg As Range
Application.ScreenUpdating = False
Application.EnableEvents = False

With Worksheets("Feuil1")
Set Rg = .Range("D1:D3")
Rg.Copy
End With
With Worksheets("Feuil2")
.Range("B1").PasteSpecial xlPasteAll
.Range("B1").PasteSpecial xlPasteColumnWidths

.Paste Destination:=.Range("B1").Resize(Rg.Rows.Count, _
Rg.Columns.Count)
.Paste link:=True
End With

Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.EnableEvents = True

End Sub
'-----------------------------------

MichD
--------------------------------------------------------------
Avatar
profbeaumard
Merci MichD ! C'est très gentil ...

Sais-tu si il est possible d'indexer des plages contenues
dans des fichiers différents pour dupliquer, donc, par exemple,
la plage A1:D20 de la feuill1 du fichier SOURCE.xls vers la plage
D3: de la feuille feuill2 du fichier DESTINATION.XLS ?





Le vendredi 4 octobre 2013 11:16:52 UTC+2, a écrit  :
Comment faire un copié-collé avec liaison, qui conserve la mise en fo rme ?



J'ai besoin d'égaler au niveau valeur et mise en forme, des cellules de deux fichiers excel distincts.



Merci pour toute aide.



Michel



Merc
Avatar
MichD
Le classeur Source.xls et Destination.xls doit être ouvert.

Je ne suis pas sûr de comprendre ce que tu entends par "Indexer"
dans ta question.

Si tu veux simplement faire une simple copie : (une seule ligne)
Workbooks("SOURCE.xls").Worksheets("Feuil1").Range("A1:D20").copy
Workbooks("DESTINATION.XLS").Worksheets("Feuil2").Range("D3")


'----------------------------------------------------
Sub test()
'Suppose que tu veux copier la plage A1:D20
'de la feuil1 du classeur où tu as copié la macro
'vers le classeur "Destination", feuil2, cellule D3
Dim Rg As Range
Application.ScreenUpdating = False
Application.EnableEvents = False

With Workbooks("SOURCE.xls").Worksheets("Feuil1")
Set Rg = .Range("A1:D20")
Rg.Copy
End With
With Workbooks("DESTINATION.XLS")
With .Worksheets("Feuil2")
.Range("D3").PasteSpecial xlPasteAll
.Range("D3").PasteSpecial xlPasteColumnWidths

.Paste Destination:=.Range("D3").Resize(Rg.Rows.Count, _
Rg.Columns.Count)
.Paste link:=True
End With
End With

Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.EnableEvents = True

End Sub
'----------------------------------------------------


MichD
---------------------------------------------------------------
Avatar
michel.legeria
Le lundi 14 octobre 2013 12:19:28 UTC+2, MichD a écrit :
Le classeur Source.xls et Destination.xls doit être ouvert.



Je ne suis pas sûr de comprendre ce que tu entends par "Indexer"

dans ta question.



Si tu veux simplement faire une simple copie : (une seule ligne)

Workbooks("SOURCE.xls").Worksheets("Feuil1").Range("A1:D20").copy

Workbooks("DESTINATION.XLS").Worksheets("Feuil2").Range("D3")





'----------------------------------------------------

Sub test()

'Suppose que tu veux copier la plage A1:D20

'de la feuil1 du classeur où tu as copié la macro

'vers le classeur "Destination", feuil2, cellule D3

Dim Rg As Range

Application.ScreenUpdating = False

Application.EnableEvents = False



With Workbooks("SOURCE.xls").Worksheets("Feuil1")

Set Rg = .Range("A1:D20")

Rg.Copy

End With

With Workbooks("DESTINATION.XLS")

With .Worksheets("Feuil2")

.Range("D3").PasteSpecial xlPasteAll

.Range("D3").PasteSpecial xlPasteColumnWidths



.Paste Destination:=.Range("D3").Resize(Rg.Rows.Count, _

Rg.Columns.Count)

.Paste link:=True

End With

End With



Application.CutCopyMode = False

Application.ScreenUpdating = True

Application.EnableEvents = True



End Sub

'----------------------------------------------------





MichD

---------------------------------------------------------------



"Indexer" veut dire "adresser" pour moi. En tous cas je te remercie beaucou p, je vais essayer !