VBA - copier une formule en decalant sa colonne

Résolu
mod77 Messages postés 1320 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Dans un classeur j'ai copié une feuil1 avec un tableau, vers une feuil2.

Je souhaite que les formules du tableau de feuil2, qui sont que des copies de cellule d'une autre feuille, soient décalées d'une colonne.

Je lutte en vain pour trouver comment faire.

La formule du tableau est de type "feuil0!A10" et je souhaite la transformer en "feuil0!B10" sur feuil2.

J'obtiens ma formule à partir de ceci:
 Sheets(feuil1).Range("C15").FormulaLocal


Les colonnes ne sont pas toujours les mêmes.

J'ai essayé :

Sheets(feuil2).Range("C15").FormulaLocal=Sheets(feuil1).Range("C15").FormulaLocal.offset(0,1)


mais erreur: "objet attendu"

Pouvez-vous m'aider svp?

Configuration: Windows / Firefox 72.0


N'ayez pas peur! 

2 réponses

  1. mod77 Messages postés 1320 Date d'inscription   Statut Membre Dernière intervention   53
     
    J'ai trouvé ceci et ça marche

    formule = Sheets(feuil1).Range("C15").FormulaLocal
    part1 = Split(formule, "!")(1) 'A10
    part2 = Chr$(Asc(Mid(part1, Len(part1) - 2, 1)) + 1) & Right(part1, 2) 'I Incremente colonne
    ActiveWorkbook.Sheets(feuil2).Range("C15").FormulaLocal = "feuil1!" & part2

    quelle galère...
    0
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, je suggère ceci:
    Dim tableau As Range, rg As Range
    Set tableau = ThisWorkbook.Sheets("Sheet1").[A1:B5]
    For Each rg In tableau
        rg.FormulaLocal = "=" + Split(Range(rg.FormulaLocal).Offset(0, 1).AddressLocal(, , , True), "]")(1)
    Next rg

    ou, dans ton cas:
    ActiveWorkbook.Sheets(feuil2).Range("C15").FormulaLocal = "=" _
        + Split(Range(ActiveWorkbook.Sheets(feuil2).Range("C15").FormulaLocal).Offset(0, 1).AddressLocal(, , , True), "]")(1)
    0