[VBA] Copier une formule dans une autre feuille

binoit78

XLDnaute Nouveau
Bonjour,

Je suis nouveau sur le forum, désolé si je m'y prends pas comme il faut...

Voilà mon problème : je n'arrive pas à copier-coller une formule vers une autre feuille.
En revanche ça marche en copiant directement la cellule.


Code:
Sub test_sheets()
'
' test_sheets Macro
'

'
    Sheets("Feuil1").Select
    Range("A1").Select
    Selection.Copy
    Sheets("Feuil2").Select
    Range("A1").Select
    ActiveSheet.Paste
    Sheets("Feuil1").Select
    Range("A2").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "2"
    Sheets("Feuil2").Select
    Range("A2").Select
    ActiveSheet.Paste
End Sub

Copier-coller la cellule A1 fonctionne, mais pas A2. Pourquoi et comment y remédier ?

Merci
 

JBARBE

XLDnaute Barbatruc
Re : [VBA] Copier une formule dans une autre feuille

Bonjour,

Comme ça c'est peut être mieux :

Code:
Sub test_sheets()
'
' test_sheets Macro
'

'
    Sheets("Feuil1").Select
    Range("A1").Select
    Selection.Copy
    Sheets("Feuil2").Select
    Range("A1").Select
    ActiveSheet.Paste
    Sheets("Feuil1").Select
    Range("A2").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "2"
    Selection.Copy
    Sheets("Feuil2").Select
    Range("A2").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
End Sub
 

MichD

XLDnaute Impliqué
Re : [VBA] Copier une formule dans une autre feuille

Bonjour,


2 façons de copier la formule de la cellule A1 de la feuil1
vers la feuil2 dans la cellule A2

Si la cellule a une formule matricielle, il aurait fallu utiliser la
propriété "FormulaArray" au lieu de Formula

VB:
Sub test()
Dim Formule As String
With Worksheets("Feuil1")
    Formule = .Range("A1").Formula
End With
With Worksheets("Feuil2")
    .Range("A2").Formula = Formule
End With
End Sub

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

Sub test1()
Dim Rg As Range
Set Rg = Worksheets("Feuil2").Range("A2")
With Worksheets("Feuil1")
    Rg = .Range("A1").Formula
End With
End Sub
 

job75

XLDnaute Barbatruc
Re : [VBA] Copier une formule dans une autre feuille

Bonjour à tous,

Il faut avoir bien compris qu'en VBA il est presque toujours inutile de sélectionner.

Même si l'on veut absolument faire du copier-coller comme au post #1 :

Code:
Sub test_sheets()
Sheets("Feuil1").[A1].Copy Sheets("Feuil2").[A1]
With Sheets("Feuil1").[A2]
  .FormulaR1C1 = "=2*R[-1]C" 'la formule qu'on veut
  .Copy Sheets("Feuil2").[A2]
End With
End Sub
A+
 

FlorianN

XLDnaute Junior
Re : [VBA] Copier une formule dans une autre feuille

Bonsoir le fofo,

Je déterre ce post car j'ai un soucis quasi similaire.

Je souhaite faire un copier-coller de la formule en E11 vers E12.
Mais, car il y a un mais, je souhaite que le copier-coller soit uniquement la formule et pas le résultat de cette formule.

En clair, je suis en train de réaliser un fichier pour débutant sur Excel avec des exercices pour apprendre les bases des formules les plus utilisées (somme, moyenne, nombre...). Bref, la base de la base.
Or, lorsqu'un utilisateur aura terminer un exercice, je souhaite que cela imprime l'exercice avec la formule qu'il aura fait.
Imprimer : OK.
Récupérer la formule faite : KO.

Admettons que Toto a réaliser l'exercice 1.
Il a saisi la formule en E11. Pour passer à l'exercice 2, il doit cliquer sur un bouton de type "exercice terminé > au suivant !".
En cliquant dessus, Excel doit intégrer la formule saisie en E11 dans la cellule E12 au format texte puis imprimer la feuille.
Je ne souhaite pas obtenir le résultat de la formule en E12 mais l'écriture de la formule.

Par exemple :
E11 > =somme(E5:E9) donne 126
E12 > =somme(E5:E9) donne =somme(E5:E9)

Je bloque sur la partie de récupération de la formule en E11 au format texte en E12.

Savez-vous comment faire avec un macro ?
 

Staple1600

XLDnaute Barbatruc
Re : [VBA] Copier une formule dans une autre feuille

Bonsoir à tous


FlorianN
L'usage est de créé sa propre discussion pour poser sa question
Chose que tu tu déjà fait pourtant (11 fois)
Tu aurais pu le faire une douzième fois, non ? ;)

Sinon pour ta question, avec Excel 2013, on a cette possibilité
https://support.office.com/fr-ch/ar...fonction-0a786771-54fd-4ae2-96ee-09cda35439c8

Pour les versions antérieures, tu peux utiliser Formula ou FormulaLocal dans ton code.
Exemple
Code:
Sub CopieFormule()
[B1]="'" &[A1].Formula
'ou
[B1]="'" &[A1].FormulaLocal
End Sub
 
Dernière édition:

FlorianN

XLDnaute Junior
Re : [VBA] Copier une formule dans une autre feuille

Bonsoir Staple1600,

Tu aurais pu le faire une douzième fois, non ? ;)
C'est pas faux mais m'étais dis que ça ressemblait furieusement au sujet. :eek:

Sinon pour ta question, avec Excel 2013, on a cette possibilité
Ce truc est en effet très pratique avec 2013.
Mais il est également vrai que j'ai omis de signaler que le problème est sur Excel 2010. Donc pas applicable dans ce cas.

Si toi ou un autre avez un idée, je suis preneur.


J'ai trouvé une astuce mais cela m'indique la formule avec l'équivalence en anglais. :(
Dans un premier Module
Code:
Function DisplayFormula(cel As Range)
    DisplayFormula = cel.Formula
End Function
Dans un second Module
Code:
Sub Suite()

    Sheets("Somme 1").Unprotect
    Range("E12").FormulaR1C1 = "=DisplayFormula(R[-1]C)"
    Range("E11").Select
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

    ActiveWindow.SelectedSheets.PrintOut Copies:=1

    Sheets("Somme 2").Select

End Sub
 

Staple1600

XLDnaute Barbatruc
Re : [VBA] Copier une formule dans une autre feuille

Re

Relis mon précédent message dans son entièreté ;)
Et regardes la macro CopieFormule

[avis personnel]
C'est pas faux mais m'étais dis que ça ressemblait furieusement au sujet.

Sauf que tu poses ta question dans un fil initié par un autre membre du forum.
Il est donc préférable de créer sa propre discussion pour sa propre question.
Cela évite qu'on se mélange les pinceaux et accessoirement c'est faire montre de courtoisie.
[/avis personnel]
 
Dernière édition:

FlorianN

XLDnaute Junior
Re : [VBA] Copier une formule dans une autre feuille

Tricheur ! Tu l'as modifié entre-temps : Dernière modification par Staple1600 ; Aujourd'hui à 23h34.
;)

OK merci de ton aide toujours aussi précieuse.
Je mets cela dans un coin bien en évidence pour une utilisation ultérieur.
 

Staple1600

XLDnaute Barbatruc
Re : [VBA] Copier une formule dans une autre feuille

Re,

Et tu as posté ton message à 23h40, tu avais donc six minutes pour lire. ;)

D'ailleurs, tu peux aussi relire le message précédant celui-ci.
J'ai ajouté aussi une EDITION.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 326
Membres
103 180
dernier inscrit
Vcr