Copier/Coller de contenu de formule

Bonjour

je cherche a copier/coller des formules excel d"'une colonne à une sans que les references ne bougent

Par exemple dans une cellule A1 j'ai la formule "=X1"

Si je copie colle cette formule en B1 la formule devient "=Y1"

Est-il possible de copier coller le contenu de la formule pour que la formule reste "=X1" dans la cellule "B1" sans que:

  • je n'ai a utilisé le caractère $
  • je n'ai a copier/coller le contenu de la formule depuis la barre de formule

via par exemple un copier/ coller special que je ne connaitrais pas ...

merci

Mattjol

Excel 2010

Bonjour,

Je ne pense pas que cela existe nativement, par contre si tu suis la méthode ci dessous :

  • Copie le fichier Excel (backup au cas où)
  • Ouvre la copie
  • Fait ALT+F11 (-> ouverture de l'IDE VBA)
  • Dans la partie gauche de l'editeur VBA : cliquer sur VBAProject-> Microsoft Excel Object puis double clique sur ThisWorkbook.
  • Dans la partie droite supérieur : coller le code ci dessous.
Private Sub Workbook_Open()
Application.OnKey "^+c", "MacopieF"
  Application.OnKey "^+v", "MacolleF"
End Sub

Puis toujours dans la partie gauche, faire un clique droit sur VBAProjetc -> Insertion -> Module

Puis double cliquer (pour l'ouvrir) sur Module1

ET dans la partie droite supérieur coller le code suivant :

Public maformule As String
Sub MacopieF()
maformule = Selection.Formula
End Sub
Sub MacolleF()
Selection = maformule
End Sub

Fermer et réouvrir le classeur (dire ok pour les macros)

Maintenant quand tu fais CTRL+SHIFT+C cela copie et CTRL+SHIFT+V cela colle la formule sans la modifier.

Sinon il faut utiliser $.....

Damien

Merci pour cette macro mais elle ne répond pas à mon besoin car elle fonctionne en 1 pour 1.

De mon côté j'aurais plutôt besoin de copier qques centaines de cellules et de coller avec le même contenu de formule...

Donc ça ne marche pas

Re,

Malheureusement je pense qu'il faut que tu passes tes formule en adresse absloue avant de les copier.......

Il y a une macro pour cela :

Public Sub MaConvertFormula()
  Dim tt As Range
  Dim oRange As Range
  Set oRange = Range("A1:F60")
  For Each tt In oRange
    If tt.HasFormula = True Then
        tt.Formula = Application.ConvertFormula(Formula:=tt.Formula, fromreferencestyle:=Application.ReferenceStyle, toabsolute:=xlAbsolute)
    End If
  Next
End Sub

Dans cet exemple, toutes les formules dans le Range A1->F60 seront converties en adresse absolue => Les copier coller ne changeront pas les adresses.... (A tester...)

Sinon pas de solution simple (je n'aime pas les usines a gaz )

Damien

Et bien Bigdams ta solution est PARFAITE

C'est effectivement le plus imple de convertir tout en en formule absoluen, je ne savais pas que cela existait.

Encore une question cependant si je peux abuser ... comment dans ta macro remplacer le range fixe (A1:F60) par la le range correspondant à la selection de cellule que je pourrais dans la feuille excel avant de lancer la macro.

En gros lancer la macro sur les cellules selectionnées.

Merci

Re,

Remplace

Set oRange = Range("A1:F60")

par

Set oRange = selection

++

Damien

PS : TU PEUX COCHER SUR RESOLU SI TU ES OK

R-O-Y-A-L

Merci bcp

Je ne desespere pas de faire un jour mes macros moi même ...

merci encore

Rechercher des sujets similaires à "copier coller contenu formule"