Macro copier coller avec liaison

Bonjour à tous,

Sheets("Feuil1").Select

Range("C8").Select

Selection.Copy

Sheets("Feuil1 - Tableau 1").Select

Range("F161").Select

ActiveSheet.Paste Link:=True

Sheets("Feuil1").Select

Range("D8").Select

Application.CutCopyMode = False

Selection.Copy

Sheets("Feuil1 - Tableau 1").Select

Range("F162").Select

ActiveSheet.Paste Link:=True

est il possible d'ecrire cette macro sans répéter la commande copier pour C8,D8.......jusqu'a EU8

et de coller avec liaison a la suite dans dans la colonne F sur la feuil1-Tableau1

Faire une sorte de boucle jusqu'a EU8

Merci de votre aide

Greg

Bonjour,

Si j'ai bien compris, tu prends la ligne de C8 à EU8 et tu la copie dans la colonne F à partir de la ligne 161 de la 2ème feuille ?

Si ce qui t'ennuis est le fait de passer de ligne à colonne pour faire la copie en une seule fois, il faut utiliser un collage en "transposant" les données.

Application.ScreenUpdating = False

Sheets("Feuil1").Select
Range("C8:EU8").Select
Selection.Copy
Sheets("Feuil1 - Tableau 1").Select
Range("F161").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
Application.CutCopyMode = False
Sheets("Feuil1").Select

Application.ScreenUpdating = True

Cordialement.

Malheureusement ca ne fonctionne pas d'apres ce que je sais on ne peut pas transposer et coller avec liaison!!!

c'est pour ca que je n'ai pas utilisé transposer!!!

je crois qu"il faut faire une macro qui copie les cellules une a une avec collage special-->coller avec liaison

mzerci encore pour t'on aide

Bonjour à tous,

Une solution sans copier-coller :

Sub ErsatzCopieColleLiaison()
Dim CeWkb As String, AdressIni$, CelAdress$
Dim FeuilSource As Worksheet, FeuilDest As Worksheet
Dim col As Long
Dim temp

CeWkb = ThisWorkbook.Name
Set FeuilSource = Sheets("Feuil1")
Set FeuilDest = Sheets("Feuil1 - Tableau 1")
ReDim temp(1 To 151 - 3 + 1, 1 To 1)

Application.ScreenUpdating = False
With FeuilDest
    For col = 3 To 151 'colonne C à EU
        AdressIni = FeuilSource.Cells(8, col).Address(, , , True) 'extraction de l'addresse complète de la celllule
        'traitement de l'addresse pour n'avoir que le nom de la feuille et l'addresse cellule
        temp(col - 2, 1) = "=" & Replace(Replace(Replace(AdressIni, CeWkb, ""), "[", ""), "]", "")
    Next col
    .Range("F161:F" & col - 1 + 161 - 3).Formula = temp
End With
End Sub

Hum pas vu l'histoire de la liaison, au temps pour moi, essais ceci, autre solution plus simple avec utilisation de formule matricielle:

Sheets("Feuil1 - Tableau 1").Select
Range("F161:F309").Select
Selection.FormulaArray = "=TRANSPOSE(Feuil1!R[-153]C[-3]:R[-153]C[145])"

Normalement, dans ta plage F161:F309 de ta 2ème page, tu auras bien le contenu de la cellule correspondante de ta plage C8:EU8 de la 1ère feuille.

Par contre tu auras les valeurs, c'est à dire que si en D8 tu as une formule qui te retourne X, et bien en F162 tu auras X directement mais la formule n'apparait pas.

Cordialement.

Rechercher des sujets similaires à "macro copier coller liaison"